Earlier quoted context omitted.
> we need to go back to the idea that software can be like building a building where there are basic building blocks that can be purchased from many vendors and let each vendor decide how to improve the blocks and let the architects and engineers decide what blocks to use Isn't that just libraries and APIs? There's friction when interfaces aren't standardized, but it's certainly a good deal of the way there.
Yes, very true, they are a big step forward but standardization is the real key to innovation. It lets society focus its limited resources as oppose to going all over the place looking for a way forward.
Programs are a prison: Rethinking the building blocks of computing interfaces
61–70 of 195 posts
Re: Programs are a prison: Rethinking the building blocks of computing interfaces
#62The problem this blog post describes, I've been working on for a few years - it's really not a hard problem per se, it's just a lot of meticulous work. I think that's in general the case - most problems in life are problems of you know what you ought to do, but is it what you want to do? Do you want to spend 5 years to try and solve a problem, with no promise of financial, social or personal reward? Do you want to sa…
Re: Programs are a prison: Rethinking the building blocks of computing interfaces
#63Steve Jobs killed OpenDoc when he returned to Apple in 1997 because it wasn’t NeXT software. The IBM side of the project had already died at that point as Windows 95 trounced OS/2.
Re: Programs are a prison: Rethinking the building blocks of computing interfaces
#64Codebases are, in my mind at least, a virtual space. I believe that one day programs will look like factory floors or cities. They will produce and consume physical analogues for values and types, which you can pick up and examine. Want to debug a function? Strap on your VR headset, teleport into its physically reified room and watch the execution. Tinker with the pipeline in real time. I’ve been dreaming about this…
I mean, pay Factorio and you can see it.
Re: Programs are a prison: Rethinking the building blocks of computing interfaces
#65Codebases are, in my mind at least, a virtual space. I believe that one day programs will look like factory floors or cities. They will produce and consume physical analogues for values and types, which you can pick up and examine. Want to debug a function? Strap on your VR headset, teleport into its physically reified room and watch the execution. Tinker with the pipeline in real time. I’ve been dreaming about this…
In what way is a debugger not already this? Are you asking for better visualizations?
Re: Programs are a prison: Rethinking the building blocks of computing interfaces
#66Should you really be able to do anything you like with your bank account or DMV record? And do you really want the people you interact with to download all the photos you share?
Single-user systems are much easier to deal with, but they're just sandboxes that don't do every much.
Re: Programs are a prison: Rethinking the building blocks of computing interfaces
#67>Inherent, ubiquitous programmability: Currently, "doing programming" is a segregated activity from mainstream computing - separate software, command lines, specialist knowledge, clunky text-driven interfaces. This must end. Real expressiveness demands that every entity in the interface is inherently programmable - a table of data shouldn't just be a rendered picture of a table of data - it should be a table. Program…
> Almost every attempt at such an environment has failed for a reason. Basic and spreadsheets are notable exceptions. However, they don’t scale to complex programs.
Re: Programs are a prison: Rethinking the building blocks of computing interfaces
#68Earlier quoted context omitted.
Author here, yes this is a big problem (the biggest?), as the incentives are all wrong. As I noted in the post: "Often ... apps will have features to integrate with other apps and the wider operating system - but not so much that they become invisible. Instagram still wants you to see its logo, consume its specific content and stay within its ecosystem. Once again, the implementation and architecture are driven by ec…
Obviously economic incentives have an impact on what problems get worked on, but economic incentives can’t reduce the complexity of problems. I think what we have here is a problem of irreducible complexity. The reason that abstractions like the “Image” or “Table” you described one your article are few and far between is because it’s really hard to implement these objects in a way that scales to fit a broad enough se…
Re: Programs are a prison: Rethinking the building blocks of computing interfaces
#69Earlier quoted context omitted.
> the death of things like RSS feeds This is really sad[1]. RSS feeds are amazing. Thankfully they are not completely gone! [1] Actually, the whole state of the Internet is sad.
Just curious, what (viable) state of the internet fits your definition of “happy”, or at least “not sad”?
Re: Programs are a prison: Rethinking the building blocks of computing interfaces
#70>Inherent, ubiquitous programmability: Currently, "doing programming" is a segregated activity from mainstream computing - separate software, command lines, specialist knowledge, clunky text-driven interfaces. This must end. Real expressiveness demands that every entity in the interface is inherently programmable - a table of data shouldn't just be a rendered picture of a table of data - it should be a table. Program…
> The problem with programming is not the syntax and other particularities, but inherent complexity of explaining the task to a computer. Not really. A great deal of the the complexity is accidental, not inherent. Take the example from the post of adding up some numbers in a table. The inherent complexity is very low, the complexity comes from all the stuff not inherent to the problem itself.
Commoditized programming faces the same problem: many problems seem easy at first, but when you are trying to solve them with your shiny low-entry-barrier interface, you are hitting a fundamental ceiling you never knew existed. There's never been a shortage of unsuspecting newbies trying to parse HTML with regular expressions, as an example.
There were plenty of attempts to make end users program things. LISP machines and Genera (and Emacs, which is IMO the closest existing thing to the "ubiquitous programmability" you propose). BASIC, which was the main user interface for many early personal/home computers. Visual programming environments. Spreadsheets. Some of them survived and are very useful for simple cases, like programming materials visually in Blender, or automating stuff in IFTTT, but all of them suffer from the same issue: [non-AI] computers are too dumb and expect more or less exact instructions. That leaves the complexity on users' shoulders. Once you go Turing complete (and often even without that), syntax or entry barriers don't matter much - you either train for years to be able to formulate the human-generated problem, encode it for a computer, and change it as the need arises, or you hit a wall with a low entry barrier tool.
Programming is easy to learn, sure, there's no reason it should be hard. But it's fundamentally hard to master. And it's not about syntax or high friction interfaces (which can often be more productive for a trained person solving a hard problem, actually).