Language Chooice

Lately I have been wanting to learn a new language and I cannot decide on which one. I only have time to learn one at the moment so I want to make my choice count. I am stuck between:
A functional language (Haskell, Scheme, F# or some dialect of ML).
A scripting language (Ruby, Perl or PHP)
Other (Fortran or C#)

I have not tried any of the .NET languages, because I do not want to be tied to one OS, what is you guy's opinion on this?

As for functional languages, they are a whole different beast. I want to learn one, but I do not know if I will have time to learn one in my short amount of time.

Scripting languages are nice, but they have their downfalls.

Also, by learn I mean get to know the basics of the language.
If I were you I'd choose to learn Haskell.
Learning it is on my to-do list, alongside learning J, and D.

http://learnyouahaskell.com/chapters
If I were you I would choose some functional language. Haskell looks fine. Learning to think in different paradigm is always good.
Next I would learn scripting language for practical purposes. Probably Perl because it is on literally every Linux machine. I do not like PHP for many reasons, and don't know Ruby enough to say anything about it.
Haskell looks interesting, but how long would you guys say it would take to learn it (in hours)? Perls also, interesting, but from snips I have seen it looks complex.
@Catfish I forgot to add J (D looks very similar to C++, if I am wrong please let me know)
@MiiNiPaa what, in your opinion, is wrong with PHP?
Inconsistency: some times it uses camelCase, sometimes underscores. Order of argument is inconsistent too. In C++ if I know name roughly, I could deduce function name, and order of parameters is pretty consistent almost everywhere.

Undecypherable and plain wrong error messages (and I though template errors in C++ were bad)

TERNARY OPERATOR PRECEDENCE!! I do not know why they did it different from others and now we have to fall to use of parentheses everywhere.

I do not remember others, but there were more.
D looks very similar to C++, if I am wrong please let me know

You are correct. It looks and feels like a much improved C++.

I recommended Haskell because, like MiiNiPaa said, it's a nice change of pace. D tends to just spoil you and to make you think "I wish C++ had that feature" -- without actually teaching you anything new.
Script Coder wrote:
As for functional languages, they are a whole different beast. I want to learn one, but I do not know if I will have time to learn one in my short amount of time.

If you don't known any FP yet, do learn one. Of the languages you mentioned, Scheme and Haskell have excellent introductory tutorials and books. I know OCaml and some other FPs better, but I recommend Haskell like the others above - there's a lot of depth to it if you like what you see once you learn the basics. As far as tutorials go, check out http://learnyouahaskell.com (edit: oh, Catfish pointed it out already)
Last edited on
What the hell? D looks like a C++ copy to me from a quick google search.
Thanks guys, I have started learning haskell from http://learnyouahaskell.com/chapters
I will post any problems/questions I have in the lounge. Or I have heard there is a freenode room #haskell.
I will post any problems/questions I have in the lounge.

I'm pretty sure that chrisname knows a bit of Haskell, but I don't know who else, if anybody.

I recommend StackOverflow instead for questions about the language.
http://stackoverflow.com/questions/tagged/haskell

Also:
http://www.haskell.org/haskellwiki/Haskell
I recommend StackOverflow instead for questions about the language.

I have heard SO is a bit snobish and uptight, can anyone confirm/deny this?
Also, thanks for the other link.
I have heard SO is a bit snobish and uptight, can anyone confirm/deny this?

From personal experience, StackOverflow is straight to the point: moderators may remove things like "Hello everybody." and "Thanks." to leave just the bare question. Moderators will close the question if it derails.

People there are also quick to downvote your question/comment if it wasn't very inspired.

Aside from this, the answers tend to come quickly, and usually from experienced people. And due to the voting system, the best answer will always pop up.
Last edited on
After you learn Haskell, you can jump right into Scala. It takes the best of Haskell, Java and Ruby and merges that into one language.
Topic archived. No new replies allowed.