<p>Ok, so im going to MIT next year and I want to expand what little programming knowledge I currently have. I have a fairly good grasp on Java, but I was looking at three languages in particular- Perl, C++, and Python. I know only a little about each, so any suggestions on why I would want to choose one over the others would be greatly appreciated (or if I should just stick with Java). Also, any suggestions on other (better?) languages would be appreciated (im not looking to program for any application in particular, Im just looking for a versatile language).</p>
<p>At MIT, programming courses will begin neither with Java, nor C++, Perl or Python. It will begin with [url=<a href="http://www.swiss.ai.mit.edu/projects/scheme/%5DSCHEME%5B/url">http://www.swiss.ai.mit.edu/projects/scheme/]SCHEME[/url</a>] which is based on LISP (what the hell! hehe). So look into that first. Afterwards you can try your hands at C++ (for the simple reason that it's popular and flexible). I don't know anything about Perl or Python so I can't compare em directly. But since you have "fairly good grasp" on Java, C++ should be easy automatically, and will expand your concept of object oriented programming. Perl and Python are more for like CGI script programming and all.. not really hardcore enough ;) (just my opinion). They are interpreted rather than compiled, so a speed hit as well. Plus - they are not standardized like C++ or Java (very minor problem). So my vote: first Scheme then C++. Perhaps others might have better advice.</p>
<p>Hey mercurysquad, i read on prS TATS that you didn't get into any american universities :eek:</p>
<p>you should definitely not waste your time with scheme, since it takes around 1 hour to learn and nobody ever uses it except MIT, and if you take 6.001, knowing scheme isn't going to help you. Any of the other three are good, though :-D</p>
<p>I would suggest Perl, since it's pretty powerful and flexible (and I've heard great things about Python). You can't go wrong with any of them though! Just pick one out of a hat and go. I wouldn't recommend Scheme, like asdf123 said prior knowledge won't really help.</p>
<p>python is generally held to be more friendly as an absolute first programming language, but if you already have a handle on java you may not care. perl, i hear, is extremely useful for certain things, but can abuse you horribly if you're not already a decent programmer.</p>
<p>I would go for C++. It is very powerful, and you will find all sorts of help on the net for it. It takes a while to learn though.</p>
<p>Depends what you want to do: prototyping, math modeling, computation heavy, etc.</p>
<p>Ok I didnt know that about Scheme :o
But my vote is still with C++ ...
[quote]
Hey mercurysquad, i read on prS TATS that you didn't get into any american universities
[/quote]
Oh yeah.. cut-throat competition for us Indians. I'll probaby go to [url=<a href="http://www.iu-bremen.de%5DIUB%5B/url">www.iu-bremen.de]IUB[/url</a>], Germany.</p>
<p>Depending on your background, C++ may not be the best to start with. I recommend equally perl or python, they're very similar, and both very easy to learn. C++ is powerful, you will hear that often, but since it is syntactically similar to perl, it won't be very difficult to pick up after perl, if you learn that. Perl has the added benefit also of not needing to be compiled.</p>
<p>I would have to disagree with stasterisk this once. If you take the right approach, C++ is actually a pretty easy language to learn. The problem with most people is that they see some source for some advance program, and try to mess around. It also depends on the time you have to work with. If you have lots of time, you can employ a combination of messing around and reading, and be a good programmer.</p>
<p>Remember, no matter what the language, that skill that the top dogs have can only be attained from experience.</p>
<p>Oh, and you have tons of great IDE's and compilers, most for free, for C++/C.</p>
<p>PHP is a great intro language. It's also really useful and fun.</p>
<p>Perl is very useful and easy to learn too.</p>
<p>I'd start off with one of those two.</p>
<p>And I believe the "easier" intro to comp-sci uses java, though I think most people who are serious about computers take the scheme class.</p>
<p>For someone who knows Java, C++ won't be that difficult, with the added benefit if knowing to program in one of the industry standard languages. The guy is obviously not beginning with programming.. just expanding horizons.</p>
<p>lol my bad. i should probably read the post next time.</p>
<p>I think you should try perl b/c it's weakly typed--a new kind of language that's really fluid compared to java.</p>
<p>C++ and Java are quite similar, and IMO Java has kind of replaced C++. Its more commonly used.</p>
<p>Go for either Perl or Python, or do both :D</p>
<p>"I think you should try perl b/c it's weakly typed--a new kind of language that's really fluid compared to java." </p>
<p>Which generally leads to abusive behaviour in general with type-checking, kinda like void* in C. My friend did that, and when he switched over to strongly typed languages, it was a nightmare.</p>
<p>yeah, ive been doin a bit more research. Python is looking like it's gonna win out over Perl just because of its simplicity when compared to Perl's confusing syntax (i have no UNIX background). I really like Perl's flexibility and large number of core libraries (as opposed to the few in Python), but have heard bad things about its approach to OO programming. Plus, Im really opposed to Python's use of whitespace instead of brackets, etc. for program organization. It seems both have a lot to offer, so I might end up going with hello's suggestion and learn both.</p>
<p>Also, what have you guys heard about C# compared to C++ and Java? Ive heard its more a reconciliation between the two than a new language. Anyone know if it's worth learning, or should I just go with C++ (which has the benefit of speed)? Im really interested in learning robotics (maybe even some AI) programming, so I thought I might go with a more structured language (java, C++, or C#) in addition to a scheme language. Thanks a lot guys.</p>
<p>my personal opinion is that c++ and java are more legit than c# :-P</p>
<p>he already knows java sagar, it's no problem.</p>
<p>I first started with Perl and switched to C++, there's been no problems.</p>
<p>Come onnnn... he knows programming, so he should get into MORE advanced languages.. why go for Perl or whatever cuz it's easier? Go for C++ mate.. you won't regret it. :D [yes yes intense lobbying.. I myself didnt like C++ (bein a VB6 programmer.. dont laugh!) but after I learnt it, it seems great.] As for loosely typed - I don't think that will give him any benefit. If he is to learn good programming practices, he rather start using a strongly typed language.</p>
<p>As for perl's libraries - trust me you'll find more c++ libraries than there are for perl :p ...</p>
<p>C# - this is just microsoft's java.. very similar to c++ (i dont know java so cant compare). It's cleaner and 100% object oriented (like even the data types are actually classes). It has no pointers either.. basically a cleaner c++... nothing really appealing, just slightly easy, if you want to go into .NET programming or windows software development. This is perhaps for "software engg.s" who want to develop business applications and all that.. not of much interest from the computer engineer's point of view (except for the fact that microsoft CLAIMS it will be one day portable across many platforms, like pocket pcs or linux.. right now Im not sure if c# compiled programs will be portable out-of-the-box).</p>
<p>And hello - whatever makes you say Java is used more than C++ ? Maybe in academic context but def not in the real world..</p>