The post is a mix of Java, Scala and some fantasy language. I use the code examples to explain my points not as actual working code
I really like interfaces. I wrote about them here. They feel clean to me. They abstract ideas and minimize the contract between classes. I encourage developers to develop against interfaces.
Continue reading How to Improve Interfaces
Today it’s clear that representing optional values with Null was not the best idea. Several modern languages model this problem with explicit nullable types or Option Monad (after the Haskell Maybe Monad). As Option in Scala has influenced my programming style heavily over the last years, I wanted to compare how other languages deal with this. I did not include Groovy although it was one of the first (the first?) JVM language to safely dereference null values because I currently have no interest in Groovy.
Continue reading Comparing Optionals and Null in Swift, Scala, Ceylon and Kotlin
Disclaimer: I only know web frontend/backend and mobile development with several teams. So everything I say needs to be seen in this context.
In beginning of the 90s I was writing internet code in C directly using TCP/IP as an ‘abstraction’ layer. Bugs were plenty and development was a pain. Then Java arrived and made development much more pleasant. Java with exceptions created nicer to read exception stack traces than C did with core dumps and also prevented many common C bugs. Continue reading The Case for a New Programming Language