Friday, February 10, 2017

How to become a polyglot programmer?

How to become a polyglot programmer?
[source: .NET Design Patterns, By: Praseed Pai; Shine Xavier, Publisher: Packt Publishing, Pub. Date: January 31, 2017, ISBN-13: 978-1-78646-615-0]

From a programming paradigm perspective, there are only three types of programming languages in this world, which are as follows:

    Functional languages (based on lambda calculus)
    Logic languages (based on predicate logic)
    Imperative languages (based on Turing machines)

To be a contemporary developer, one needs to master a couple of languages from each family. To be competent in FP, the language options available are F#, Clojure, and Scala. The logic programming languages are Prolog and Datalog. Learning them will help on improving design skills, especially in building hierarchical data structures. The type inference algorithm available with F#, Scala, and C# uses the unification algorithm, which forms the backbone of the Prolog language. Thus, understanding the Prolog machine model helps you to appreciate and exploit the rich type systems available with the modern programming languages. Most of the popular languages are imperative in nature, and mastering a couple of object/functional languages (such as C#, Java 8, and Scala) really helps. Once you learn a representative language from each of the aforementioned families, you have made the cognitive leap to understanding every programming language ever created or going to be created in the near future!

No comments:

Post a Comment