| I really love creating technology. Whether it is a game, a program, or something completely new, creating things is something I genuinely enjoy. At some point, I began thinking that I wanted to create one programming language that could do everything. It was something I had wanted to make for a long time. I wanted it to be safe, flexible, simple, and fast. I did not want to keep changing languages whenever I moved to a different part of a system. I did not want to constantly switch my way of thinking between different languages, syntax, and models. I wanted to be able to build everything within one language. For the benchmarks, I intentionally chose not to compare X with other languages. I want X to be X, and I want the results to represent only what X actually produced. I do not want the benchmarks to be used for boasting that X is better than another language, or for speaking negatively about other languages. I want X to exist as its own language without competing with anyone. Readers can decide for themselves whether they want to compare the results. For the names and syntax, my main goal was to make them as easy as possible. Even if a beginner knows almost nothing about programming, I want them to feel that the language is understandable, and to be able to guess what something means quickly. I think that creating too many different syntax forms for closely related ideas forces people to remember too much. Reducing a group of related operations into one consistent form can reduce how much the user has to memorize. More generally, I try not to create a new syntax form for every small variation. I think humans remember patterns more naturally than they remember many separate words and rules about exactly when each one must be used. A familiar pattern can continue to feel natural and simple even when the behavior behind it is still detailed and powerful. The simplest summary of my design process is that I kept asking what people actually need, and thinking about the problems I experienced when I first started learning programming. |