Distributed apps in JavaScript

Distributed apps in JavaScript

This post is different from my usual topic of Microvium. I’ve been recently frustrated with the way that distributed applications are written and I’ve been brainstorming ways it could be improved. In my last post on the topic, I suggested that maybe a new programming language would be useful for solving the problem, but I …

Read More Read More

Quality vs Quantity

Quality vs Quantity

It’s an age-old debate, but as I get older, my perspective is changing. I feel increasingly frustrated by tools that don’t work smoothly; tools that weren’t thought out very well. And I ask myself, wouldn’t my life be better without these? TL;DR The economic incentive for product development is not always aligned with what makes …

Read More Read More

A Distributed Language

A Distributed Language

TL;DR I think it would be great to have a language where single instance of a program can run non-stop for 10 years across a dynamic, heterogeneous mix of hardware, where the program code can perform its own allocation and management of infrastructure resources such as databases, VMs, and public IP addresses, as well as …

Read More Read More

New Garbage Collector!

New Garbage Collector!

It’s only been a few weeks since the Alpha release of Microvium and I’ve already almost rewritten the engine! There are two major changes I wanted to make to improve performance: I’ve moved to a great new garbage collection algorithm which is much faster and has a smaller memory footprint in both RAM and codespace. …

Read More Read More

Microvium Boost
It's Magic

Microvium Boost
It's Magic

TL;DR: This Microvium plugin (in development) optimizes Microvium bytecode by statically determining which variables and properties are accessible and how they might be accessed (read vs write), to decide whether to safely store them in ROM or remove them completely from the bytecode. With the recent alpha release of Microvium, I’ve since turned my attention …

Read More Read More

Microvium Alpha Release!

Microvium Alpha Release!

Microvium version 0.0.9 is published on npm, marking the first alpha release of Microvium! ? I’m pleased with how quickly this has come together in the 4 months since I started the project back in February. Be ready for good things still to come! Subscribe to my blog if you want to be notified of …

Read More Read More

Microvium Garbage Collector

Microvium Garbage Collector

The Microvium garbage collector is here! The garbage collector handles the automatic freeing of unused heap memory in the VM. Microvium makes some interesting and perhaps unique tradeoffs with garbage collection which I’ll focus on in this post. I’ll divide this post into two parts to cater for different audiences: I’ll start with a summary …

Read More Read More

Microvium Status Update
June 2020

Microvium Status Update
June 2020

I’ve made a lot of progress on Microvium over the past month and will share some of the details here for those who are interested. I think it’s really close to being ready for an alpha release, with the garbage collector being the only remaining piece of work before it can start being used. Summary …

Read More Read More

Snapshotting vs Bundling

Snapshotting vs Bundling

TL;DRBunding and snapshotting are two different ways of packing a program for deployment. This post is a somewhat-biased overview of why snapshotting is clearly superior in many respects. I recently wrote up an explanation of Microvium snapshotting, along with this hopefully-helpful animated diagram: In short: the diagram depicts a running Microvium (JavaScript) application that is …

Read More Read More