Modern Programming Languages
and Simplicity
Programming languages aren't as hard as you might think. Whenever I decided to learn a programming language, I consider it mastered when I can write a working compiler.
But why on Earth would you make another programming language?
Some people write their programming languages for themselves and personal use, others for enterprise use, and more commonly for other people. This pretty much crosses over with my strong belief in open-source. I am currently actively working on a free, open-source programming language called WineScript. WineScript pretty much compiles to JavaScript on the Node.JS environment, so nothing really that special. I guess it can be considered a scripting language, but it’s not meant for the web. Yet. However, I have previously created another programming language called Tea in Ruby; it contains a lexer, parser, and runtime environment just like most modern programming languages.
What programming language do I make it in?
Ruby is a great programming language for prototyping a language and getting to know what it will be like in the end. In my opinion, C++ can be too challenging, while C may just not have what you need. I don’t really like using other libraries or parser generators like PEG.js, even though I used RACC in Tea. Haskell is a really good one (or so it seems), but I haven’t had to time to learn Haskell. C# is great and all, but it’s not multi-platform. I love JavaScript (Node.js) because I can pretty much achieve anything I need in very little time, plus the documentation is absolutely fantastic!
What do I do when I’m done?
I don’t think you can ever truly be done. I greatly suggest hosting your project open-source on GitHub. All of my non-profit projects are open-source and hosting at GitHub, either under the MIT license or GNU GPL v3. You can always add more features to your language, or rewrite your language in your language! Think outside the box!
What license should I use?
Basically it depends on what you want. My two favourite are MIT and GNU GPL. In a nutshell, the MIT license pretty much allows for any modification as long as the credit and copyright are in place. GNU GPL v3 does the same, but the fork has to be in the same open-source state as the original project. However, GNU GPL v3 cannot be licensed, so that means that all forks of your fork will always be open-source and free. Oh I didn’t mention that. All of your software has to be free with GNU GPL.
What now?
Personally, I would start off with making an example syntax to see how my language is going to look, then I get right to coding! Remember, documentation is useful and important. Without docs, normal human beings can’t learn your language! Good luck!