Live data from Hacker News

Programs are a prison: Rethinking the building blocks of computing interfaces

djrobstep.com

91–100 of 195 posts

Re: Programs are a prison: Rethinking the building blocks of computing interfaces

#91

A lot of replies are missing the point. It's not "apps integrate better with each other". It is "there are no apps". So what would Adobe sell, if not the "Photoshop app"? It would sell the Photoshop "menu of filters", the "selector toolbox", the "color histogram view" and such. But the workspace where you see the image and apply the selectors or filters would be outside Photoshop itself. It would be a standard part o…

It would likely mean losing lots of integration and special features though. If it's outside of the app how would you have a modal UI which would change what's in the right click menu of the canvas ? You would also have to wait for your OS to implement 10-bit support for it - I'm pretty sure that e.g. Krita had 10-bit canvas before MS Paint :)

Also enjoy teaching students or even learning to do anything. With big software like Photoshop (or musical equivalents), you can take the book that comes with it and become fairly proficient at pretty much everything that the app allows. How would that work if there is no individual software ? What screenshot do you show on the docs ? How do you make YouTube videos when most people may have a different setup than yours ?

Re: Programs are a prison: Rethinking the building blocks of computing interfaces

#92
As I recall reading that TempleOS had this neat feature that every function loaded by the OS was available to all other programs. That sounds so powerful.

This is one of the wonderful features of Powershell. You have the whole .net ecosystem there you can call into.

Re: Programs are a prison: Rethinking the building blocks of computing interfaces

#93
I blame C++. Not just that it lacks any runtime type information by default, hindering any attempts to interface with compiled code. Heck, even interfacing with C++ source is hard. It also comes with the mindset that this is somehow an advantage and with derision against other "scripting" languages.

For example C is better in this regard, it easier to call library functions without access to source code. And it's equally as fast.

Re: Programs are a prison: Rethinking the building blocks of computing interfaces

#94

OOPs was suppose to help with the issue of programming lock in but for the most part it has not advanced to the point where you can interchange program pieces. I think 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…

> but for the most part it has not advanced to the point where you can interchange program piece

Hasn't it ? I have no trouble e.g. replacing a hash map or container by another implementation in C++. We live in an era where we have libraries for everything and it takes seconds (okay, sometimes minutes) to introduce them in a codebase and swap them. What more do you want ?

Re: Programs are a prison: Rethinking the building blocks of computing interfaces

#95

A lot of replies are missing the point. It's not "apps integrate better with each other". It is "there are no apps". So what would Adobe sell, if not the "Photoshop app"? It would sell the Photoshop "menu of filters", the "selector toolbox", the "color histogram view" and such. But the workspace where you see the image and apply the selectors or filters would be outside Photoshop itself. It would be a standard part o…

Exactly - for example, resizing photos.

Imagine a resizer object, that could be used:

- to implement resizing in various interfaces for image objects

- in a script (think unix pipes but operating over real image objects, not streams of bytes)

- wired up to various events and data sources for automation (when my aunt emails me a picture, resize it and put it in this folder)

The resizer wouldn't be hidden behind some app's implementation - it would be a first class object you can inspect and interact with ("ok, looks like this resizer objects takes an image object as an inputs and outputs another image. i'll drag an image onto it right now to try it out")

Re: Programs are a prison: Rethinking the building blocks of computing interfaces

#96
post #24
post #5

Sounds like unix to me.

Indeed, it sounds like the author is looking for the UNIX of the 21st century: * Widely reusable meaning: everything behaves like a file. The types of files we can have are defined by specs: an Image can be described as a PNG file, which every process can understand. A table can be a CSV or a SQLite file. A Conversation can be a maildir folder. We might not have the best descriptions of "things" but we do have someth…

The "everything is a file" in UNIX is bit of a lie. And plan 9 went on fixing that. UNIX has many files that aren't actually files but special devices that you access with non-standard interface (mainly ioctl). In plan 9 everything truly is a file and all communication happens with read/write system calls.

Re: Programs are a prison: Rethinking the building blocks of computing interfaces

#97
post #63

OpenDoc was a mid-‘90s Apple software framework that basically did this. It was also adopted by IBM on OS/2 as part of the technology exchange that also resulted in Apple and Motorola using IBM’s POWER CPU architecture. Steve 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.

I don’t think he killed it “because it wasn’t NeXT software”.

I think he killed it because the market didn’t support it (MS Office showed that an ‘everything but the kitchen sink” solution could conquer the market, leaving only breadcrumbs for smaller parties) and to focus the company.

Re: Programs are a prison: Rethinking the building blocks of computing interfaces

#98
I believe the only way we can push the state of the art at this point is to replace Linux entirely with some new experimental kernels. Linus will never accept a radical departure from his own design.

We definitely also need new ways to talk about these ideas (or I/we just need to learn them!). Object orientation is a philistine way to group concepts that have matrices of complexity. For example, there are distinctly different functions of code that most languages I've seen don't provide a syntactic way to express. How can I explain to someone that this part of the code is one part of an ordered set of operations tied to a variety of states influenced by a variety of functions, while some other code is idempotent and stateless? And can't our compilers take advantage of this to connect the pieces for the developer?

Re: Programs are a prison: Rethinking the building blocks of computing interfaces

#99

> We must build much higher level shared meaning - Images, Tables, Conversations and beyond, building a common implementation and understanding used by everybody. Thinking you can build something like this is extremely naive. If you have been working in any company over a certain size. You will know that even inside a single company, people often don't use the exact same vocabulary. For example, what constitutes a pr…

But we already do this, with a whole variety of different objects - strings, sockets, integers, floats, URLs for instance.

Those elements you list all have the same single domain: computing. And we spent decades trying to agree on the definition of them in the computing community. On top of that all of them are simple and flat value-based types. Meaning they don't really have any relationship to any other elements.

Re: Programs are a prison: Rethinking the building blocks of computing interfaces

#100

A lot of replies are missing the point. It's not "apps integrate better with each other". It is "there are no apps". So what would Adobe sell, if not the "Photoshop app"? It would sell the Photoshop "menu of filters", the "selector toolbox", the "color histogram view" and such. But the workspace where you see the image and apply the selectors or filters would be outside Photoshop itself. It would be a standard part o…

You mean like everything is a file and you could build pipelines of simple commands to modify your data? That’s genius!
Post reply on HN