Thursday, March 12, 2026

Xval Starts Over at Version 0.0.1

Timothy Quast
Start

Xval Starts Over at Version 0.0.1

"Make 100 videos and improve something every time." - Mr. Beast

Believe it or not, we are actually on our 9th rebuild of Xact -- Xval's calculation engine. According to Mr. Beast, we need to do at least 91 more rebuilds. But hopefully we will get it right before then.

To be fair, some of those 9 were really just 2-week-long experiments, while others were many-months-long complete rewrites. Ultimately, the only way to make good software is to write software. And sometimes rewrite it a lot.

What was wrong with the first 8?

A few major things were wrong with the prior builds.

Cloud-First

The "proper" thing for software companies to do nowadays is build a giant cloud-based SaaS in order to exact maximal recurring fees. It is the way of the world. And it was what I thought we should do. Then I realized it was incredibly stupid for us.

Certainly some services should be cloud-first. Not Xval.

Xval should start as something you install on your machine. If you want it in the cloud, we can certainly do that. Your organization can probably do that. And if your organization is not big enough to do that, you almost certainly don't need it. Xval is plenty fast enough to do every thing you need on your own laptop.

Ultimately, you control your machine. So Xval is becoming native-first.

"Feature Rich"

When we started building Xval, we put in every feature we could think of. Some were good. Most were bad. And maintaining bad features is hard.

"Bad" here doesn't necessarily mean that a feature doesn't work. More likely it means that the feature is simply useless. Or nearly useless. Maybe we thought it would be helpful. We had good intentions. But turns out -- we didn't need it.

Of course, we didn't realize which features were good and which were bad until we had users trying Xval. Then we learned very quickly what was important. Bad features confuse and frustrate users. Sorry for that.

With the rebuild, we only included the good features (as far as we know).

Failing for Unknown Reasons

The biggest feedback item we got from our first "power user" (actuarial student) was that we didn't give detailed errors. He would save a script with an error and, most of the time, get "Script did not compile.". He is probably traumatized by those words. Once again, I am truly sorry to him.

The rebuild uses a parsing technique called recursive descent. You don't need to know what that is. The upshot is that it is much easier for us to give you detailed error messages.

Now when I type in a bad xact script -- boom! A great error message telling me why.

Built in Python

The first 4 builds of xact were in Python. I am embarrassed by that fact. Python is a great high-level scripting language. Fantastic for analysis and data manipulation. Python has a wonderful ecosystem that makes powerful computational libraries available to a wide audience.

But it is a terrible systems language. The Python interpreter is notoriously slow. The language only goes fast is there is a C library available that does precisely the thing you need. If there was such a library for us, we would not build Xval.

So now we have rebuilt in a low-level language. And Xval goes fast.

What's next?

Xval has released Version 0.0.1. It is free. It will remain free until morale improves. Hopefully forever. You can download Xval at https://xval.io/install.