A few days ago, I shared the first public release of Light, a programming language I've been designing and developing over the past nine months.
Rather than introducing the language again, I wanted to share one of the biggest lessons I learned while building it.
Before diving into that, here's a small example written in Light.
user
Purpose Add[a,b]
{
sum = a + b
out:sum
stop
}
x = 23
y = 34
out="'Add{x,y}'"
Before implementing the first working version of Light, I documented the core concepts, language rules, and the initial specification. At that stage, I believed the primary challenge would be transforming those ideas into a working implementation.
Development reinforced just how inherently iterative language design is.
As implementation progressed, practical experimentation exposed interactions that weren't immediately apparent during the initial design. Some features evolved, certain language rules were refined, and additional capabilities were introduced as the language matured. At the same time, performance, error reporting, and the implementation itself were continuously improved through repeated testing and refinement.
One observation became increasingly clear throughout the project:
The specification shapes the implementation, but the implementation also helps refine the specification.
Looking back, building a programming language has been as much about evaluating and refining design decisions as it has been about writing code. Every iteration strengthened the language, improved its consistency, and reinforced the foundation established by the current public release.
This release represents an important milestone in the development of Light. While there is still much to explore and refine, it establishes the foundation on which the language will continue to evolve.
Your feedback and insights are always appreciated.
If you're new to Light, you can read the introduction to the project here:
Introducing Light — A New Programming Language:
https://dev.to/aswinmrajeev/introducing-light-a-new-programming-language-ghd
To learn more about Light and explore its documentation, visit the official GitHub repository.
Official GitHub Repository:
https://github.com/aswinmrajeev/light
Top comments (0)