About The disc Language

This page is for design information about disc lang, and contains little information that a beginning programmer would find helpful. If you want to find out more about the design choices of the language, or if you want to build your own language at some point, this page may be interesting to you. After all, we are all beginners at something!

Inspiration for disc Lang Look and Feel

In the discussion on the home page, I discussed where I originally got the idea for creating disc lang in the first place. However, I took inspiration from languages which already exist to create the overall hand-feel, so to speak. In alphabetical order, I drew inspiration from:

Some of these languages are expressed more predominantly in the visual aspects of programs written in disc lang. Others provided insight into how I might steer into, or away from, a certain practice, pattern, or internal behavior.

The goal of the final design was to blend learning, and a natural flow of the language. A novice programmer would, ideally, understand how the parts of the language fit together, so long as they speak English. (More on this later.) An experienced programmer would, ideally, see the natural start and end of concepts within the language.

Programming should be fun! I borrowed against the idea, in Ruby, that a programming language would provide a fun while programming with it. Hopefully disc lang delivered on that promise. I spent many hours writing programs in order to find places where behaviors felt odd, out of place, or simply misnamed. My hope is this paid off.

Language Behaviors

The behavior of disc lang should be predictable, before all else. The behavioral goal of disc lang was to create a smooth, normalized behavioral experience with as few warts as I could manage. No language is perfect, and this one is no different. Nevertheless, it should be reasonable to explore any programming concept in the small with disc lang.

Choices of programming guidance were made. Since disc lang is intended to be an accessible first programming language, there were affordances built into the language to help people discover the kinds of mistakes which can easily lead to very long debugging sessions. This list is a set of certain key ideas.