From: Mark Shroyer Date: 2006-11-20T00:55:08+09:00 Subject: Re: Ruby vs Java vs c++ On Sun, 19 Nov 2006 08:38:21 +0000, Phlip wrote: > Java is hostile to both the CPU and the programmer. Hence, the user > suffers too. Being reasonably experienced in developing both C++ and Java applications, I would suggest that a modern JVM is not slow by any means: http://www.kano.net/javabench/data > You will never miss anything (except lots of entry-level jobs that > nobody should want) if you avoid Java like the plague, and stick with > languages that are technically superior. Put another way, the simple > motivation of having a boss order you to use Java is not good enough. > The motivation itself will not magically make Java more productive. It > will slow you down. Some people work by the hour, so that's okay for > them. If you want to be rewarded for productivity, go with the most > technically advanced system you can. Ruby is great; I clearly wouldn't be on this newsgroup if I thought otherwise. However, at this point in time Java is far more mature, performs better, and enjoys a much greater market penetration than Ruby, meaning that your Java skills, should you choose to develop them, could prove the more useful. I agree with Philip in that you should "learn to learn languages"; that's the advice of a seasoned software engineer. But what I would add to that is that since Java borrows so much from C++ (and is borrowed even more heavily from in C#), learning to "think in Java" is an especially good starting point from which to proceed to other languages. That might be something worth keeping in mind, especially if you think that you might do work on .NET some day. There certainly are flaws in Java, particularly in the language itself. Many tasks must be approached with an unnecessary verbosity of code: launching a new thread, for example, requires more writing than it should. I get the feeling that Gosling et. al. originally intended this very explicit syntax in order to make the exact behavior of the code more apparent to the programmer (a decision which may have contributed to Java's popularity in academic circles). However, when comparing Java to its extremely similar - yet more concise - counterpart, C#, it is clear which approach is more appropriate from the standpoint of a pragmatic software developer. Java began to add some much-needed syntactic sugar in Java 5, and I would expect to see further improvements in this area in upcoming relases. All things considered, the Java environment (and the vast ecosystem that has grown up around it) is quite powerful. Coupled with the close ideological relationship that the Java language shares with other popular programming languages, I would think this makes Java very much worth your consideration. Good luck, Mark -- Mark Shroyer http://markshroyer.com/