Thu, 18 Apr 2024 23:56:57 -0500The Next Thing

mr's Preposter.us Blog

I’ve lived through two major technological revolution in my lifetime that put the power of computing into the hands of people.  The first was the personal computer revolution, and the second was the World Wide Web.

Both times the magic of programming that seemed inaccessible to non-professionals became accessible, and the diversity of applications exploded.  During the first revolution we saw computers that were once only the domain of scientists and business fall into the laps of cooks, mechanics, small-business owners, artists, musicians and thousands of school children; none of which would have been called or considered themselves “programmers” writing the programs that they needed thanks to inexpensive hardware and the beautiful simplicity of the BASIC programming language.

However, an industry sprung-up around these computers and convinced everyone that they didn’t want to write their own programs, and in fact they were not qualified to write them and instead they should buy them from professionals.

Fast-forward ten years or so and all software comes from a handful of companies whose code is secret and only hire professional programmers.  Almost everyone owns a personal computer, but almost no one programs them.

Then came the web, and it was like 1976 again.  Non-professional were learning to write HTML and publishing their own web pages.  As the web evolved into an application platform (along with the easy-to-learn programming language JavaScript), writing your own software became the domain of non-professionals again and for a few years the variety of new applications for computers flourished again.

But it didn’t take long for industry to capture this revolution as well, and by the mid-aughts they had everyone convinced that only “developers” could write software for the web.  Fast-forward another ten years and most of the web runs on one of three “mainframes” (known as “the cloud”) owned by three companies, effectively thrusting computers back to the 1960’s and erasing the personal computer almost entirely.

There’s a lot of people who say they are satisfied with the state of things.  They are professionals of one sort or another, or non-professionals who have learned how to use the frameworks, development tools, etc. of the “full stack developer” or “devops engineer” or whatever.  If you have an idea or need a new application for a computer you are told to hire these people or become a developer yourself.  Often becoming a developer involves assuming a new “identity”, becoming a “Pythonista” or a “Rustsacean” or a “Gopher”; as if being able to make your computer do what you want or need it to do requires joining a fraternity or joining some secret brotherhood.

The next thing is not for people like that.  If these tools serve you well that’s great, I’m not going to try to “convert” you by extolling the virtues of what I’m working on next, in fact courting the attention of those who believe that contemporary web development is ideal can only reduce the value of what I’m working on for the people I want to serve: the rest of humanity.

So describing what this is might be easiest to do by describing what it is not.  It is not designed for “professional developers”, not really designed for “programmers” at all.  It might be called programming, but it could just as easily be called writing or authoring or designing.  My goal is to bring the power and the joy of the original personal
Computer, the original World Wide Web, to everyone who is not currently served by the tools we have today to build software.  I want this because the world is in desperate need for new applications made my people other than the people who make-up the majority of professional developers.  I want to see new things, fresh ideas, diverse perspectives and I want to use my skills to build good tools that make this possible.

It starts with JSFS, a simple and robust file system designed for the web.  The next step is teaching JSFS to run programs as well as store data, and in the last week or so I’ve made significant progress toward that goal.  On this foundation will come tools that run natively on this platform which are designed to make creating software fun and accessible to anyone motivated to create a new application.  Applications created using these tools will inherit the technical quality of the underlying platform.  This won’t require becoming a “developer” or even a “programmer”, just someone with an idea and an interest to bring it to life.

I’m working to find a way to dedicate my time to the pursuit of these goals.  I will continue to work towards them “in the gaps”, but if I can find a way to dedicate more time to them the work could progress much faster.  I’ll be working with other like-minded individuals as well, but it will be an uphill battle as I work in an industry that (so far) has shown little interest in sharing this power with everyone.