Python dataclasses: A revolution

Python data classes are a new feature in Python 3.7, which is currently in Beta 4 and scheduled for final release in June 2018.  However, a simple pip install brings a backport to Python 3.6.  The name dataclass sounds like this feature is specifically for classes with data and no methods, but in reality, just… Continue reading Python dataclasses: A revolution

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

What is a DSL?

With Kotlin the term ‘Kotlin DSL’ usually refers to DSLs built in Kotlin using specific Kotlin features (as discussed in 'Kotlin DSLs'), this page, however, is about DSLs in general. Introduction: DSL: The general definition DSL vs 'a DSL' The Types of DSL: External DSL Internal Detached DSL Internal Augmentation DSL Detached vs Internal DSL:… Continue reading What is a DSL?

Language Extension Methodology (LEM/DSLEM) : A Software Development Concept.

With Kotlin, the term 'DSL' has taken on a specific meaning, and that more specific meaning of Kotlin DSLs other pages on this site and elsewhere.  In fact, Kotlin DSLs are not just Domain Specific Languages, but Domain Specific Extension Languages. The principle of a DSL, is that languages benefit from The DSLE methodology is… Continue reading Language Extension Methodology (LEM/DSLEM) : A Software Development Concept.