This week's book giveaway is in the OCPJP forum. We're giving away four copies of OCA/OCP Java SE 7 Programmer I & II Study Guide and have Kathy Sierra & Bert Bates on-line! See this thread for details.
First of all, you'll be getting a comment from our bartenders telling you to change your display name, since it's not compliant with the rules. The rules here are really simple, and those are using a first name and a last name that are real names (you can't have "Beutiful Rose" or "Green Grass") as a name. If you don't want to use your real name, no problem, they will not ask you for a photo ID, but of course don't use "Stephen King" or "Tom Cruise" because that would be really obvious as well. With that said, let's answer your question.
MS .NET gives you a very powerful IDE (MS Visual studio) which is THE BEST IDE ever. Even though I hate Micro$oft, but this is something I have to admit. C# and VB are nice languages, and since the IDE does a lot of work for you, it'll make you very productive. The problems with .NET are known of course. It's proprietary, with an expensive IDE, and the programs will run on windows only, which is not bad if you are targeting desktops, but REALLY nasty if you are targeting enterprises and server applications.
Java is the most popular programming language (21.483% with C in the second place at 14.859% according to the TIOBE index). It's platform independent, hence you can write once, run anywhere. IMHO, it's the de-facto for most enterprise applications.
Groovy is a dynamic language that is java based (meaning that it's written in java, compiled to java bytecode, and runs in the JVM). As with a lot of dynamic languages, it provides a great performance boose for developers, where you can produce more in less time and a less number of lines of code.
Ruby is another dynamic language that is gaining popularity, and it's (like java and of course groovy) platform independent. It can be run inside the JVM through JRuby, which is a java implementation of the ruby engine. Ruby also gives a very good performance boost for developers.
Ruby on rails is a framework for web applications written in ruby. It's not a language by itself, so it can't be compared with the above.
Which is better? Each of them has it's advantages. If you are developing a desktop application for the windows platform, I suggest .NET (I hate myself for saying that ). If you are developing a simple website for a client who is going to host it on a windows server and IIS, then again .NET is the best choice. Other than that, you have a lot of parameters to determine which language to choose. Some of the parameters are the expertise of the developers developing the product, the presence of legacy code, which systems are you going to integrate with, etc. There is no real answer to which is better.
The good news is that given the technologies you listed, all can do essentially the same thing. The bad news is that my answer doesn't help you much towards a conclusion, does it? (wink)
.NET is for Windows developers. If you are targeting that platform, it's something worth looking into.
Java is code that can run on any platform. It's strengths are really on the back end, although recent improvements to Swing and JavaFX are vying for their place in the sun on the desktop.
Groovy might be an easier way to get started than Java, but Java is more strict than Groovy. You might get frustrated learning Groovy first and then going to Java.
Ruby is gaining quite a (deserved) following, but it is clearly the new kid on the block. Most companies are still using either .NET and Java. The really forward thinking ones that live on the cutting edge are looking at Ruby, but for jobs right here, right now, .NET or Java are much safer bets.
Joined: Feb 14, 2008
hi there ! thank you for the informational reply for my posting ,both nassef and scott !!
And hey as You can notice I have changed my display name from "sdev" to "dev ch" will this be ok , let me know !!
Joined: Jan 28, 2008
The reason for having real names is that this is supposed to be a professional network. "sdev" and "dev ch" are not real names, so this doesn't make it professional enough.