← Back to context

Comment by Twey

14 hours ago

> 37signals differentiates their products with opinionated UI/UX, not novel features. They are rewriting Hey as six native apps because the web fidelity isn’t good enough. So UI matters enough to justify complete rewrites, but also everyone just wants CLIs?

I've seen this one a few times lately. People should stop building UIs, nobody wants to interact with a UI. Everyone's app should just be an API that you can use with a chatbot. Except for my app — my app is a handcrafted miracle of artisanal UX and its UI will change the way you see the world.

It's exactly the old argument, just now with LLMs in the place of shell pipelines: in terms of functionality and value to users, software ought to be malleable and composable. We've known it since the eighties. But the model of selling a piece of software as a product as if it were a pair of shoes is incompatible with that. You need a big monolithic application to justify users paying a bunch of money for it, and you need it to have a fancy interface that makes an impression. And the whole software industry is built on top of that model. Where monolithic software is completely unfit for a purpose, like when it needs to be a component of a larger system, we rely on (mostly unpaid) OSS.

Except now LLMs let you, with very little technical know-how, plaster a ‘programmable’ interface on top of unstructured data/interface meant for humans, and because that's what we actually want, of course everybody does that. So the end result is a wildly expensive pipeline from API to UI and back to API again. I wonder how long the legacy ‘human-oriented’ layer in the middle, and the industry that's been built on top of it, will last.

(Separately, chatbots are not great as a UI for most things, and the problem of building the universal UI still also stands. But it turns out for a lot of things people would rather have a bad universal UI than a good special-purpose UI for each task.)

A chatbot is worse than a CLI app: a CLI app does exactly what you ask for, and has a manual documenting exactly what command do what, and the output is consistent, the same command does the same thing period.

A chatbot using an LLM of course not, it suffers from hallucinations, it may do what you want but there is a change it won't and you have to fight it to get the desired result.

Chatbots are far WORSE than traditional UI for everything. If some product has a chatbot functions it's the first thing I disable, if it's not possible to disable it, I avoid the product.

And GUI applications are typically preferred, at least for the normal people and not us nerds, to CLI applications, since you know people like moving a mouse and clicking on buttons (or tapping them on a touchscreen) that learning commands: a chatbot doesn't make the CLI experience less awful for the average user, and for the nerd user, he prefers to use the CLI directly (replace asking the chatbot with man or --help and you don't need to emit tons of CO2 and transmit your personal data to a datacenter on the other side of the world to do stuff you did with MS-DOS)

  • > a CLI app does exactly what you ask for, and has a manual documenting exactly what command do what, and the output is consistent, the same command does the same thing period

    This is a very software-engineery point of view and totally false for the ordinary user. Heck, it is even false for me as a software engineer.

    > since you know people like moving a mouse and clicking on buttons

    No, they like well-designed user interfaces, and the UI design of a typical CLI is abysmal.

    • > the UI design of a typical CLI is abysmal

      The nice thing about a CLI is that even if you don't like the interface you're given, it's trivial to put an interface you do like in front of it. Much harder to do that with a point and click interface.

    • > Heck, it is even false for me as a software engineer.

      Amen

      Honestly, the gap from knowing which command line tool you probably need, to the command that does what you need... Prior to AI I have replicated probably a thousand command line capabilities in Ruby because I just couldn't be bothered.

  • > a CLI app does exactly what you ask for, and has a manual documenting exactly what command do what

    *a small percent of apps behave like this

    > it may do what you want but there is a change it won't and you have to fight it to get the desired result

    The vast majority of all software made in the last ten years falls into this category. This includes the goddamn operating system itself.

    I don't think you're making the argument you think you're making.

  • >> Chatbots are far WORSE than traditional UI for everything. If some product has a chatbot functions it's the first thing I disable, if it's not possible to disable it, I avoid the product.

    The chatbot we added to our B2B product is by far the most popular addition we've made this year. Our users are not tech-savvy, they use a lot of apps everyday and don't want to have to learn and keep up with just another UI. So they like being able to type their wants and needs in plain language (or speak it into their phone, if they are in the field) and get a plain language response back with embedded images and charts.

    YMMV of course.

    • > So they like being able to type their wants and needs in plain language (or speak it into their phone, if they are in the field) and get a plain language response back with embedded images and charts.

      I note you didn't mention accurate and reliable.

I think LLMs may actually help us get to CLI/API driven development. At least, that has been my experience.

Even though most of my projects have a UI, I build a CLI/API version so that the LLM can interact with it directly. I have been using this "CLI driven development" approach for more than a year now and have had fantastic results. The CLI arguments make it easy for LLM to interact with software it wrote.

I usually ask LLM to build a lib, then expose as a CLI and a RESTful API.

  • As a developer/user I hope for that outcome too — if everybody is using your app through an agent you might as well cut the maintenance cost and drop the GUI, or at least have a nice API alongside it to make it nicer for the agent. But I wonder what it does to the financial incentives to produce software.

UIs are great, until you can’t see the UI.

Words are a great UI. They can be easily converted into audio and haptics. We already have many systems in place that do exactly this with words.

Sure, pretty graphics are nice, but their sole intent should be to convey information. A User Interface that does not allow a person to easily have information conveyed to them is a bad interface.

The modern AI world isn’t perfect, but for a large portion of people who have accessibility needs, it’s absolutely a positive impact on their life in a way that no single technology has been until now.

  • For sure! One of the big draws of malleability is that you can adapt it to your particular needs. Natural language is a UI just as much as a WIMP GUI, and for some tasks or some people it's a great one.

I think chat is a great entry point for many experiences. The approachability and flexibility are unmatched.

A question becomes, how do you evolve a chat experience to task specific actions?

I’m building an app to explore scripture. Chat is an amazing starting point. But it’s terrible once you get into reading the actual scripture.

I think we will see more of this in the future. Here is how I’ve envisioned evolving an experience out of chat. Curious if others have their own ideas.

https://trysojourn.app

  • "I think chat is a great entry point for many experiences. The approachability and flexibility are unmatched."

    Just wait a few months/years and then some smartasses will come with a novel approach nobody ever has thought of before. Let's call it "context menus". They will give rapid access to the most used features without the tedious typing.

    Until MacOS 27 the text context menus had items "Writing Tools" and "Proofread". Quick and efficient. MacOS has dropped these items and replaced with "Ask Siri". Now I have to type "proofread" every time and pray Siri agrees that it should proofread the selected text. Once it has done that, do i have to type "replace"? I don't even know.

    There is a reason why UIs became popular. Command lines are fine but hard to discover and tedious to use. With AI it's even worse. You can't know for sure the AI interprets your commands in the way you intended.

  • For me personally, the effort to type on a mobile phone is too much. If I can't complete an interaction with maybe two sentences, I much much prefer typing on a computer, and if required, copy everything over.

    • I’m in the same boat. Hate typing on a phone. But due to chat interfaces,I’ve learned to mutter discretely into Apple keyboard dictation.

      1 reply →

> People should stop building UIs, nobody wants to interact with a UI.

If the UI is completely local and the chat is not, then I prefer UI.

> Except now LLMs let you, with very little technical know-how, plaster a ‘programmable’ interface on top of unstructured data/interface meant for humans, and because that's what we actually want, of course everybody does that.

I don't think that is what everyone wants, or at the very least its not what I want. My ideal software has a well designed and thought through user interface for the primary interactions, allowing me to think about the goal I'm trying to achieve rather than how I'm manipulating the underlying data model.

Additionally to that please also provide access to the underlying data. Ideally in the form of a locally accessible API but I'll accept a remote one if necessary, provide a CLI on top of that as well if you like.

  • Yes you caught me out in a bit of exaggeration there. For the topmost level of tasks people typically do want a low-latency, high-bandwidth UI for displaying and manipulating the information they care about.

  • > "My ideal software has a well designed and thought through user interface for the primary interactions, allowing me to think about the goal I'm trying to achieve"

    Yes, this is the crux of the whole discussion. The paradigm is called "Intent-based UX".

>I wonder how long the legacy ‘human-oriented’ layer in the middle, and the industry that's been built on top of it, will last.

Never because a lot of software is written for the human to use.

>Everyone's app should just be an API that you can use with a chatbot.

I see this sentiment a lot, but UI has a greater purpose than just serving the customer needs, it also be used to shape them.

Imagine if instead of going to the grocery store, you called a number and told them what you needed. Sometimes you don't know everything you need. Sometimes you end up discovering something new and buying it even if you didn't plan on it.

  • In case it wasn't clear, that was intended as a somewhat satirical representation of the position I was discussing :) An important part of any ‘universal UI’ — and arguably the hardest part of building it — has to be that it allows feedback from the API about what and how to display, which is always in tension with the malleability/universality aspect. People are trying to solve that for chatbots right now, with limited success so far.

> in terms of functionality and value to users, software ought to be malleable and composable.

For technically competent users, sure. but for everyone else the UI should just follow the principal of least surprise.

  • I think the popularity of these chat interfaces disagrees with that to some extent. We do already have malleable software for people who can program — the problem has always been bringing it to everyone else.

> I've seen this one a few times lately. People should stop building UIs, nobody wants to interact with a UI. Everyone's app should just be an API that you can use with a chatbot.

Same happened when the first smartphones came out, and everything was about "mobile first". Everyone will use their mobile phones for everything, desktop is dead, every app should be primarily designed for smartphones, everything comes after. Turned out smartphones just another interface that are good for some things, and not good for some other. Same for the "cloud native" movement.

  • Exactly this. Each new hype cycle, everything must be shoe horned into the hot new technology. So now there's a push to use chatbots for everything, why even have an interface? Just ask the chatbot to make one for you! Because the user totally knows what they want and what works, we've been wrong all these decades when it comes to UIs and customer preference. /s

> People should stop building UIs, nobody wants to interact with a UI. Everyone's app should just be an API that you can use with a chatbot.

The last thing people want is interacting with a chatbot for anything that doesn't require a chatbot.

> in terms of functionality and value to users, software ought to be malleable and composable.

No, it shouldn't. The last thing people want is for software to change from under them, or be replaced with the bullshit that is a chatbot.

> plaster a ‘programmable’ interface on top of unstructured data/interface meant for humans

Ah yes. I can imagine everyone "plastering programmable interfaces" on top of daily stuff they want to do. Like buying a ticket to a museum. Ordering Doorsash. Sending a meme to a friend. Renting a car...