A Language To Make Programming Magical Again

Written on September 6, 2021

Do you remember when you wrote your first program? I do: back in primary school my dad gave me a copy of ‘The Games Factory’: a GUI for building 2D games with raster graphics. I didn’t write a single line of code: it was just a matter of checking a bunch of options and arranging objects on a screens. But from day one I was hooked, and now years later I’ve made programming my career.

I’ve enjoyed my time working predominantly with Ruby, React, and Go, but I would be lying if I said that I still felt the magic that I felt back when I was a kid making games.

So I decided to spend some time working on my own programming language that would reignite my passion for coding (and maybe the passions of others as well), and after much hard work I can safely say I’ve achieved that goal.

Introducing the OK? language. OK? is a dynamically typed language with full concurrency support and a very opinionated compiler.

OK? has a single goal: to give you what you need to create software that feels magical to use, and magical to write. I stress the word need there because I’ve seen that languages that give developers whatever they want tend to devolve into inpenetrable messes of abstraction. OK? has a focus on minimalism that goes beyond other languages.

To give one brief example, OK? does away with if statements, instead making extensive use of switch statements, so instead of…

if x {
  z = z + 2;
} else {
  onFalse();
}

… we use a far more readable approach …

switch x {
  case true: z = z + 2;
  case false: onfalse();
}

Another quick example: OK? only has one comparison operator: the greater-than-or-equals operator (>=). So instead of writing a < b you would write !(a >= b).

Do these features sound a little crazy to you? It’s okay, that’s a typical response to seeing OK?’s syntax for the first time. Have a look at our testimonials to see some people who started off just as skeptical as you but soon had that ‘aha’ moment where everything clicked.

If you want to learn more, you can check out the language’s features in the readme, or you can play around with the language yourself in the playground.

If you want to learn a little more about the origins of the language, check out the making-of video.

Ah, and it would also be impolite not to introduce the language’s mascot: Quentyn Questionmark.

If you want to get to know Quentyn, run some programs on the playground and he’ll start talking to you.

Thanks for reading, till next time!



Shameless plug: I recently quit my job to co-found Zenbu, a web app that helps you manage your company's SaaS subscriptions. Your company is almost certainly wasting time and money on unused subscriptions and Zenbu can fix that. Check it out at zenbu.au