Looking only at language features, both Python and Ruby are much better than Java.
However, the Java VM is probably the best crafted runtime interpreter & JIT compiler in existence.
Java has, in some cases, the performance of C++ or at least half the performance of it, while Ruby is (AFAIR) 18 times slower than C. Python is better, but is not in Java territory.
Lisp is better than Java for big complex apps, and can have very good performance (in some cases better than C), but then, we are lacking a free multiplatform open implementation (that doesn't make all your code GPL), and that kills Lisp in the marketplace (and has for a decade).
All that accounts in part for the results you present.
There are C++ multi-platform toolkits: at least Qt and wxWidgets are of professional quality. Audacity is written with wxWidgets and runs in Windows, Linux and Mac.
I don't object about using Java in your project, it's a sensible decision in a team with only two programmers.
However to say that there are no alternatives is very short sighted. It's better to say that there are alternatives but you have choosen the best one for your programming team.
Also keep in mind that creating a C++ object in the stack is 25 times faster than creating a Java object (even with the server VM) according to my benchmarks. So a sightly bigger team using C++ would possibly make software that outperforms yours and uses smaller amounts of memory, if somebody would like to invest in that team.
However, I do agree with your point, Web-only applications are dumbing down this industry.
If the same people that use Windows for Powerpoint and Word and have a gazillion worms in their system used Linux, their systems would be as infected as they are now.
They would probably using a 2.2 kernel, a very old build of KDE, and so on.
The fact is: Smart users don't get infected, naive users do. Some smart users use Linux, some smart users use Windows. Most naive users use Windows.
Target the naive users and ignore the smart. No matter what OS the smart people use.
Nah, if you want to teach higher level concepts teach them Lisp. That's something that REALLY changes the way you think about programming, forever.
Patterns are for languages that doesn't support adding higher level constructs based on others.
Meanwhile, C teaches them how the computer really works without the excruciating detail of assembler, so they can evaluate in an intuitive way the performance of a given algorithm.
However, C++ seems a good compromise to me. It is multi-paradigm, so you can use objects if you need them, or generic template programming if you need them, or use stack-instantiated simple objects if you need them (try that with Java!).
Keeping with C++ I second the sugestion of Bruce Eckel. That's the best C++ book I've ever read.
I believe you about the Mac, in all applications that are not games.
But games are so strong in Windows that Vista has a new DirectX 10 and graphic cards manufacturers are making DX10 cards, that blow out of the water an XBOX360 or a PS3.
Just now I truly enjoy rFactor (a driving simulation) and some other Windows-only games.
If games were not important to Windows domination (probably the only exclusive part of windows now) MS would had not invested that much in Vista DirectX10.
Well, I don't know about you, but I touch my power button perhaps once a week, if I touch it at all.
The mouse, on the other hand, is used almost constantly and I find that review very useful. And I'm a gamer. I will buy a Logitech MX518 based in that, and of course the pictures of the mouse. It looks comfortable.
I remember about SISC, the pool of stack frames and all. Impressive indeed, very nice ideas there. But nothing specific to complete dynamic languages in the JVM, AFAIK it adds dynamic classes, but everything is NOT a class in a real program.
I have dropped my P900 too many times. The screen is just like new. I need a new plastic case though.
My mother dropped her phone once. Much less harder than I have dropped my phone. The crystal broke immediately, and the phone was useless.
Right now I believe that LCD touch-screens are much more durable than any other cell phone screens.
Looking only at language features, both Python and Ruby are much better than Java.
However, the Java VM is probably the best crafted runtime interpreter & JIT compiler in existence.
Java has, in some cases, the performance of C++ or at least half the performance of it, while Ruby is (AFAIR) 18 times slower than C. Python is better, but is not in Java territory.
Lisp is better than Java for big complex apps, and can have very good performance (in some cases better than C), but then, we are lacking a free multiplatform open implementation (that doesn't make all your code GPL), and that kills Lisp in the marketplace (and has for a decade).
All that accounts in part for the results you present.
There are C++ multi-platform toolkits: at least Qt and wxWidgets are of professional quality. Audacity is written with wxWidgets and runs in Windows, Linux and Mac.
I don't object about using Java in your project, it's a sensible decision in a team with only two programmers.
However to say that there are no alternatives is very short sighted. It's better to say that there are alternatives but you have choosen the best one for your programming team.
Also keep in mind that creating a C++ object in the stack is 25 times faster than creating a Java object (even with the server VM) according to my benchmarks. So a sightly bigger team using C++ would possibly make software that outperforms yours and uses smaller amounts of memory, if somebody would like to invest in that team.
However, I do agree with your point, Web-only applications are dumbing down this industry.
Show us the URL, otherwise you're only trolling the Opera fans.
If the same people that use Windows for Powerpoint and Word and have a gazillion worms in their system used Linux, their systems would be as infected as they are now.
They would probably using a 2.2 kernel, a very old build of KDE, and so on.
The fact is: Smart users don't get infected, naive users do. Some smart users use Linux, some smart users use Windows. Most naive users use Windows.
Target the naive users and ignore the smart. No matter what OS the smart people use.
Nah, if you want to teach higher level concepts teach them Lisp. That's something that REALLY changes the way you think about programming, forever.
Patterns are for languages that doesn't support adding higher level constructs based on others.
Meanwhile, C teaches them how the computer really works without the excruciating detail of assembler, so they can evaluate in an intuitive way the performance of a given algorithm.
However, C++ seems a good compromise to me. It is multi-paradigm, so you can use objects if you need them, or generic template programming if you need them, or use stack-instantiated simple objects if you need them (try that with Java!).
Keeping with C++ I second the sugestion of Bruce Eckel. That's the best C++ book I've ever read.
C++ programing needs a professional (and probably expensive) programmer. If they can code some parts in assembler that's a bonus.
.NET programming only need a cheap fresh graduated CS mayor.
Java and
Performance hurts, but is cheap!
I believe you about the Mac, in all applications that are not games.
But games are so strong in Windows that Vista has a new DirectX 10 and graphic cards manufacturers are making DX10 cards, that blow out of the water an XBOX360 or a PS3.
Just now I truly enjoy rFactor (a driving simulation) and some other Windows-only games.
If games were not important to Windows domination (probably the only exclusive part of windows now) MS would had not invested that much in Vista DirectX10.
A 2D game would sell for $20 and give as much profits as an expensive 3D game, because it would cost hundreds instead of millions to develop.
Well, I don't know about you, but I touch my power button perhaps once a week, if I touch it at all.
The mouse, on the other hand, is used almost constantly and I find that review very useful. And I'm a gamer. I will buy a Logitech MX518 based in that, and of course the pictures of the mouse. It looks comfortable.
Then I'm not sold.
I remember about SISC, the pool of stack frames and all. Impressive indeed, very nice ideas there. But nothing specific to complete dynamic languages in the JVM, AFAIK it adds dynamic classes, but everything is NOT a class in a real program.
MS seem to be the only ones making the ergonomic keyboards I like to use. And they are high quality.
That everybody hates MS for other reasons doesn't mean their hardware is bad.
If I can run a dialect of Lisp with all the speed of the JVM, then I'm sold.
Hey, I'm happy that you can't put Java into Apache.
Ups, wrong religion war.
"how would rts's be handled? would they even get attention?"
Like this: http://www.youtube.com/watch?v=BjL7WtKgb04 ???
... will be very very happy to sell you another one.
What else can you do? Stop using the door?
A better Office than OpenOffice?
Seriously, I'm tired of the myriad of blogs that claim: 'Vista is a problem for the users, so everybody will switch to Linux! Finally!'
The competition to Vista is not Linux, is XP. Everyone who might want to use Linux already uses it.
Well, that explains why there were no Winamp 4!
:P)
(Yes I know the 2+3=5 stuff and all that
They have to use a proxy because they run the rendering engine in their servers in order to send a small and handheld friendly page to your device.
As most cell phone companies bill you by the kilobyte, this results in HUGE savings there. Do you see the point?
And no, Opera Mini is not spyware.
Opera of course.
After all, we play with the Zerg.
Conductive ink seemed to work for me. Still using it, it's 8 years old by now.
However, ony two keys were dead and then fixed, not the entire keyboard.
I do agree with you about the setup.
But XML? I prefer plain text files all the time.
There are APIs to read and write plain text files, if your argument is the "there are libraries!" one.
Hopefully you don't want to make the keyboard "Web 3.0" compatible.
This kind of comments are what keeps slashdot above digg and all the rest.
Oops.
I mean "like I can aim with my mouse".