Created
September 5, 2013 00:20
-
-
Save knocte/6444504 to your computer and use it in GitHub Desktop.
disadvantages of some programming languages
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
* Rust: already mentioned it's maybe too early to use (it didn't reach 1.0 and that means that the language keywords, classlibraries APIs, etc, can still change without warning). I like how safe and statically typed it tries to be, but I don't like the fact that it defaults to use manual memory management (non-GC). | |
* Go: definitely a language that will give a lot to talk about. The only thing I don't like about it is that, even though it uses an error-passing model that may be better than the try-catch model, it makes errors not bubble up (thus ignored) by default, which doesn't look very safe to me. | |
* Haskell: a very good contender in the functional-paradigm world, however the fact that it doesn't interoperate with other languages at the VM level (like F# or Clojure) makes it a no-go for me. | |
* Scala: a good static-typing alternative to Java, a bit less verbose, hybrid between functional and object-oriented paradigm, and which runs on the JVM. Disadvantage I see: doesn't default to immutability, like most functional languages do. | |
* Clojure: another good alternative to Scala if you're really convinced about immutability and the functional paradigm, because it also runs in the JVM. Only disadvantages I see are: | |
** JVM itself, a virtual-machine whose opensource counterpart is much worse than Oracle's version. | |
** JVM doesn't seem to do tail call optimizations (a fundamental technique for functional programming) as well as other VMs (i.e.: .NET). | |
** It has a dynamically typed system (although there's a library to achieve static typing!: http://logaan.github.io/clojure/core.typed/2013/08/29/first-look-at-core.typed.html?utm_source=dlvr.it&utm_medium=twitter). |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment