Next Lang to learn?

Pages: 12
I have about 2 years experience with C++ and know JAVA a lil bit. I want to be the person who can do just about ANYTHING on the computer. I am also 15 so i want something that will benefit me later(i plan to be a software engineer). Do i need to go web development way or learn something like python? I don't really know(i do some opengl and sfml for games on c++ so thats outta the way)....really i want it to be so that when i goto college i can be lazy:)
Try one of: Haskell, OCaml, Scheme.

OCaml is probably the easiest of the three to pick up if you've only ever used imperative languages. I haven't looked at it too deeply, so I can't say much about it. The one thing I've heard that might be noteworthy is that its compiler tends to generate quite fast code for a functional language. It supposedly rivals C in some cases.

Haskell is the weird one but also (IMO) the most interesting one. Like OCaml, it's statically typed and uses type inference to forgo type declarations. Unlike OCaml, it's purely functional and uses lazy evaluation. The latter allows such things as infinitely large data structures that are constructed as needed.

Scheme is a dialect of Lisp, the archetype of functional languages. Unlike OCaml and Haskell, it's dynamically typed (which I personally don't care much for). One interesting aspect of Lisp is that it lets you treat data as code and code as data, so such things as self-modifying code is relatively easy to do in Lisp.
supperpiccle wrote:
I want to be the person who can do just about ANYTHING on the computer.
I would worry less about what new language you should learn. You should be guided by the subject you are learning in the choice of your tools and not the other way around.

Try one of: Haskell, OCaml, Scheme.

These are very interesting languages, but mostly academic and with little use in industry.

Learn Scala, because it offers almost all the goodies of the above three, but it has much more usage in industry, and, thanks to binary compatibility with Java, it inherits all the good stuff from Java - lots of production level libraries and good performance.
Well if you are going to mess with python then you should possibly try Lua as it is a good scripting language. Plays nice with C/C++ under Linux (not sure about Windows though because I've got to where I code mostly under Ubuntu). I've also been told Haskell and Lisp too when I talked about learning languages. I've toyed with assembly just for fun as I've found that a lot of companies still use it to squeeze as much speed out as they can.
I'm going to recommend a functional programming language. Or really, any declarative language. Also assembly; x86, arm, z80. Any will do.

Just step outside your comfort zone, as long as you're not actively trying to learn two vastly different languages at once, these things can only serve to better your understanding and skill.

For functional programming I suggest Scheme, call me crazy but I'm partial to prefix notation.
why don't you master Java?
Probably because Java sucks.
closed account (1yR4jE8b)
How long before rapidcoder and chrisname destroy this thread with C++ v Java arguments??? I give it 24 hours... or less.
@chrisname: agreed. Indeed Java sucks.
Last edited on
@chrisname & rapidcoder

OK. If you don't know java, what other base language can be used to make android apps n gamez???
I used to be a Java hater but as I keep running into it all over the place. I thought that I best give it a good go (rather than the lame looks that I did in the past).

To this end, I have bought myself copies of

Core Java, Volume I--Fundamentals
Core Java, Volume II--Advanced Features
by Horstmann and Cornell
Professional Android 4 Application Development
By Reto Meier

Once I have read them, I decide if I still hate Java.
I hate java completely for superficial reasons..
closed account (1yR4jE8b)
I like Java for it's library support, ubiquity and top-notch tooling. Not necessarily for the language itself; C# does many things better at the language level, for example, but Mono doesn't even come close to being a good enough replacement for the .Net framework on non-Windows platforms so I stick to Java and other JVM languages (JRuby, Jython and Scala, mostly) for most x-platform work I do.
I don't hate Java, I was actually trolling (that's not to say I don't dislike it, just that I don't dislike it very strongly).

I agree with you on everything except for Mono not being good enough, I think it is, so I do use it on non-Windows platforms. The only irritating thing about Mono is when you have .Net DLLs which rely on native DLLs, because then you have to mess around with dll.config files and environment variables to get Mono to map foo.dll to Once you've done that, though, it's fine (unless the library is only distributes as native Windows DLLs; then you're screwed, but that's not Mono's fault).

Any language.

Android apps run on a VM called Dalvik which reads the app's executable file(s) and interprets what's called bytecode. Any language that can be converted into Dalvik bytecode can be run on Dalvik. At the moment I know that Java and C# can. There is also an app called SL4A which lets you run scripting languages like Python.
Last edited on
closed account (1yR4jE8b)
Is Mono performance still horrendous compared to .Net? Last time I checked it took nearly 3 times as long to run the same code for many things.
i really would like to stay away from .NET ANYTHING i hate micro$oft with a passion....don't even get me started with apple ill buy M$ over apple anyday....anyway Lua sounds good to me ive always wondered what it was. Thanks for all the suggestions and as far as me and how i feel about java im still skeptical but lets all be's here to stay for a lil while anyway....Thanks again!
If you're looking to get a quick programming position (might not be the best pay, but still), then I'd go with either .NET, Scala, or Java in the order that I've mentioned them. If you want to land a high paying job, learn FORTRAN. I say this because most of the old FORTRAN gurus are either dead or dying and there aren't many people out there to maintain legacy code.
Pages: 12