Python Class vs Instance Variables

Python class variables offer a key tool for building libraries with DSL type syntax, as well as data shared between all instances of the class. This page explains how Python class variables work and gives some examples of usage. Class & Instance Variables Instances vs the class object Instance Variables Class Variables Using Class and… Continue reading Python Class vs Instance Variables

Python Annotations

Not to be confused with the use of the @ symbol, which is an annotation in Kotlin but a decorator in python. Python syntax allows for two flavours of annotations: variable annotations: Introduced in Python 3.6 (2016) function annotations: Introduced in Python 3.0 (2008) Introduction. Both flavours of annotation work in the same manner. They… Continue reading Python Annotations

DSL Methodology: A key software concept.

With Kotlin the term 'DSL' has taken on a specific meaning, and that more specific meaning is explored in another page on Kotlin DSLs like kotlinx.html and how to write them.  DSL methodology is a key reason that the capabilities of a language to write domain specific extensions to the language becomes important. This page… Continue reading DSL Methodology: A key software concept.

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

Machine Code, Global memory, the Stack and the Heap

Today we have progressed so far that we have computers with multiple 'cores' (in fact complete processors) on a single chip. But one way to understand the fundamentals of computers is to analyse far simpler computers from the past.  This section will review those very fundamental concepts in terms of each of the following: a… Continue reading Machine Code, Global memory, the Stack and the Heap

Machine Code and Global Memory

updated 1 Jan 2020 To understand how memory works, it can be useful to consider how the CPU itself works, and what follows from that is how memory works.  Languages are built on these underlying principles and automate using the different types of memory. This page uses a 'hypothetical programmable calculator' (Magic Calculator), to illustrate… Continue reading Machine Code and Global Memory

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!