589
AI Is Becoming a Band-Aid over Bad, Broken Tech Industry Design Choices
(www.scientificamerican.com)
This is a most excellent place for technology news and articles.
I feel like most things degrade as a matter of scope-creep, while trying to implement features that are actually complex and non-trivial.
Take the unholy mess of modern Microsoft Office. MS Office might have been a good tool for a single purpose back in the 80s, but the addition of multiple generation/layers of features that have been halfway abandoned but kept for compatibilitys sake, make any more complex task non-trivial. There are multiple approaches for implementing templating MS Word, none of which are really good. MS Macros have been great... if you are trying to get arbitrary code execution on Windows machines. And collaboretive editing features include halfway abandoned sharing features and a half-baked Web Version of Office 365.
As a matter of fact I don't believe this is purely out of corporate greed, but rather a lack of scope limitation during design. People don't ask if they should, if they simply can do. We shouldn't have macros inside of Text Documents, there should be another tool for that. We shouldn't have SQL queries pulling into Excel Worksheets. We shouldn't use Excel as a database, but people had to change names of biological genes to avoid these being autoformatted in Excel.
But as a matter of fact, in general one is limited to working with the tools one knows, so convincing someone to use the correct tool for a job will always be harder than just delivering additional features, that we know will make the overall product worse.
I agree with everything you wrote, except as a designer I wanted to point out that the lack of scope limitation is not usually due to design, but rather product and marketing who drive new features, because their job is to increase new customers, and improving life for existing customers is a far second -- only so far as potential new customers may be impacted (reviews, comparisons with competitors, or churn). So long as they can mostly keep existing customers they will always fight against spending development time on improving their experience, when they could add a new point to the feature list for marketing.
The issue is the drive for infinite growth is counter to a human-usable quality-focused UX (with a focused scope and focused target audience).
Something like the ~~Linux~~ unix philosophy of doing 1 thing and doing it well comes to mind. FOSS no less.
Just cos it's Foss doesn't mean it follows the ~~Linux~~ unix philosophy
I honestly think it's mostly a problem with the idea that the Office apps are extremely bloated, kitchen sink apps. No one should be looking at Word or Libre Writer and thinking "I'm going to build a contracting system for my clients out of that" or "I bet I could make an inventory system in there" and yet...
Yep.
People try to use Word as a desktop publishing app then complain how it shifts images around. Thats because it's for documents, which flow page to page.
Use Publisher for DTP, or a real, industry app. Same problem of using Excel for a database purpose.
Yeah this is a better example. Thanks!
That philosophy has never been successfully been applied in the GUI space and especially not in the Linux world. Bash/Shell gets away with it because it has pipes and scripting that allow you to plug different apps together to form something bigger. In the Windows world they tried something like that with OLE and NeXTSTEP did something with DisplayPostscript, but none of it stuck around to become a foundational layer for GUI apps the way pipes are for command line tools. These days all GUIs are back to being monolithic blobs.
Begs the question for gui's then or?
I always wonder what another interaction scheme would look like if it weren't for "click", I've always wondered about tunnels or roads, like we do in real life, to continuously travel toward a destination, rather than discretely click.
Didn't have to be this way. CLI is underrated as any computer dev knows, power is in the knowledge. How about we apply the AI search problem to cli commands, what happens then?
There is the filter graph or node graph, found in things like Unreal Blueprints, Blender or ComfyUI. That's kind of the GUI version of a pipe and even quite a bit more powerful as you can have multiple inputs and outputs. But it's just something individual apps implement, it's not something any OS has as a native primitive.
For something a little more CLI-like, there is Archy, which is kind of like Emacs, where programs are just commands that operate on the same bit of data, not complete separate things, but that never made it past some prototypes and it's hard to see how it could work for the whole OS, where you have to deal with a wide variety of file and data formats. It had a commercial predecessor with Canon Cat in 1987, but that also ended up a dead end.
Another thing is Project Xandau, this is more of an alternative to the WWW than just a GUI/OS, but it would have had some neat properties like links to and quotes from other documents being actual references to those documents, not copy&paste. But again, nothing but prototypes.
Unix shells just assume everything is text, which makes all the small tools possible. But the GUI world contains a lot more than just plain text, which makes it difficult to come up with any universal scheme that can have the same flexibility. Even HTML, which is the closed thing to an universal data format in the modern GUI world, fails quite miserably here as, as it ends up being just a format for content consumption, not a format that is used in the creation and management of the data.
At the current pace we'll have AGI long before we have any real innovation in GUIs. Will probably end up with StarTrek like interface sooner or later where you just say what you want and the AI figures out how to get it, ChatGPT already isn't that far off and can handle a lot of simple grep/sed like tasks quite well, even shell one liner can be produces with a reasonable rate of success. What's is a way to let it access and operate on local data.
Sweet, thanks for the write up. Do you play with anything tool wise on this, I mean I constantly ask chatgpt for bash and python programs / logic, but that HTML idea sounds sorta fun. Where would that lead? Should it be even more standadized?
You have any other such methodologies that you seem to hold onto other than Unix, that are atomic and simple? Any fun blogs etc? I love stuff like this.
That's the billion dollar question. Whoever figures that out and builds it will be the next Microsoft/Google/Apple/...
Microsoft, Adobe and a lot of other companies are starting to patch some AI features into their apps, but the thing that makes ChatGPT so interesting is that it is universal, it can generate code, cooking recipes and write short stories and it can do all of that at once. Having an AI be stuck in a single app feels limited compared to that. But at the same time ChatGPT itself is locked in its own little text-window, which is limiting it as well. ChatGPT-style AI that can operate like a full OS, that would be the holly grail and I am sure plenty of companies are working on something like that.
Not sure about blog, but here are a couple of random vaguely related books and videos on the topic:
I find the older stuff especially interesting as it has a more clean-slate approach to interface design and isn't stuck in modern conventions.
So glad I asked. Thanks a lot, right up my alley!
That's the UNIX philosophy, not the Linux philosophy. That idea predates Linux by like a decade.
Apologies, but I'll also take it since Linux is a subset of Unix. But right you are, it originates there.. But is Linux the most interaction we have with Unix like OS in this day and age?
Probably. Mac is Unix like but basically all server infrastructure is running on Linux.
That's going away with people like poettering running the show.
What show?
There's a lot to dislike about systemd, and some things to like. Most big Linux distributions are using it now; in regards to this comment though, systemd is a fast executable trying to handle many core system jobs at once. Instead of Cron, openRC startup scripts, networkmanager for networking... Systemd is trying to do it all.