Comparing Programming Languages

For the past week or so, I've been learning a new programming language called Kotlin. It is based on the JVM, and therefore strongly associated with Java, but they have made some design choices which make it unlike Java.

Noticing these differences has been more interesting than you may imagine, and it has helped me think out robustness, and flexibility in general.

Variables versus Values

Virtual versus Final Methods

Open versus Final Classes