Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

> I think people overestimate the significance of choosing e.g. Ruby over Python or vice versa. C vs. Java is a legitimate choice, Java vs. Clojure is legitimate, Ruby vs. Python is not, IMO. I'd like to see an example of where choosing Ruby / Python / Perl is a momentous decision.

I agree here as well re: Ruby vs. Python vs. Perl. I've found that since I know Perl (have spent many years working on it, both professionally and on my own), I can fairly easily work on Python projects. Out of those three, my choices are generally going to be based on whether one has a better library than the other two (e.g., Python having a better ncurses library than Perl, Perl having an better XML parser interface). I've no personal preference between the languages themselves, as I feel when I program in them, I am not learning anything that I don't already know well. (Ruby being a slight exception with its Smalltalk-like features, co-routines, etc...).

It's pretty much the same way for me with C# vs. Java and C++: C# has language features which make it a more pleasant than the other two, but ultimately the choices come down to platform choices/library availability/project-specific limitations (e.g., I'll use C++ or C# for desktop applications, C/C++ for non-trivial UNIX command line utilities, Java for server side/distributed applications which make extensive use of threading; C# might be nice for that role as well, but having Windows in a datacenter can easily kill a project or a even company -- and Mono isn't quite "there" yet). Again, compared to each other, neither of these languages teaches me something the others won't, with a few notable exceptions (e.g., Java's interfaces taught me the pattern to use -- most of the time -- with C++'s multiple inheritance: inherit a single non-abstract, constructable class and multiple purely abstract classes).

Doug Hoyte called the concept "blub central": there's game theoretic disadvantages to the mainstream languages introducing new features (e.g., for the long time Java wasn't taken seriously in the mainstream due to being a garbage collected language; I'd imagine there was similar debate around closures being added to C#, but now Java will -- after much botching -- have them).

On the other hand Scala, Clojure, Haskell, OCaml, Scheme and Common Lisp each teach me new concepts that I haven't seen before. Even if I ultimately disagree with the languages' aims, I still find these languages worth learning: e.g., I tend to think that, ultimately, dynamically typed languages with optional type hints (e.g., Common Lisp, Clojure, Strongtalk) are preferable to statically typed languages, statically typed languages with well-designed type systems (Haskell, OCaml, Scala) are still very much worth learning.



Consider applying for YC's Summer 2026 batch! Applications are open till May 4

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

Search: