In Copper, to end the program, you simply have to enter the word “exit”. In a way, that’s exactly what I’m doing now. I intend to write a few more articles about using Copper, especially some of the cool tricks you can do with it, but as far as I’m concerned, the language is essentially done and the virtual machine is in a stable state. The new documentation is now available on Github.
I would have liked to have done a number of other things, including:
- Simplifying the engine error printing (in order to save time for the guy who decides to write the error messages in his/her own language).
- Adding a UTF-8 variable name filter as well as support for treating Unicode invisible characters as blank space.
- Wrapping std::string or at least adding better Unicode support.
- Adding a byte object and bit-setting foreign functions.
- Wrapping GNU MP and MPFR to support huge numbers.
- Creating better debugging.
However, it’s time for other things.
Creating Copper has been tons of fun, and I’ll admit my emotions are bitter sweet here. On the one hand, it’s sad that certain features probably won’t be added any time soon, if ever. Moreover, it’s sad that “my life’s work” (in computer science) has come to an end.
On the other hand, I can finally say “It’s done.” It’s a sense of accomplishment that, after having toyed with creating a programming language for almost a decade, I’ve finally written exactly what I wanted. Now I can begin to use it for the projects I intended, especially the project that I set out to use it for.
For a short time, I thought I might not be able to use Copper due to its “slowness”, but I’ve managed to speed it up and I’ve figured out ways to make it work for my purposes. Using it now will be the easy part, and the details on that project may find their way onto this blog now and then.
From now on, expect primarily bug fixes and usage tips.
Thanks for reading, everyone!