JGrasp is an IDE, not a language And if you want to program in java, use JBuilder (based on Eclipse) or Netbeans 6.0. Those 2 are the best IDE's available at the moment I wish that visual studio had implemented the same functionality those 2 offer, refactoring sure would be a lot easier. I think the best way to start learning is to start with java, and move on to c#. They're not all that different and c# is a mix of c++ (without the complexity) and java (with added features such as structs, pointers, ...). Unless you want to keep it cross platform, then stay in java A lot of companies are focussing on webservices now and they either go with the java approach or with the .net approach but for the output it's the same (a webservice in .net can be used with a webservice client in java because it uses SOAP as intermediate xml language as communication). There was a mobile development hype a few years back (yay, my internship is developping a client for Microsoft Dynamics on a mobile platform in .Net ^^), now there is webservices. I don't know what the next thing will be, but it'll probably involve either java or .net again, so you're good with those 2. I think C++ is becoming more and more obsolete, it's fast and complex, true, but most programs don't need to be fast in the c++ sense of the word, and then again, you could always write a dll in c++ that manages the algorithm that needs raw speed (plain c would be even a better choice there) and do the rest in C#. Besides, you have to learn to program and that's independent from what language you use (each one is still a dialect from each other anyway). Analogy: you needed to learn to talk, using different languages is a whole different skillset (and easier one)