Namespaces, Modules & Packages

I found the wikipedia page on namespaces not very helpful, and in fact did not find a concise and clear explanation elsewhere, so hopeful this post provides a clear and concise explanation of the basics, before getting to the more advanced. Contents: Basicswhat is a namespace?runtime vs compile time namespacesglobal namespacesobject namespaces and "."function/method 'local'… Continue reading Namespaces, Modules & Packages

Static Typed vs Dynamic Typed Languages

Programming languages are categorised as either static typed ,or dynamic typed, and the differences may actually surprise, as they go deeper than it may seem at first. Contents: Dynamic Type Variables: The Obvious, but Superficial Difference Dynamic Types: A Deeper Difference Strange Behaviours Behaviour Summary: Total flexibiliy, total uncertainty Static Types Compile Time vs Run… Continue reading Static Typed vs Dynamic Typed Languages

Gradle, Maven, Ant, other build tools and History

Introduction While the components of a python program are installed with pip install or similar, the components of any compiled program (such as kotlin) need to be combined together or 'built' using a build tool. This page gives an overview of build tools, while other pages in the build section of this site explain how… Continue reading Gradle, Maven, Ant, other build tools and History

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