Live data from Hacker News

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

djrobstep.com

51–60 of 195 posts

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

#51

Earlier quoted context omitted.

https://en.wikipedia.org/wiki/Component_Object_Model which is an elaboration of https://en.wikipedia.org/wiki/Dynamic_Data_Exchange A common use of COM was scripting with Visual Basic in the 1990s, for instance, ask Excel what is in cell B7, or dynamically load a GUI component out of a DLL and script it into a Visual Basic application. This blends the boundaries between applications in that you might have a Word docu…

Thank you for the links! > A common use of COM was scripting with Visual Basic in the 1990s ... This sounds nifty!

It is used for a lot more.

Want to integrate Windows Explorer in your application? COM.

Custom property pages in Windows Explorer? COM.

Custom folder view ala zip folder? COM.

Want Windows Explorer to be able to extract metadata from your custom file format, or Windows Search to search it? COM.

Want to play or manipulate video using the installed codecs? COM.

Want users to be able to drag an attachment from Outlook and drop it into your custom application? COM.

Just some examples. COM is a bit clunky, but it's a great enabler on the desktop.

https://docs.microsoft.com/en-us/windows/win32/shell/intro

https://docs.microsoft.com/en-us/windows/win32/properties/pr...

https://docs.microsoft.com/en-us/windows/win32/directshow/di...

https://docs.microsoft.com/en-us/windows/win32/shell/dragdro...

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

#52

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…

> 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.

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

#54

This is a problem I have personally spent several years thinking about and working on. The trick IMO will be to build it incrementally from what we already have. For anyone interested, here's my take on it: https://membrane.io The TL;DR is that I've been building a orthogonally persistent, message-based, user centric, programmable (js/ts) graph

Looks pretty cool. Have you looked into Pathom (a Clojure library)? Its creator seems to share your vision of connecting APIs from different sources. Last 5 minutes of this video:

The Maximal Graph by Wilker Silva - https://www.youtube.com/watch?v=IS3i3DTUnAI

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

#55

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…

> 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.

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

#56
post #7

Codebases 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

#57

Oh yeah; we have/had this-- it is called HTML and none of us got the idea behind it (I certainly didn't); so, instead we re-created the prisons we were, and are, trying to escape. It also is really hard to profit from ONLY meaningful data thus the death of things like RSS feeds. Can't shovel advertisements, trackers, and spyware down someone's throat just sending a nicely formatted HTML table that the client decides…

> 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

#58
post #13

> We need computing environments ... without the concept of applications appearing at all. Platforms keep trying to enable this, but application vendors want to control the UX and branding, so they're not going to provide these generic reusable building blocks. Android, for example, lets apps make use of views from other apps and securely delegate a task (e.g. take a photo, pick a file, etc.) to the user's preferred…

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 set of use cases. The design of such objects involves making a set of tradeoffs where tradeoff space has a very high dimensionality and lots of shallow local optima.

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

#60
post #29

Earlier quoted context omitted.

Real world is always complex, ambigous and changing. So any simple model will in time be found inadequate, and complex models unusable. The problem of programming isn't so much the interface. Text has been used for decades and remains a robust communication platform among humans. The real problem is defining the problem to be solved, its scope and adaptability to a complex and changing world. The difficulty is the ga…

What's vague and hard to define about adding up some numbers in a table?

The question shows that you have a hard time to understand the complexity of it. Maybe the reason is that you are an experienced developer who deals with all the complexity quite naturally and automatically.

So why is this task complex?

Well, what happens if there are no numbers in the table to begin with? Is the sum of no numbers a zero or is it supposed to be some error?

And are all the numbers supposed to be natural numbers or can there be e.g. irrational and complex numbers be in there? If so, how much precision do we need when summing them up - and how important is performance?

Also, what if there are not only numbers but other things (dates, text, ...) by accident?

And in a real world scenario, what happens when numbers are added to the table during the calculation? Should they be considered or ignored - should the table be locked somehow?

The problem with these questions is not that they are necessarily hard to answer (often they are) but that people don't even know, that they need to be asked in the beginning.

Many developers are so used to it, they often don't understand that they are doing things that are difficult for normal people.

In the same way mathematicians find it easy to do basic algebra for some more difficult task, it's just part of there toolkit - whereas most people don't even understand this basic part from the beginning, let alone more complex problems.

Post reply on HN