A Retrospective on Tangible Software: 2013-2023

The idea to write a research agenda as a retrospective in the past is stolen from here. This is an awesome technique to engage creative thinking. The intangible nature of software has seen long been recognized as an impediment to software development, making development an overly abstract and difficult task. This lack of tangibility poses problem … Continue reading A Retrospective on Tangible Software: 2013-2023

Ownership for Dynamic Languages

Edit: the idea presented in this post was worked out into a consistent language feature and accepted for publication. Ownership type systems have been designed for statically typed languages to confine and constraint aliasing, which in turn increases security and safety. Ownership type systems are conservative, and can only enforce properties that are known to … Continue reading Ownership for Dynamic Languages

Abstraction-Level vs. Meta-Level

As per wikipedia, a model is a pattern, plan, representation (especially in miniature), or description designed to show the main object or workings of an object, system, or concept. In the case of software engineering, models are used to represent specific aspects of the software system, such as static structures, communication paths, algorithms, etc. Models … Continue reading Abstraction-Level vs. Meta-Level