Tuesday, January 14, 2014

Programming Languages I Am Learning / Working With

  1. C/C++
    • Systems (Linux, Android, Chrome) Programming 
    • Efficiency. Memory manipulation. Complete control over the environment. 
  2. Go 
    • Systems, Concurrent and Networked Programming 
    • Static Typing
    • Faster compilation 
  3. Java 
    • Managed Code
    • Android Application Development
    • Open Source Libraries and Frameworks
  4. Scala 
    • A blend of all the features you ever saw in different languages! 
    • Tries to answer “So, if we want to let programmers implement this feature as language library rather than language syntax, what features do we need to introduce in the language?” 
      • Features:
        • Actors Library 
        • Operators as Functions 
        • Flexible syntax (Prefix, Infix, Postfix mixing) 
      • Makes Scala DSL friendly and "scalable".
      • Makes the core language small (rest of the features are implemented in the library). Lisp Philosophy. 
    • What happens when you try to fuse OOP and Functional Programming on JVM? 
    • Static Typing and Terse syntax
    • Concurrent and Distributed Programming
  5. Clojure 
    • Lisp on JVM
    • Metaprogramming (Programmable Language) 
    • Functional Programming
    • Concurrent Programming
  6. Python 
    • Rapid Development
    • Open Source Libraries and Frameworks
  7. JavaScript 
    • Web Front-end (with HTML5 & CSS)
    • Object-based Programming 
    • Node.JS
    • Statistical, Numerical Computing 
  8. Haskell
    • Purely Functional Programming
  9. Erlang
    • Fault-tolerant Real-time Parallel Distributed Computing
    • Modifiable without downtime
Current Preference
If you need complete control over the environment, go down to C++. Otherwise, use Scala, Java, Clojure. 

No comments:

Post a Comment