This has been a productive and eventful month for Aki development. Read on:
Watching this presentation by Cliff Click, I was struck by an assertion late in the disussion: "Fast" means different things to different people.
To a programmer/developer, "fast" is generally about speed of execution. To a manager, it means time to market or speed of development. Most people involved with the nitty-gritty of programming use the first definition, but lately more of them seem equally conscious of the second.
Consider two programs. One takes a week to develop in C++ and has 1ms execution time. The other is written in an hour in Python and takes around four seconds to run. Which one is "faster"?
Building Aki made me think about how its progress recapitulates the history of computing generally.
When I first started programming in Python, I wrote no tests at all, but I had a couple of good reasons why. One, nothing I wrote was at first larger than a single file. Two, I wasn't in the habit and I didn't have good examples to follow.
One of the little missions I've set for myself over the coming month is to figure out how to implement pointers. I decided to do that first and get it out of the way, since so much else depends on it.
On glancing back through my code, I realized I hadn't made any plans ahead of time for how to deal with pointers. And then I said to myself: Knock it off, you can't think of everything at once.
This is the first of what I hope will be a regular series of reports about Aki's development and progress. Since this is the first one since the project's teardown and reboot (more on that in another post), it's going to be more tentative than usual.
It's a good question, isn't it? Why create a new language, when there's so many of them already floating around?
I struggled with this one for a while when I started dinking around with Aki. Maybe, I told myself, it makes more sense to contribute to the ecosystem of another, well-established language instead of trying to come up with one all on my lonesome.