Beta 1 Available! Rejoice!
As I mentioned on the forums, Beta-1 of WM 2.3 is now available if you haven’t heard! Visit the main website and follow the news links to get at it.
I’ve already started fixing a couple further bugs, and introducing a few new things for Beta-2, such as multithreaded support for Thermal Erosion.
I’ve been continually mentioning how 2.3 is mostly an internals change that should pave the way for easier and more profound changes down the line. I’m hoping to be able to give folks a taste of those changes sooner rather than later.
What I really want to talk about is the concept of Code Debt.
The curse of Code Debt
One experience I’ve had on the World Machine project is just how toxic the kind of “code debt” that 2.3 addresses is. For those who aren’t familiar with the concept, Code Debt is essentially much like financial debt.
When you need something done in a whole hurry, and you don’t have the resources available, you can choose to “take out a loan” by coding things in the fastest but not best engineered way. In short, a dirty hack.
However, you have to pay interest on that loan. And the interest rate is high : Every time you need to touch that system in the future, you have to interact with your crude code. Over time, the cost of having to deal with your dirty hack far outweighs the time savings you got in the first place.
All that Work, but still the Same?
To deal with the code debt, you have to continually refactor your code to improve its quality. WM 2.3 is primarily a release aimed at doing just this. Lots of internal systems are taken apart, re-plumbed, and put back together again. The depressing thing though, is when you’re done..
… you have exactly what you started with, from the outside. In the ideal case, nothing will have changed from the User’s perspective. If you get alot of your development drive out of creating cool new features, like I do, this can be a bit depressing.
The good news of the effort though, is that done well you can move forward from that spot at a far faster clip than would have been possible if the debt was not dealt with.
Anyways, just a kind of windy aside about what the primary goals of WM 2.3 were. I hope it provides some illumination for folks out there!