Intro
23 Jan 20252 min read
Hello world!
My name is Tylar, although online I often go by “CunningTea”. I’m a full time software developer working on a compiled programming language in my free time, and welcome to my virtual café!
(Brief) About me
I’m 25 years old, and have been programming for nearly 12 years now – just over 4 of which have been professional.
Like many who started programming when they were younger, I saw a problem with the world and sought to fix it myself. In my case, the problem was that redstone (a power-like mechanic in the video game “Minecraft”) could not have adjacent lines of power without connecting to each other.
So, naturally, I tried to create something called “bluestone”, which would work exactly like redstone except it would not connect when they were adjacent to each other. After some research, it seemed like the source code of the game was very difficult to get your hands on, so modding was left as the answer to my desires – but it required a very primitive understanding of the Java programming language.
Fast forward through some Java and minecraft modding tutorials, and the sheer rush of ooey gooey brain chemicals when I finally managed to get some broken-textured, incorrectly-named item into the game was nothing short of divine.
I’ve been chasing that high ever since.
Of course, also like many programmers, I never ended up finishing that project, but that’s okay. I was hooked, and it eventually led me to a thus-far successful career and a passion project I wouldn’t trade for anything else.
(Also brief) About the language
“Klack” is a compiled programming language written completely, 100%, no dependencies, from scratch, in C. Everything from the lexer to the code generation have been (very painstakingly) handwritten, to maintain purity of the codebase… and also because it seemed like a good learning experience and I heard LLVM could be painfully slow.
I’ve been working on it almost whenever I can in my free time over the last 3 years, and have at least 2 years more work planned for it going forward before it’s anywhere near ready for release, but it’s nearing a level of functionality now where it can be used in earnest, which seems like as good a time as any to announce it (very informally) to the world.
Although I’m still on the fence about bootstrapping the language, the features necessary for bootstrapping are the initial target for a minimum viable product, which is roughly 3-4 “major” feature updates away as of the time of this writing – still a lot of work to go, but the end (or possibly the re-beginning) is in sight.
This language is my joy, but not yet pride, and will end up being the topic of the majority of content you end up finding here on this site, however I will probably also occasionally talk about other programming-related things. I’ll discuss the language itself in more detail in the 1st, not 0th, language development blog.
Site intentions
My main goal with this site is to sorta walk through what I’ve done so far with the language in a semi-tutorial-like fashion – for the sake of posterity, remembering how in the world I ended up with the “solutions” I have now, and more importantly, fun!
I’m sure there will also end up being blogs about random thoughts, ramblings, rants or ideas I come up with or feel like recording over the course of my development journey as well. And, if I somehow end up catching up with the development of the language itself (which is not unreasonable, it’s a lot of work compared to writing one of these posts), then this should also serve as a place to provide updates for anyone interested in keeping up with its development.
So sit back, grab yourself some tea (or coffee, we don’t judge here), and enjoy!