Kotlin: Sandbox Projects

With Python you easily have a whole group of small test programs within a single folder, which provides a simple 'sandbox' environment to try tests and experiments that go beyond what can be done in the Idle REPL.  This page describes how to create Kotlin 'sandbox' project that provides a simple solution to creating Kotlin… Continue reading Kotlin: Sandbox Projects

From Extension Lambdas to expressive Kotlin DSLs

Extension functions, and Lambdas and even Extension Lambdas have both been discussed already (and are assumed knowledge for this page).  But the uses of lambdas goes beyond just functionality, and into the realm of expressive code.  Expressive code is about having the code represent the ideas behind the code more clearly, allowing better reading of the… Continue reading From Extension Lambdas to expressive Kotlin DSLs

Closures, callbacks, Lambdas and Lambda parameters

Introduction. Previous pages have introduced the concept of lambdas and closures, and explained how the concept of the closure relates to methods, static and class methods in both python and kotlin.  This page builds on the concept of lambdas and closures, and provides more details on the workings in kotlin, and how this differs from… Continue reading Closures, callbacks, Lambdas and Lambda parameters

Interfaces, Delegation & Composition vs Multiple Inheritance & Duck Typing

Kotlin has Interface, Abstract Classes and Delegation, while Python has multiple inheritance. Different tools, same problems.  The different tools reflect an evolution of what Object Oriented best summed up by: Composition over inheritance. The rethink, the new concepts and how to use them are explained here. Abstract Classes Interfaces:  Duck Typing with Safety Multiple Interfaces… Continue reading Interfaces, Delegation & Composition vs Multiple Inheritance & Duck Typing

Closures, methods, static methods, class methods

Everything you ever wondered about closures, and a few things more: Closures: just what are closures? Closures as code, packaged with parameters Methods as closures: Python Methods as closures: Kotlin Static Methods class level methods/companion object methods Closures: just what are closures? Lets start with an example, and then discuss how it works. The function… Continue reading Closures, methods, static methods, class methods