Performance as a 2️⃣nd-class citizen


April 4, 2024

The tagline for calculang “a language for calculations” can attract high expectations.

I’ve become acustomed to reset those by attaching “naive” to the execution model. Self-deprecating yes, but strictly this is a current- and problem-dependent adjective.

So I’ve leaned in anyways and hopefully given some hint here and there that it can be helpful for some things - adjectives aside.

And that’s besides theoretical/structural details that I think are much more important (beginning with: separation of concerns, structure).

simplify “dramatically”

My first advice to anyone wishing to model with calculang now is normally to simplify dramatically.

Sometimes this feels like an old modelling artform where it’s useful to draw inspiration from decades-old techniques.

Besides to leap into maths of a generation ago or more, “simplify dramatically” isn’t the most terrible direction where the goal is in education or to be informative, fun or artistic.

But I’m under no illusion: intense boundaries is not a feature.

“important things”

Here are the aims or “important things” I include in the calculang frontpage. To be:

  • shareable, communicable 💬 💌
  • transparent, verifiable 🕵️‍♀️
  • understandable, concise 📖
  • flexible, reusable ♻️

Performance is not on the list. This isn’t a bug. But it doesn’t mean I won’t accept PRs that improve the execution model.

It just means performance shouldn’t come at the expense of the “important things”.

calculang is declarative

calculang is declarative: calculations are described by formulas - not by step-by-step programming instructions. This creates a freedom about the execution model, so that it’s a particularly interesting space to experiment. But that comes with challenges to maintain deliberate, meaningful and flexible expression in formulas.

Here’s another declarative language: Structured Query Language

SQL is 50 years old, still going strong, and on-going research to produce the step-by-step may be more interesting than ever.

Throughout these 50 years, the language remained a relative constant while the things around it could freely move.

Permitted, research pushed and continues to do so.

leaning in continues

For now. And continues along threads of portability and interoperability.