cubbi.com: thoughts on computer programming languages: [english] [русский]

Programming is one of the purest forms of creativity. It is akin to composing of music: you create your programs from nothingness, from random noise, your make your programs using just the powers of your own imagination, you strengthen them with your own logic, you give them the appearance to the measure of your own desire for elegance. This creation does not even exist in reality - you cannot pick it up and put on a shelf. The program exists in a virtual world made up by other programs - just like Plato's world of ideas. But unlike ideas, as unlike the abstractions of mathematics, programs don't live in *imagined* world. It may be virtual, but it exists, and the program, once created and ran, faces situations which are not part of its creation, the program faces life. However, do not treat any programs as separate living beings, as in some movies, they are really just special parts of their authors, images of portions of their minds cast into the intangible shape of bytes and commands. What your program does is always and forever determined by the amount of your logic, your intuition, your sense of beauty that you shared with it during the creation.


Of course I rarely feel so inspired as to make a truly magnificent program, my pet projects are in various degrees of trade-off between elegance, laziness, and lack of free time.

Check them out:

  • In the Fibonacci numbers project I implemented seven completely different algorithms to calculate the same problem in each of 19 (at the moment) programming languages and ran some entertaining benchmarks. Just because I like diverse languages.
  • The Hacker Test is an ancient survey of computer folklore which I commented with lots of spoilers.
  • In the Joycub project I threw together an interpreter for the programming language Joy. This was a self-imposed excersize in order to quickly remind myself how to write in C++. I was offered a software development position and felt that my C++ skills were rusty (looking back now I can tell they were non-existant). Check it out if you want to see what my code looks like, even if it was not written for hire and lacks some discipline. It was abandoned in 2006.
  • In the Asmix project I found it personally entertaining to write pure assembly language utilities for different unix-style operating systems on different platforms. The project was abandoned in 2001 when I changed jobs and lost access to all those diverse systems.
  • In the end of 1999 my friend from Sweden asked me to explain a few things about programming and I threw together these tiny commented pieces:
    • cubbi-cube, a rotating cube using SVGAlib,
    • cubbi-echod, a trivial TCP/IP daemon. If I wrote it in 2007, it would have been more like this.
    • cubbi-telnet, a trivial TCP/IP client. If I wrote it in 2007, it would have been more like this