Oct 28, 2018 · 919 words · 5 min(s)
· updates ·
I know it is a bit early but October has felt like a long month. That is kind of good but progress on projects was not great, thankfully these were mostly external factor rather than internal lack of motivation.
Work is fairly intense. We are bringing a fairly long project to an end so some longer hours but mainly busy days with frequent context switching, all resulting in less of an urge to code in the evenings. The pressure should be easing over the coming few weeks, I should add I am not complaining about it just a factual comment.
The second factor is I came down with a really heavy cold and pretty much just slept for a good few days. Lingering tiredness told me to take it easy. This is abating now and I am finally getting back to exercising and motivated about home projects.
Last month I was happily coding up a simple 2D gaming library built on top of SDL2. It was fun but interestingly but I found myself creating an api very similar to RayLib. To the point I started digging around the code to see how they were doing things.
Finding the code very easy to figure out/read, I started to have doubts on the benefits of developing my own little library. It doesn’t make sense to create a clone of RayLib when I could easily use RayLib and contribute if I find things missing. There isn’t much missing for my simple needs.
The RayLib code is cleanly written C. The api lets you get going very quickly and the community while fairly small is a good mix. Sure it has some limitations and won’t suit some tastes.
I have been prototyping a couple of games but nothing has stuck yet. One prototype was written in C and the other in C++.
The other project
The other project is a little language I am developing. It hasn’t received its fair share of attention this past month. I have a small parser written for a very minimal case.
At the beginning of the month I wrote a few thousand words on what I what I would want from a programming language. It is a bit jumbled so I won’t be publishing it and was really produced to clarify my thinking. The thinking is pretty close to the language Zig or perhaps some the the demos of Jai. Not surprising as I share many of their view points and am particularly inspired by the compile programming that has been demonstrated by the Jai team.
While I suspect I would be quite happy coding in Zig or when it is released Jai I am still motivated to create my own. It is partially out of interest/Learning and partially I want to target a slightly different subset of the market. It will still be a system level language but I want to focus on the efficient creation of programs that are between 1000- 10000 lines in length.
There is more to the plan but I don’t want to over share this stuff as if honest there is still at 95% chance it wont get developed enough to be useful! It is always painful to read blog full of plans that never come to fruition, particularly when they are mine.
So other than the illness life has been reasonable. I purchased a laptop. After deciding it didn’t need a discrete GFX card I settled on a mid range laptop. A Lenovo Yoga 530. The part I worry about most on a laptop is the keyboard so ordering on the web is not ideal. In the end I took a tour round PC World trying out keyboards and was surprised how many laptops where using AMD CPUS. Alas the battery life is not quite there for AMD so went for the Intel version.
The Yoga, like all small laptops, suffers from weird placement of Cursor Keys along with Delete and home keys. Perhaps more annoying is you have to hold the fn key to use the functions keys (F1-F12).
This was expected and I planned on use using Vim emulation on any editor I use. Suffering from the heavy cold I ploughed through pretty much every editor known to me testing out vim emulation and C++ support. Cutting a long and very boring story I have settled on CLion with the vim emulation plug in. I was hoping for something lighter weight on the laptop as the memory usage is astronomical compared with actual vim.
VS Code was a very close second but there were a couple of problems the details of which escape me at the moment. VS Code is rapidly improving and CLion is going to have to work hard to keep a head of it.
As I use CLion on my desktop I will probably move that over to use the vim emulation just for consistency.
Honestly how anyone can code on a laptop without using Vim like bindings is beyond me. It seems like a recipe for RSI.
Plans for November
I am 99% sure I want to work on the little language for the whole of November. An attempt at pushing it along closer to the more interesting topics. There is a fair amount of boiler plate code to write like type inference and checking that don’t take much thinking through. Well initial attempts don’t other than deciding roughly where on the spectrum of typing rigidity do you want to have.