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

Web Server Logic: Overview and Evolution

When thinking of the internet and servers, the first type of server that comes to mind is a web server. Not all servers on the internet are actually web servers, but as far as front of mind and siginificance, the web server is way up there.  The previous post covered hosting, and this post covers… Continue reading Web Server Logic: Overview and Evolution

Hosting: Shared, VPS, Bare Metal and Cloud & Containers

A full web site starts with a server, this page provides an overview of the options. Terminology: What is a server?Bare Metal DIY Hosted "Pizza Boxes" Sharing Pizza Boxes Virtual Private Servers Shared Hosting Slice and Dice! WHM/CPanel Cloud Superceding the Server: What is cloud? Docker & Kubernetes Private Cloud Public Cloud Serverless? Costing and… Continue reading Hosting: Shared, VPS, Bare Metal and Cloud & Containers

Python: The great, the bad and the ugly

Python is one of the most popular programming languages. In fact PYPL has Python as now the most popular language, and Tiobe recently awarded Python language of the year. So clearly Python has very strong appeal, hence the upgrade from 'good' to 'great' in the title of this post. An interesting perspective can be gained… Continue reading Python: The great, the bad and the ugly

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

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