Hacker News new | past | comments | ask | show | jobs | submit login

Learn scheme and you can handle all lisps, learn C/C++ and you can handle all the imperative languages, learn ocaml/haskell and you can handle the rest. That is 3 languages to master.



Until you come to Prolog, or APL/J/K and realise that none of these languages have fully prepared you either. And then there are other things out there too, that will leave you learning all over again.


APL and friends blew my mind when I read about them. I remember thinking "You can do all that with just those characters? That's the same length as the word function"! It's a good job I read this far down, I made a mental note to learn J but, as usual, forgot it by the time I got home. Thanks!


I have this ritual every year or so, where I try to write J, sigh, and go back to pedestrian F#.


I always do one-liner stuff in J, and I keep trying to get into F#. I recently bought Dyalog's APL. I thought the symbols would get in the way, but it's a whole other door opening. I really like the array-oriented languages for math and science. Even Julia and Numpy are attempts to do what the APL/J/K family have always done. I've always had Racket on my machine, before it was called Racket. Having an IDE and a good standard library right off the bat is great for beginners and dabblers like myself. I do not program for a living. I only program when I have a math or engineering problem to solve.


Racket is amazing, I agree. :)


C/C++ is not like all imperative languages. Basic, Go, Python - those are more bog standard imperative languages. C/C++ are off in a world of their own with implementation specific behavior (compiler, arch, ...), undefined behavior & memory safety.


If you know C/C++, the concepts of Go and python should be easy. Especially since you understand how python itself is implemented.


I just pity the poor person who learns C++. I pity myself for having learned it.


Why? I think following a 3/4rd year university course on C++ was one of my best investments ever.

Nearly every imperative language is a walk in the park after you know C++, and you can still write C++ for performance-intensive code (if necessary with expression templates et al.).


Totally agree. Also, I'm very happy I learned C++ as my first language (after little bit of dabbling in QBasic, Pascal and VB in primary school). When you're learning programming for the first time, you have no reference points. You either learn it or don't. So I learned C++, not once thinking it's difficult or complicated, and it became my reference point, making other imperative programming languages trivial to learn.


You forgot Prolog, and maybe Smalltalk (although CLOS may help or hinder you in understanding message parsing/"proper" OO)... but otherwise, yeah pretty much.

[ed: and perhaps PostScript/Forth...]


Yeah, forgot about logic programming. There are some specialist languages too, and hardware languages like VHDL.

Overall, I think the more languages that exist, the better. Some people think we should be moving towards more domain specific languages.

There is a balance between using the best tool for the job, and getting a large potential developer base.


I don't get the argument. Can't I say then "learn Logo and you can handle all programming?" Because you are defining an arbitrary cutoff of functionality and detail further which there is no effort involved in "handling" new languages, based on your experience, I suppose.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: