Scala (for large server-side programs). Static types and functional programming, with access to the Java ecosystem/libraries. Some of the more advanced type system features are too complex/abstract for my taste and the most popular build system, SBT, is horrific.
Ruby (for quick scripts) . I have a slight aesthetic preference for it over Python but Python would probably be just as good.
Tolerate:
Java. Kind of a lesser Scala but with very solid tool and framework support. Java 8 adds some decent functional features but it can still be pretty clunky and verbose.
C#. Similar to Java (though I have little experience with it).
Dislike (based on little experience):
C++. Too many arcane rules, too easy to screw up.
Perl. Like Ruby or Python but with syntax that is much more complex and idiosyncratic for seemingly no benefit.
Mixed:
Clojure. Some great features but I dislike dynamic typing for large projects and also dislike the Lisp syntax.
Javascript. Appreciate the simplicity of the core “good parts” but is dynamically typed and I don’t like the prototype-based object system.
Interested in:
Rust. Seems like it could be a nicer language for the cases where C++ is warranted. Waiting for 1.0 to come out before trying.
Prefer:
Scala (for large server-side programs). Static types and functional programming, with access to the Java ecosystem/libraries. Some of the more advanced type system features are too complex/abstract for my taste and the most popular build system, SBT, is horrific.
Ruby (for quick scripts) . I have a slight aesthetic preference for it over Python but Python would probably be just as good.
Tolerate:
Java. Kind of a lesser Scala but with very solid tool and framework support. Java 8 adds some decent functional features but it can still be pretty clunky and verbose.
C#. Similar to Java (though I have little experience with it).
Dislike (based on little experience):
C++. Too many arcane rules, too easy to screw up.
Perl. Like Ruby or Python but with syntax that is much more complex and idiosyncratic for seemingly no benefit.
Mixed:
Clojure. Some great features but I dislike dynamic typing for large projects and also dislike the Lisp syntax.
Javascript. Appreciate the simplicity of the core “good parts” but is dynamically typed and I don’t like the prototype-based object system.
Interested in:
Rust. Seems like it could be a nicer language for the cases where C++ is warranted. Waiting for 1.0 to come out before trying.