We started a language club at work this week. Thus far, we have a collective interest in a number of languages: Python, Ruby, F#, Erlang, Objective-C, Scala, Clojure, Haskell and Go. There are more but these 9 received the most votes.
During the first few meetings we are going to determine which language we should tackle first. To help make our selection, each member will provide a quick overview of their favored language by answering the following set of questions:
Why are you interested in learning “your” language(s). (There’s lots of work, I’m an MS shill, It’s hip and fun, etc)
What type of language is it? (OO, dynamic, functional, procedural, declarative, etc)
What types of problems is your language best suited to solve? (Algorithms over big data, rapid application development, modeling, merely academic, etc)
Can you provide examples of where/how it is being used? If it isn’t being used, why not? (Erlang was invented at Ericsson to provide an extremely fault tolerant, concurrent system.)
Quick history – Who created/sponsored the language? When was it created? Is it currently active?
Does the language have hardware support (an attempt was made at one point to create processor instruction sets specific to Prolog), or can it run as an interpreted language inside another language (like Ruby in the JVM)?
Are there facilities for programs written in this language to communicate with other languages? How does this affect its utility?
Does the language have a IDE tool support? (Think Eclipse or Visual Studio)
How well is the language supported in terms of books, community and documentation?
What’s the number one things which differentiates the language from others? (i.e. Why is it cool?)
How is the language applicability to us as consultants? What would the impact be of using the language in terms of cost, maintainability, personnel costs, etc.?
What’s the number one things which differentiates the language from others? (i.e. Why is it cool?)
This should provide an decent introduction into nearly a dozen languages and give us enough context to decide which single language deserves our undivided attention for the weeks to come. Stay tuned for the winner…