<p>Correction: 2nd to last word in my above post I said i wanted to learn a scheme language. What i meant was a SCRIPTING language (ie Python or Perl).</p>
<p><em>shrug</em> he is asking this in the context of "i'm going to college this fall"; you know that upper-level cs classes here, like 6.170, use java, yes? i'd put down another vote for c++, boo c# :)</p>
<p>this isn't his first language mercury ... I think it's good to get exposure to both sides, hence why I suggest perl.</p>
<p>I already put in my vote for C++, but I will give my opinion on some other languages:</p>
<p>Java - nice to learn, nice for prototyping. It has the nice ability to work with applets, and has a built in GUI. Also everything is standardized, crossplatform(not w/o bugs though), and recently a decent JIT compiler. Only problem is that for most computational applications you will probably want more speed, and Java is not the way to go. Used a lot in the realworld for RAD and Webservices. Also, JAVA API has to be downloaded(runtime for deployment).
<a href="http://www.sun.com%5B/url%5D">www.sun.com</a></p>
<p>C# - Might be considered a cross between C++ and Java, but honestly it might be considered in its own category. It has all the benefits of Java, but fixed Java's err's, since it was designed with Java's results in mind. Very nice, I recommend you learn it. It is a lot faster as well, since it is compiled to MSIL. On Longhorn, MSIL will be directly supported by Longhorn OS. Also .NET 2.0 is much better than anything Java can offer. JIT compiler is also better than Java's JIT compiler.
Very nice support, and great IDE(Visual C# Express Beta 2) for free, and $50 when it goes commercial.</p>
<p>C++ - Great. Very powerful. Very dangerous. If you don't know what you are doing here, and you are messing with difficult topics, you won't get far at all. Very fast, as you can even include inline ASM here. Compiled to native machine code, so you can't compile once, and run everywhere. However, the linux approach does have benefits, only thing I can hope for is a standard Makefile format. </p>
<p>I would suggest trying all of them.</p>
<p>C/C++ are used everywhere; might be good for that. Stay the heck away from "AP CS"-oriented material though, it'll scar you for life ...</p>
<p>Perl is also pretty standard, but I prefer Python. Python is, IMO, a really fun language to just play with, b/c it's simple to write short stuff, but it's got lots of little tricks and tools as you write bigger and bigger programs.</p>