September 2021, I was done with school. It was time to work on a new idea.
What could it be? Yet another generic-ish project that I'd abandon after a couple weeks of development?
Nope, I wanted to set the bar high. And it occurred to me: what could be more exciting than building a programming language!
It was the summer of April 2022, when I first sat down to work on Kal.
Summer is my favorite season and every summer I try to learn or work on something to make it even more memorable.
The summer breeze and lazy afternoons are always a great incentive to give some crazy ideas a try.
Oh, and why did I name it "Kal"? I leave that up to you to find out (shouldn't be very difficult).
I had used C++ before and absolutely adored it.
But I never had the opportunity to use it in a real project.
So when I started thinking about Kal, C++ naturally sprang up in my mind.
On the very first day of development I was infuriated by the notorious Segmentation Fault.
I ragequit (well, more like rage-paused) my work and went for a long walk.
Once I got back, things became much clearer to me and I was able to fix it soon.
The initial plan for Kal wasn't what it is now. In many ways I was missing the "big picture".
And frankly, that got me into many architectural pitfalls. Initial development showed promise, because I could see "things working".
But 4 months later, I hit a dead end. The wall of technical debt was too wide to let pass. And I was left with only one solution: a major rewrite.
And mind you, Kal at that point was, and even today is written from ground up with no third party libraries.
After spending 4 months developing the critical components of this project, I did not have the heart to rewrite it.
So, I did nothing.
After a couple of months, I started thinking about newer and cleaner ways to rewrite the existing functionalities.
Since I couldn't decide, I started reimplementing the existing components parallely.
After few more months in, much to my surprise, I had most of the things in place.
And so began the development of Kal, again.
The next few years were not straightforward, but yeah, at least there were no rewrites.
There's a special rare fun in writing everything from scratch.
A sense of control and independence and overall a greater sense of learning & achievement.
Like a stone age man inventing the wheel.
It made me realize how complicated the intrinsics of those tiny things are that we take for granted everyday.
Kal is still in alpha stage. This is just version 0.1.0.
There are so many things to do, features to add, bugs to fix and countless nights to stay awake for.
And I truly hope you stick around to see Kal grow!
Shreyas Sable