Nullable, null, None, Unit, Nothing and void: the many faces of nothing

Python has only one way of saying 'there is nothing here':  None.  Java has the keyword 'void' and the value 'null', kotlin has Unit, Nothing and null.  What is the actual difference in meaning for all of these? Python None Kotlin Unit, null and Nothing Java void and null The concept of 'Nullable' Null Safety… Continue reading Nullable, null, None, Unit, Nothing and void: the many faces of nothing

Kotlin Limitations vs Python

This page will serve as repository of limitations found when attempting to move kotlin code to python code. Some limitations are a natural consequence of moving to static types, others are effectively inherited from Java. The list here is based on placing those I find most significant at the top, and the further down the… Continue reading Kotlin Limitations vs Python

When will your project ‘grow up’ and require typesafe code?

There is common belief that after an initial very agile development period,  "grown up projects should switch to a static typed language".  This also raises the question, "are type-safe languages less suitable for early stage development?"  This page considers the evidence for these beliefs, plus considers if there is a benefit to starting dynamic and… Continue reading When will your project ‘grow up’ and require typesafe code?

Class Level Objects, Companion Objects & Instances

Topics for this section: Class Level Objects & Companion Objects:  Key Terminology. the simplest case - one object type Python - an additional object type requires precise terminology Kotlin: the companion object equates to the Python class object Class & Companion Variables and Methods vs instance methods and variables  Terminology for Clarity: Class Level Object,… Continue reading Class Level Objects, Companion Objects & Instances

Implementation: what is a practical approach?

Any software team who is considering moving to kotlin, must by definition, be currently using at least one alternative language.  To change languages, and ecosystems, is a big step.  One of the key features of kotlin is how easily and seamlessly a project can migrate from java.  Currently, that same ease of migration is far… Continue reading Implementation: what is a practical approach?

Kotlin DSL templates with Python (or any other) Server

The Concept: A replacement template engine written in Kotlin DSL Kotlin can replace the template system for a python server, or ruby server, or any other server, with no change to the server other than the template system, regardless of what language is used for the server itself. This allows replacing mako, or jinga2,  Django… Continue reading Kotlin DSL templates with Python (or any other) Server

OOP vs Functional: No contest!

Moving to kotlin, the question can arise: "should I program in OOP (Object Oriented Programming) style, or move to Functional programming?".  This page examines reviews what Object Oriented programming really means, what functional programing is, and outlines how there is no incompatibility if the correct approach to OOP is in place, and the two paradigms… Continue reading OOP vs Functional: No contest!