back

by musha68k·2y ago·view on hn ↗
Historically the distinction wasn't as stark as it is today. Hypertext as envisioned by Ted Nelson and furthered by Tim Berners-Lee's contributions through HTTP/HTML was much more read-write from the get-go.

But you can even go further back in time to Douglas Engelbart's "Mother of All Demos" and Smalltalk during the 70s to see that these foundational technologies tried to inspire and emphasize user empowerment and with it end-user programming.

Things evolved very differently though as systems have become ever more centralized and complex necessitating ease of use and security. It would need systemic shifts on many levels to return to the ideas of the visionaries in our field, the biggest hurdle probably being the "privatization" of the internet itself. Everything is very commercial by design; that was the plan since the early 80s. Elon Musk's Starlink and its use as part of warfare is that DARPA idea fully realized. It only took ~40 years.

We might need to reclaim "territory" from the big platforms and run more communication lines ourselves or at least pull them out from commercial interests. It all flows down to the lower levels; meaning system software and open hardware platforms like RISC-V.

Maybe it's about time for some healthy "devolution" now that we seem to have implemented proof that all of this made sense at and until some point?

1 comments
End user programming is simply not compatible with the commercial nature of computing, and therefore -- despite very interesting early examples -- it never took off. Now the public have been inculcated into a concept of "what computing is" that is almost entirely on the consumption side.

Not sure how we get back from that.

There are some things that can be done, although it will only help in the cases where such a thing is actually used, which is not always.

The computers can be designed that you can write programs easily (instead of hiding them behind several layers of menus), and design the formats that can be queried and affected by such programs. Services can be made which support such things. The user interface system can be made to easily interact with other programs so that e.g. you can easily interact command-line interface with GUI (something that most existing systems are not very good at).

(You may know about Nushell (which allows command-line shell to be used with structured data; PowerShell does something similar). It is a reasonable idea, and some similar ideas can be used with interaction of data, although there are some problems with it, including that it is not what the operating system was designed to use. This is why I think to design a new operating system which allow to make it much better (in my opinion).)

Furthermore, it must be designed to work efficiently and to avoid unnecessarily requiring internet connections, and to avoid wasting so much disk space, energy, etc.

FOSS will also help, especially if the programs are not too difficult to modify.

A better way to work security than existing mechanisms would also be an improvement; so the user can easily define the security features and specify the source/destination of all I/O, which may also be proxies which are other programs (which might be written by the end user).

(I have some ideas about designing operating systems like many of the things above, although that will not affect many things that don't use it; however, it is a start, and some people may write interfaces with a few other services and programs to support such a thing.)

(Dishonest business practices should also be avoided, although that is really a separate issue, but that will help this one too.)