Alexander Kuklev

Kotlin provides the most advanced tools for creating mobile apps and games, an excellent reactive declarative UI framework called Noria, as well as all the tools needed to create most complex desktop applications, perfected during the development of Fleet. It is precisely the experience working on educational apps, developing and Fleet and contemplating their architecture that motivated me to devise a series of possible additional improvement directions for Kotlin.

Structured programming pioneered by ALGOL and structured concurrency used in Kotlin illustrate one of the pillars of great programming language design: endorse correct-by-construction software design, foster clarity and predictability, aid reasoning.

The first two proposals can be seen as an introduction of far-reaching contracts that both foster correctness by construction and set the stage for statically verifiable contracts (see also Usability Barriers for Liquid Types by J. Aldrich et al.):

Advanced declarative features and type-safe domain-specific languages further expand correct-by-construction design:

Type-driven programming facilitates correct-by-construction design in some of the most complex areas:

Lastly, we propose semantic and syntactic extensions to reach into areas where Python and Lean currently dominate: