Progress in technology happens incrementally; it's hard to imagine inventing the cellphone without inventing landline telephones first. However, adoption need not respect the incremental nature of innovation. Advanced technology is often easier to adopt because it requires less infrastructure.

The classic example of this is the astonishing adoption of mobile in Africa especially relative to landline:

mobile vs fixed in africa

Sometime last year we discovered that some users use -- an online REPL and development platform -- as their primary programming tool. This seems surprising at first: other than for learning, why would anyone use a more limited tool over a more mature and flexible one?

It turns out this was the wrong question to ask. A better one would be: "if someone had already learned to code on an online REPL and it serves their needs then why would they want to invest in a local setup?". Because they'd started with, they need a compelling reason to install an IDE locally and possibly have to invest in buying a more expensive device (say from a Chromebook to a Mac).

In fact, this is the exact question our users are asking: why do I have to switch?

replit as primary coding

This way of formulating questions better explains the leapfrogging phenomenon in general: "why do I have to invest in a PC if my tablet/mobile handles all my computing needs?," "why do I need a credit-card if I can just use my mobile payment wallet?" etc.

In our experience, even the people that make the switch are often dissatisfied with the result -- wishing VSCode worked just like

vscode user not happy

With programmers growing up today being used to instant, interactive, globally accessible programming tools like, Jupyter Notebooks, serverless (pay-as-you-go) compute, and others, it doesn't seem so outlandish to imagine a post-IDE world.

_This blog is built and hosted with