I went to the polyglot runtimes meetup after a very long time. This is one of the more enjoyable meetups happening in Bangalore, even though Java is usually the primary subject around the topics at these meetups. This was the first meetup of 2018 and the topics were very broad and attractive.
The first topic at the meetup was on the evolution of programming languages. Titled “Programming Languages: For the man or the machine?”, Gireesh Punathil started with talking about the general evolution of programming languages and their user audience. Gireesh Punathil is an architect with IBM and a Node.js collaborator. Interestingly, Gireesh started the talk with describing the importance of being a part of open source communities (e.g. Node Foundation). Needless to say, I strongly agree. I agree that contributing to an open source project should not be enforced but many people don’t even know the benefits and that education is very important.
Gireesh started his talk by explaining machine code, and how it is not practical to use that for complex software. That is why we have languages which abstract away the machine and let you focus on the business logic. We started by talking about C, something which is closest to the machine, to something like HTML, which is at a very high level of abstraction.
After a brief discussion on the types of features available to different programming languages, Gireesh talked about typical tradeoffs with an object-oriented approach and functional programming approach. Since this meetup group is predominantly Java, Gireesh covered these tradeoffs for each of Java’s concepts like virtual methods, threading, native interfacing, and even classes. The various tradeoffs involved with each of these concepts is, in my opinion, important when you want to think about your code from a long-term maintainability perspective.
Of course, the whole theme of this discussion being evolution of programming languages, Gireesh ended on a note of picking the right tool for the job. There is no one size fits all solution. Ever.
After the discussion on programming languages, Jayashree S Kumar spoke about Kotlin and if it has what it takes to be an alternative to Java.
She introduced Kotlin, and as it turns out, it is a name of an island near St Petersburg (not sure if that is the inspiration for the name of the language). This language was developed by JetBrains in 2011 and later open sourced under Apache 2.0 license. One of the main features of this language is its null safety.
Kotlin grows ever popular, especially as a language for programming Android apps. I suppose the attraction is that this is close to Swift in appearance and this helps developers working on the apps for both platforms. I guess this could be why Google is promoting it heavily. It is concise, safe, and interoperable with Java. It also has good tool support (no wonder, it’s by JetBrains after all).
Jayashree took us through a demo of all these features in Kotlin when compared to Java. In conclusion, she didn’t think this has enough yet to make it an alternative to Java, but very attractive for something like Android development.
The last talk of the day was by Ranjana Seshadri on “Programming for Machine Learning – Scala or Python: A comparative review”. Ranjana talked about how machine learning is booming and there are new languages and technologies that assist in writing ML applications. However, she chose to compare two – Python and Scala.
Ranjana described how Python has great community support and its ease of use and flexibility, not to mention the number of libraries, make it easy to work with ML apps. On the other hand, the concurrency features in Scala make it ideal for processing huge volumes of data (typical big data operations). The Scala community is trying to build up parity in libraries for processing data and visualisation, whereas Python is bridging the technological gaps in performance. Who will win?!
As always, IBM sponsored refreshments and organised another great meetup. I had fun and it was worth travelling almost 20 km each way for this.
Some of the photos from the event are below: