In EE it is a great tool to teach Communications, and Signal Processing.
OK, but there are plenty of tools other than Matlab that are adequate for that purpose. Furthermore, communications and signal processing is becoming increasingly algorithmic.
In CS, I would guess it is not the first choice.
It's actually more of a problem for EE because they may not see a lot of other programming languages.
I see it as an application that allows a lazy engineer to do matrix computations without going into deep programming projects.
But a tool can be that without having the limitations of Matlab.
Moreover, most Matlab users I know share their code (unless their contract says otherwise)
Yes, and Mathworks profits, while you keep paying for your 36000 toolboxes year after year.
Contests can be fun. Why not hold one to add functionality you think is missing to one of the free tools?
Returning to a serious tone, a PhD student should not care about paying for a software license, his Professor should.
Paying for Matlab licenses is not a problem in an academic environment; Matlab is essentially free for students.
The problems are that (1) the Matlab language is bad from an educational point of view (you don't want students learning about software through Matlab), (2) Matlab is unnecessarily domain specific--the coverage of its libraries is too narrowly focused for modern applications of numerical computing, and (3) students are going to have real problems with paying for Matlab after they graduate.
In fact, even in its core areas of numerical computing, the quality and coverage of Matlab is a mixed bag, which is why there are already several widely used commercial alternatives.
Like another poster wrote, a lot of Matlab is done over Linux, by freakish fervent OSS advocates, that have not touched any other piece of proprietary software for ages.
Yes, and my argument against Matlab is not that it is too expensive for students (which it is not), but that it is technically and educationally not a good choice, no matter what the price.
Perhaps you misunderstood what bothers me about the contest: it's the use of the term "open source" to refer to the results and the devaluation of the work of the participants. This contest is just a way for a company to get a lot of people to do a lot of work that benefits the company for a small expected gain to the participants. That's exploitative and has nothing to do with "open source". Students should learn to get value equivalent to the work they put into a project. They get that out of commercial employment and they get that out of open source; they do not get it out of participating in such "contests".
Those are the same tired arguments we get from everybody defending an outdated proprietary system. If Matlab works for you because you know it, stick with it and pay the price, but that doesn't mean it's the right choice for everybody. In particular, it's almost certainly not the right choice for a 22 year old Ph.D. student.
Our department makes extensive use of Matlab, we use it for instruciton, we use it for research. Now research groups espically are always money hungry. They always want more than they have so they try to save as they can. We have many who use Linux rather than Solaris to save on hardware and software fees.
Matlabs for educational institutions costs virtually nothing.
If you could offer something that's superior, free, and customizable, well the'd be jumping over in droves.
No, they wouldn't, because they'd have to start from scratch learning a new language and rewriting all their code. Switching is costly, but that doesn't tell you about the cost of the product.
I mean look at Firefox.
The cost of switching browsers is virtually zero; just about the only investment is the bookmarks, and they get converted.
Now I'm sure there are situations where these alternatives work, but I'd put money on the fact that they don't hold a candle to Matlab overall. Why? Well if they did, they'd be moving up, if not taking over.
They are moving up, in new communities of users.
It cannot do what teh commercial software does. Even in many cases where it can, it does it far inferior either quality wise or ease of use wise or feature wise. It being free doesn't make up for what it lacks.
At a cost of thousands of dollars per Matlab license, being free actually starts mattering. But in this case, the Matlab alternatives are not only free, they are also better.
Tha Mac Mini is actually pretty expensive for what it does; you still need a keyboard, screen, mouse, cables, etc.
I don't see much of a market for these things in the long run: a low-end laptop is easier to set up, more compact, and less messy (no cables, speakers, etc.). It's also a better deal.
The open alternative is Numerical and Scientific Python. It's a better language, has a good number of numerical libraries, and a huge number of other useful packages.
Octave doesn't even come close to measuring up to Matlab.
Depends on what you mean by "measure up". The stuff that makes Matlab useful is all the libraries and tools created by third parties. Matlab itself is a lousy programming language and a lousy implementation. Octave doesn't have all those third party packages, which makes it more limited.
So why not push [Octave]?
Because Matlab itself is broken; there is no point in pushing the clone of a bad system to an illogical extreme (although that doesn't mean people won't try). It may be convenient for existing Matlab users to have others waste their time giving them a free-as-in-beer alternative, but that's not the point of open source. If you are happy with paying thousands of dollars for Matlab and can live with its numerous limitations, well, just keep on using it.
The alternative to Matlab is not Octave, it is Numerical Python. And compared to Numerical Python, Matlab is half-assed.
Don't expect Numerical Python to be a drop-in replacement for Matlab, it is not. You will have to spend time learning it. Packages you can get for Matlab won't exist for Numerical Python, just like there are lots of packages for Numerical Python that Matlab doesn't have. Overall, in terms of technology alone, Numerical Python is better; the fact that it is free and open source is an additional bonus.
I'm not sure why writing open source code for a platform that is so completely closed and hugely expensive is a badge of honor. It's like doing "volunteer labor" for poor starving Donald Trump. Right now, you may be getting MATLAB cheap as a student, but have you looked at the prices you have to pay for it in the real world?
Furthermore, while MATLAB is a tolerable language for numerics, as a programming language, it is horrendous. I would not want to hire someone who spent most of his time programming in MATLAB.
Why not devote that energy to writing and contributing Numerical Python code? Numerical Python is free and it's a far better language than MATLAB. Numerical Python does not have quite as many numerical modules as MATLAB yet, but it beats MATLAB hands down in the availability of other libraries (GUI, visualization, plotting, parallel computing, networking, etc.).
Even better, you actually have a prayer of being able to use that code after you leave the university; MATLAB is simply too expensive for many environments.
Octave compiles and runs fine on SuSE. And you can almost certainly get it as an RPM package. Octave is as mature as it's going to get.
However, Octave's MATLAB history is limiting it anyway. Why not write for Scientific Python? That is the real open source alternative to MATLAB, with a big user community and many features that MATLAB lacks.
This is a pretty typical abuse of open source by a commercial company. Not only is MATLAB hugely expensive, in addition, while they make money on platform sales, they want other people to develop free and open source software for their platform to make it more valuable.
In fact, the only thing that has made MATLAB valuable is that it is in widespread use and that everybody develops add-ons for it. As a numerical programming environment, it is technically considerably worse than available alternatives, both commercial and free.
Don't waste your time doing free work for MATLAB (or other arrogant companies like that). The same amount of time and effort would have been better spent contributing to one of the open source MATLAB alternatives, like Numerical Python and Scientific Python.
It is because in America we believe that guns == freedom
Odd, of course, since information is far more important both to warfare and to freedom than guns.
Freedom isn't earned through how many deaths you can inflict on the enemy but how many deaths you are willing to risk.
That's a nice theory, but that's not how people act. For example, the US seemed to have no stomach for significant risk taking in Afghanistan or Iraq. Furthermore, suicide missions by enemies, even if they are against militar targets, are usually portrayed as unfair and cowardly.
These people don't have to conspire to leak it, which would be really risky for them if it were found out.
"Leaking purposely" in this context means that they didn't take sufficient precautions to keep it from getting out. They didn't need to discuss that or conspire to do it, they just tacitly needed to not bring it up at the meetings at which the film release was discussed.
The thinking would be "hey, let's not bother keeping this one from being pirated--it won't hurt our profits, and it will give us ammunition for lobbying".
(I find it highly suspicious that they can't be more specific where the copy came from: working copies are unique, and they are probably also watermarked.)
But the MPAA is not concerned with profit at all, they are worried about "how theft dims the magic of the movies for everyone". I mean, think of those poor children, accidentally opening their Bittorrent applications in the morning, then accidentally clicking on the "RotS" download, then accidentally sitting through several hours of on-screen video, and then their magic is dimmed. In fact, everybody, young and old alike has such horrible accidents, that's why Bittorrent needs to be banned, so that people don't run it accidentally anymore, you see.
X11 only defines the mechanism for the toolkits. It does not define the policies for them.
There used to be standards for policies as well. Arguably, they needed to be rewritten from scratch, but Gtk+ and Qt didn't bother: they just hacked something together.
In fact, the X clipboard isn't even standardized in X11, however the defacto standard followed by KDE and Gnome is documented somewhat.
Data transfer in X was standardized. The standard needed to be rewritten to account for new needs, and that has happened.
Thanks to the efforts of the Gnome and KDE folks working together, the clipboard works as expected between applications, window manager hints have been standardized between desktops, drag-and-drop works and they are working better together all the time.
The Gnome and KDE developers broke things in the first place: they should have looked at the existing standards and revised them where necessary before they started hacking. Instead, they made a mess and are now trying to clean it up. So far, they have only been partially successful (for example, preferences and remote applications are still broken in both Gnome and KDE).
Most languages need to bind to C to get even the most rudimentary of services. You can't really open a file or socket without libc (sure, you can use the syscalls, but that's extremely non-portable)
libc does not contain portable code for opening sockets. Furthermore, the POSIX and UNIX APIs, even though usually implemented in C, are actually fairly language neutral; the same cannot be said for Gtk+ or Qt.
Anything that wants to talk to X has to link to libX11.so
Absolutely not: there have been several X11 libraries and toolkits that do not link to libX11.so, including ones for Java, C#, Python, Perl, and Lisp.
if for no other reason than performance
C and C++ are efficient for computation-bound inner loops; those are not an issue in a toolkit. The issues in a toolkit are memory management overhead, code size, and object dispatch, all areas where C and C++ are exceptionally poor.
and the fact you end up unable to reuse the code in any other language
I can't reuse C or C++ in any other language; at best, I can carefully construct foreign function interfaces, but that's not the same.
Gnome and KDE are the desktop standards for Linux now, and we need to live with that. Their UI conventions aren't bad, although their technical underpinnings are seriously broken. It will take many years still to fix the mess that Gnome and KDE created, which would have been avoidable if their developers had used their heads before they started coding.
One should say, however, that Gnome and KDE are no worse than Windows or Macintosh: the things that are broken in Gnome and KDE are also broken in Windows and Macintosh; Gnome and KDE wanted to be like those desktops, and they succeeded. They just didn't notice that they were aiming low.
Swing had the right idea with doing a rewrite in a HLL, but Swing doesn't even integrate with the Gnome and KDE desktops as they are.
not just a phone
on
Just a Phone?
·
· Score: 2, Insightful
The thing has a huge screen, menus, and text messaging; it is definitely not "just a phone".
"Just a phone" would have 12 keys (0-9, *, #), a one-line display, a call button, and a hang-up button. Well, maybe a mechanical switch to turn off the ringer.
Most of those people probably already have Linux boxes. Their staff has likely snuck some in as firewalls and servers. Furthermore, lots of their embedded devices (access points, network storage, routers, etc.) run on Linux.
The nice thing is that these people don't have to "investigate" Linux, Linux is coming to them, piece by piece. In Capitalist America, you don't adopt Linux, Linux adopts you:-)
Maybe; or maybe sticking with Windows is insane. It depends on what your market is and who you are competing against.
If you are in a stable market with few new entrants, you could keep running on DOS and it wouldn't make any difference (I know some companies that do).
In many other situations, your competitors may eat your lunch and you along with it.
It's not a choice of which one is 'better' (for one of any number of reasons) but which one works best for us.
No, it's a question of which one keeps you competitive enough to survive.
So, your decision may or may not be right, but your reasoning is clearly faulty: how much trouble it would be for you to switch and whether "it works for you" are not the only considerations; in fact, they are hardly relevant at all.
No, the right thing to do would be to fix X11 (and xlib) and GTK+(GDK)/Qt. We need more people working TOGETHER rather than apart.
Gtk+ and Qt do need to be fixed, but that is not sufficient. The idea that one should achieve standardization through a single codebase is the way Windows and Macintosh work; it's a stupid idea. And it doesn't work anyway, because both Windows and Macintosh have dozens of toolkits as well, just like X11.
X11 defines standards for how toolkits should behave, and then different toolkits should adhere to those standards. It's unfortunate that Gtk+ and Qt adhere to the current standards so poorly, and those toolkits should get fixed. At the same time, X11 perhaps needs to define some more standards for things like theming.
Gtk+ is a C-based toolkit and Qt is a C++-based toolkit; you can bind them to other languages, but you pay a hefty price compared to toolkits written in those languages. GUIs aren't going to get anywhere if we are shackled by the limitations of C/C++.
people can complain even MORE that Linux has no consistent look-and-feel for it's desktop applications
People always complain about that, no matter what the facts actually are.
In the absense of a unified, consistent native look and feel
How would you know? You don't use it. Go install Ubuntu or boot Knoppix. You'll see: the Linux desktop has a far more unified L&F than either Windows or Macintosh.
the swing L&F is probably not so bad under linux.
That's not for you to judge, it's for Linux users to judge, and as a Linux user, I'm telling you: it sucks.
I don't use linux. Obviously desktop linux is not a priority for IDE developers.
Exactly: IBM tries to build something on top of the native toolkit, while Sun doesn't. That's why IBM deserves the support of Linux users.
On windows this performance advantage does not really exists and eclipse is noticably slower than the swing based netbeans. Apparently other factors than GUI toolkit are an issue here.
Yes, something else is going on. While Swing claims to be cross platform, it makes a lot of assumptions that work for Windows and don't work for X11. Swing gives you the worst of everything: bad cross-platform capabilities, poor performance, bloat, and bad platform integration.
Nobody in the open source world has even attempted an AWT/Swing implementation, and until then almost no Java desktop software will work
You are quite right that until open source or free Swing implementations exist, most Java desktop software will continue to be dependent on Sun's proprietary implementation and that is unacceptable. Sun should take steps to correct that.
But even fixing the legal problems that Java has doesn't fix the technical problems with libraries. Swing would suck even if it were open source (although maybe people could at least fix it).
Also to imply that SWT was developed with gcj in mind is simply false.
SWT works with gcj, that's all that matters.
I also have my doubts that the open source/gcj shills here do any real programming in java.
For all the above reasons, I avoid Java as much as I can these days (for a few years, Java was my primary language). If I wanted to use a proprietary platform, there are better proprietary platforms to choose from. Eclipse, however, is useful for other things besides Java, and Eclipse is also useful for the Java programming I still do.
However, Gtk+'s X11 backend is pretty awful, mostly because it tried to do theming and transparency when X11 didn't have the right graphics primitives for that. With the new X graphics model, that's being fixed. Qt isn't really any better, and it's hamstrung by being a cross-platform toolkit.
The right thing to do would be to write a native X11 backend for SWT.
Eclipse is open source and can be built and run with open source tools.
Netbeans depends in an essential way on Sun Java; no Sun Java means no Netbeans.
Once Netbeans compiles and runs with a legal, independent Java implementation, then it will be vendor independent, but it doesn't look like that's going to happen any time soon.
It's barebones out-of-box configuration is a direct result of it being the "starter edition" for IBM WebSphere Studio. All those plugins only exist because the good parts of WS are proprietary.
What difference does it make what proprietary plug-ins some company makes for Eclipse? Eclipse with its open source plug-ins is competitive with NetBeans. That's what counts.
IBM absolutely hates the fact that NetBeans doesn't require their proprietary gui toolkit
SWT is under the CPL, so it is not proprietary. Swing is not under an open source license, and even the Swing specification is Sun-proprietary.
NetBeans can compile with standard Java tools
The question of what "standard" Java tools is not relevant. What is relevant is that in order to use NetBeans, you are dependent on Sun proprietary code.
The fact that Sun, for marketing purposes, likes to misrepresent Sun Java and Swing as "open" and "free" doesn't make it so; the licenses are clear: Sun Java is proprietary, as is the Java definition.
As long as I live, I will never understand this morbid fascination people have with blaming the troubles of the third world on some manic US plot to undermine foreign societies.
I wasn't talking about "the third world" in general, I was talking about Cuba. US policies towards Cuba have been arrogant, inept, and grossly harmful. The same can be said for a few other, specific cases in which the US interfered politically or militarily in a sovereign nation. The US isn't responsible for the ills of the entire third world, but the US clearly does carry out plots to undermine foreign societies in specific cases.
No matter what we may think our justifications may be, the fact is that those kinds of actions harm our standing the world and cause blowback. That's not a question of blame, it's a question of our own security and self-interest.
In EE it is a great tool to teach Communications, and Signal Processing.
OK, but there are plenty of tools other than Matlab that are adequate for that purpose. Furthermore, communications and signal processing is becoming increasingly algorithmic.
In CS, I would guess it is not the first choice.
It's actually more of a problem for EE because they may not see a lot of other programming languages.
I see it as an application that allows a lazy engineer to do matrix computations without going into deep programming projects.
But a tool can be that without having the limitations of Matlab.
Moreover, most Matlab users I know share their code (unless their contract says otherwise)
Yes, and Mathworks profits, while you keep paying for your 36000 toolboxes year after year.
Contests can be fun. Why not hold one to add functionality you think is missing to one of the free tools?
Returning to a serious tone, a PhD student should not care about paying for a software license, his Professor should.
Paying for Matlab licenses is not a problem in an academic environment; Matlab is essentially free for students.
The problems are that (1) the Matlab language is bad from an educational point of view (you don't want students learning about software through Matlab), (2) Matlab is unnecessarily domain specific--the coverage of its libraries is too narrowly focused for modern applications of numerical computing, and (3) students are going to have real problems with paying for Matlab after they graduate.
In fact, even in its core areas of numerical computing, the quality and coverage of Matlab is a mixed bag, which is why there are already several widely used commercial alternatives.
Like another poster wrote, a lot of Matlab is done over Linux, by freakish fervent OSS advocates, that have not touched any other piece of proprietary software for ages.
Yes, and my argument against Matlab is not that it is too expensive for students (which it is not), but that it is technically and educationally not a good choice, no matter what the price.
Perhaps you misunderstood what bothers me about the contest: it's the use of the term "open source" to refer to the results and the devaluation of the work of the participants. This contest is just a way for a company to get a lot of people to do a lot of work that benefits the company for a small expected gain to the participants. That's exploitative and has nothing to do with "open source". Students should learn to get value equivalent to the work they put into a project. They get that out of commercial employment and they get that out of open source; they do not get it out of participating in such "contests".
Those are the same tired arguments we get from everybody defending an outdated proprietary system. If Matlab works for you because you know it, stick with it and pay the price, but that doesn't mean it's the right choice for everybody. In particular, it's almost certainly not the right choice for a 22 year old Ph.D. student.
Our department makes extensive use of Matlab, we use it for instruciton, we use it for research. Now research groups espically are always money hungry. They always want more than they have so they try to save as they can. We have many who use Linux rather than Solaris to save on hardware and software fees.
Matlabs for educational institutions costs virtually nothing.
If you could offer something that's superior, free, and customizable, well the'd be jumping over in droves.
No, they wouldn't, because they'd have to start from scratch learning a new language and rewriting all their code. Switching is costly, but that doesn't tell you about the cost of the product.
I mean look at Firefox.
The cost of switching browsers is virtually zero; just about the only investment is the bookmarks, and they get converted.
Now I'm sure there are situations where these alternatives work, but I'd put money on the fact that they don't hold a candle to Matlab overall. Why? Well if they did, they'd be moving up, if not taking over.
They are moving up, in new communities of users.
It cannot do what teh commercial software does. Even in many cases where it can, it does it far inferior either quality wise or ease of use wise or feature wise. It being free doesn't make up for what it lacks.
At a cost of thousands of dollars per Matlab license, being free actually starts mattering. But in this case, the Matlab alternatives are not only free, they are also better.
Tha Mac Mini is actually pretty expensive for what it does; you still need a keyboard, screen, mouse, cables, etc.
I don't see much of a market for these things in the long run: a low-end laptop is easier to set up, more compact, and less messy (no cables, speakers, etc.). It's also a better deal.
The open alternative is Numerical and Scientific Python. It's a better language, has a good number of numerical libraries, and a huge number of other useful packages.
Octave doesn't even come close to measuring up to Matlab.
Depends on what you mean by "measure up". The stuff that makes Matlab useful is all the libraries and tools created by third parties. Matlab itself is a lousy programming language and a lousy implementation. Octave doesn't have all those third party packages, which makes it more limited.
So why not push [Octave]?
Because Matlab itself is broken; there is no point in pushing the clone of a bad system to an illogical extreme (although that doesn't mean people won't try). It may be convenient for existing Matlab users to have others waste their time giving them a free-as-in-beer alternative, but that's not the point of open source. If you are happy with paying thousands of dollars for Matlab and can live with its numerous limitations, well, just keep on using it.
The alternative to Matlab is not Octave, it is Numerical Python. And compared to Numerical Python, Matlab is half-assed.
Don't expect Numerical Python to be a drop-in replacement for Matlab, it is not. You will have to spend time learning it. Packages you can get for Matlab won't exist for Numerical Python, just like there are lots of packages for Numerical Python that Matlab doesn't have. Overall, in terms of technology alone, Numerical Python is better; the fact that it is free and open source is an additional bonus.
I'm not sure why writing open source code for a platform that is so completely closed and hugely expensive is a badge of honor. It's like doing "volunteer labor" for poor starving Donald Trump. Right now, you may be getting MATLAB cheap as a student, but have you looked at the prices you have to pay for it in the real world?
Furthermore, while MATLAB is a tolerable language for numerics, as a programming language, it is horrendous. I would not want to hire someone who spent most of his time programming in MATLAB.
Why not devote that energy to writing and contributing Numerical Python code? Numerical Python is free and it's a far better language than MATLAB. Numerical Python does not have quite as many numerical modules as MATLAB yet, but it beats MATLAB hands down in the availability of other libraries (GUI, visualization, plotting, parallel computing, networking, etc.).
Even better, you actually have a prayer of being able to use that code after you leave the university; MATLAB is simply too expensive for many environments.
Octave compiles and runs fine on SuSE. And you can almost certainly get it as an RPM package. Octave is as mature as it's going to get.
However, Octave's MATLAB history is limiting it anyway. Why not write for Scientific Python? That is the real open source alternative to MATLAB, with a big user community and many features that MATLAB lacks.
This is a pretty typical abuse of open source by a commercial company. Not only is MATLAB hugely expensive, in addition, while they make money on platform sales, they want other people to develop free and open source software for their platform to make it more valuable.
In fact, the only thing that has made MATLAB valuable is that it is in widespread use and that everybody develops add-ons for it. As a numerical programming environment, it is technically considerably worse than available alternatives, both commercial and free.
Don't waste your time doing free work for MATLAB (or other arrogant companies like that). The same amount of time and effort would have been better spent contributing to one of the open source MATLAB alternatives, like Numerical Python and Scientific Python.
It is because in America we believe that guns == freedom
Odd, of course, since information is far more important both to warfare and to freedom than guns.
Freedom isn't earned through how many deaths you can inflict on the enemy but how many deaths you are willing to risk.
That's a nice theory, but that's not how people act. For example, the US seemed to have no stomach for significant risk taking in Afghanistan or Iraq. Furthermore, suicide missions by enemies, even if they are against militar targets, are usually portrayed as unfair and cowardly.
These people don't have to conspire to leak it, which would be really risky for them if it were found out.
"Leaking purposely" in this context means that they didn't take sufficient precautions to keep it from getting out. They didn't need to discuss that or conspire to do it, they just tacitly needed to not bring it up at the meetings at which the film release was discussed.
The thinking would be "hey, let's not bother keeping this one from being pirated--it won't hurt our profits, and it will give us ammunition for lobbying".
(I find it highly suspicious that they can't be more specific where the copy came from: working copies are unique, and they are probably also watermarked.)
But the MPAA is not concerned with profit at all, they are worried about "how theft dims the magic of the movies for everyone". I mean, think of those poor children, accidentally opening their Bittorrent applications in the morning, then accidentally clicking on the "RotS" download, then accidentally sitting through several hours of on-screen video, and then their magic is dimmed. In fact, everybody, young and old alike has such horrible accidents, that's why Bittorrent needs to be banned, so that people don't run it accidentally anymore, you see.
X11 only defines the mechanism for the toolkits. It does not define the policies for them.
There used to be standards for policies as well. Arguably, they needed to be rewritten from scratch, but Gtk+ and Qt didn't bother: they just hacked something together.
In fact, the X clipboard isn't even standardized in X11, however the defacto standard followed by KDE and Gnome is documented somewhat.
Data transfer in X was standardized. The standard needed to be rewritten to account for new needs, and that has happened.
Thanks to the efforts of the Gnome and KDE folks working together, the clipboard works as expected between applications, window manager hints have been standardized between desktops, drag-and-drop works and they are working better together all the time.
The Gnome and KDE developers broke things in the first place: they should have looked at the existing standards and revised them where necessary before they started hacking. Instead, they made a mess and are now trying to clean it up. So far, they have only been partially successful (for example, preferences and remote applications are still broken in both Gnome and KDE).
Most languages need to bind to C to get even the most rudimentary of services. You can't really open a file or socket without libc (sure, you can use the syscalls, but that's extremely non-portable)
libc does not contain portable code for opening sockets. Furthermore, the POSIX and UNIX APIs, even though usually implemented in C, are actually fairly language neutral; the same cannot be said for Gtk+ or Qt.
Anything that wants to talk to X has to link to libX11.so
Absolutely not: there have been several X11 libraries and toolkits that do not link to libX11.so, including ones for Java, C#, Python, Perl, and Lisp.
if for no other reason than performance
C and C++ are efficient for computation-bound inner loops; those are not an issue in a toolkit. The issues in a toolkit are memory management overhead, code size, and object dispatch, all areas where C and C++ are exceptionally poor.
and the fact you end up unable to reuse the code in any other language
I can't reuse C or C++ in any other language; at best, I can carefully construct foreign function interfaces, but that's not the same.
Gnome and KDE are the desktop standards for Linux now, and we need to live with that. Their UI conventions aren't bad, although their technical underpinnings are seriously broken. It will take many years still to fix the mess that Gnome and KDE created, which would have been avoidable if their developers had used their heads before they started coding.
One should say, however, that Gnome and KDE are no worse than Windows or Macintosh: the things that are broken in Gnome and KDE are also broken in Windows and Macintosh; Gnome and KDE wanted to be like those desktops, and they succeeded. They just didn't notice that they were aiming low.
Swing had the right idea with doing a rewrite in a HLL, but Swing doesn't even integrate with the Gnome and KDE desktops as they are.
The thing has a huge screen, menus, and text messaging; it is definitely not "just a phone".
"Just a phone" would have 12 keys (0-9, *, #), a one-line display, a call button, and a hang-up button. Well, maybe a mechanical switch to turn off the ringer.
When you change startup scripts or recompile parts of the kernel, then you reboot in order to test your changes.
When you don't change anything related to startup and don't touch the kernel, you don't reboot.
Simple enough?
Most of those people probably already have Linux boxes. Their staff has likely snuck some in as firewalls and servers. Furthermore, lots of their embedded devices (access points, network storage, routers, etc.) run on Linux.
:-)
The nice thing is that these people don't have to "investigate" Linux, Linux is coming to them, piece by piece. In Capitalist America, you don't adopt Linux, Linux adopts you
Switching now would be insane.
Maybe; or maybe sticking with Windows is insane. It depends on what your market is and who you are competing against.
If you are in a stable market with few new entrants, you could keep running on DOS and it wouldn't make any difference (I know some companies that do).
In many other situations, your competitors may eat your lunch and you along with it.
It's not a choice of which one is 'better' (for one of any number of reasons) but which one works best for us.
No, it's a question of which one keeps you competitive enough to survive.
So, your decision may or may not be right, but your reasoning is clearly faulty: how much trouble it would be for you to switch and whether "it works for you" are not the only considerations; in fact, they are hardly relevant at all.
No, the right thing to do would be to fix X11 (and xlib) and GTK+(GDK)/Qt. We need more people working TOGETHER rather than apart.
Gtk+ and Qt do need to be fixed, but that is not sufficient. The idea that one should achieve standardization through a single codebase is the way Windows and Macintosh work; it's a stupid idea. And it doesn't work anyway, because both Windows and Macintosh have dozens of toolkits as well, just like X11.
X11 defines standards for how toolkits should behave, and then different toolkits should adhere to those standards. It's unfortunate that Gtk+ and Qt adhere to the current standards so poorly, and those toolkits should get fixed. At the same time, X11 perhaps needs to define some more standards for things like theming.
Gtk+ is a C-based toolkit and Qt is a C++-based toolkit; you can bind them to other languages, but you pay a hefty price compared to toolkits written in those languages. GUIs aren't going to get anywhere if we are shackled by the limitations of C/C++.
people can complain even MORE that Linux has no consistent look-and-feel for it's desktop applications
People always complain about that, no matter what the facts actually are.
In the absense of a unified, consistent native look and feel
How would you know? You don't use it. Go install Ubuntu or boot Knoppix. You'll see: the Linux desktop has a far more unified L&F than either Windows or Macintosh.
the swing L&F is probably not so bad under linux.
That's not for you to judge, it's for Linux users to judge, and as a Linux user, I'm telling you: it sucks.
I don't use linux. Obviously desktop linux is not a priority for IDE developers.
Exactly: IBM tries to build something on top of the native toolkit, while Sun doesn't. That's why IBM deserves the support of Linux users.
On windows this performance advantage does not really exists and eclipse is noticably slower than the swing based netbeans. Apparently other factors than GUI toolkit are an issue here.
Yes, something else is going on. While Swing claims to be cross platform, it makes a lot of assumptions that work for Windows and don't work for X11. Swing gives you the worst of everything: bad cross-platform capabilities, poor performance, bloat, and bad platform integration.
Nobody in the open source world has even attempted an AWT/Swing implementation, and until then almost no Java desktop software will work
You are quite right that until open source or free Swing implementations exist, most Java desktop software will continue to be dependent on Sun's proprietary implementation and that is unacceptable. Sun should take steps to correct that.
But even fixing the legal problems that Java has doesn't fix the technical problems with libraries. Swing would suck even if it were open source (although maybe people could at least fix it).
Also to imply that SWT was developed with gcj in mind is simply false.
SWT works with gcj, that's all that matters.
I also have my doubts that the open source/gcj shills here do any real programming in java.
For all the above reasons, I avoid Java as much as I can these days (for a few years, Java was my primary language). If I wanted to use a proprietary platform, there are better proprietary platforms to choose from. Eclipse, however, is useful for other things besides Java, and Eclipse is also useful for the Java programming I still do.
Eclipse seems OK on my Linux machine.
However, Gtk+'s X11 backend is pretty awful, mostly because it tried to do theming and transparency when X11 didn't have the right graphics primitives for that. With the new X graphics model, that's being fixed. Qt isn't really any better, and it's hamstrung by being a cross-platform toolkit.
The right thing to do would be to write a native X11 backend for SWT.
Eclipse is hardly vendor independant
Eclipse is open source and can be built and run with open source tools.
Netbeans depends in an essential way on Sun Java; no Sun Java means no Netbeans.
Once Netbeans compiles and runs with a legal, independent Java implementation, then it will be vendor independent, but it doesn't look like that's going to happen any time soon.
It's barebones out-of-box configuration is a direct result of it being the "starter edition" for IBM WebSphere Studio. All those plugins only exist because the good parts of WS are proprietary.
What difference does it make what proprietary plug-ins some company makes for Eclipse? Eclipse with its open source plug-ins is competitive with NetBeans. That's what counts.
IBM absolutely hates the fact that NetBeans doesn't require their proprietary gui toolkit
SWT is under the CPL, so it is not proprietary. Swing is not under an open source license, and even the Swing specification is Sun-proprietary.
NetBeans can compile with standard Java tools
The question of what "standard" Java tools is not relevant. What is relevant is that in order to use NetBeans, you are dependent on Sun proprietary code.
The fact that Sun, for marketing purposes, likes to misrepresent Sun Java and Swing as "open" and "free" doesn't make it so; the licenses are clear: Sun Java is proprietary, as is the Java definition.
As long as I live, I will never understand this morbid fascination people have with blaming the troubles of the third world on some manic US plot to undermine foreign societies.
I wasn't talking about "the third world" in general, I was talking about Cuba. US policies towards Cuba have been arrogant, inept, and grossly harmful. The same can be said for a few other, specific cases in which the US interfered politically or militarily in a sovereign nation. The US isn't responsible for the ills of the entire third world, but the US clearly does carry out plots to undermine foreign societies in specific cases.
No matter what we may think our justifications may be, the fact is that those kinds of actions harm our standing the world and cause blowback. That's not a question of blame, it's a question of our own security and self-interest.