Live data from Hacker News

Chat is a bad UI pattern for development tools

danieldelaney.net

101–110 of 432 posts

Re: Chat is a bad UI pattern for development tools

#101
post #5

Natural language isn’t made to be precise that’s why we use a subset in programming languages. So you either need lots of extra text to remove the ambiguity of natural language if you use AI or you need a special precise subset to communicate with AI and that’s just programming with extra steps.

AIs actually are very good at this. They wouldn't be able to write code at all otherwise. If you're careful in your prompting, they'll make fewer assumptions and ask clarifying questions before going ahead and writing code.

> they'll make fewer assumptions and ask clarifying questions before going ahead and writing code.

Which model are you talking about here? Because with ChatGPT, I struggle with getting it to ask any clarifying questions before just dumping code filled with placeholders I don't want, even when I explicitly prompt it to ask for clarification.

Re: Chat is a bad UI pattern for development tools

#102
post #52

I'm growing to the idea that chat is a bad UI pattern, period. It is a great record of correspondence, I think. But it is a terrible UI for doing anything. In large, I assert this is because the best way to do something is to do that thing. There can be correspondence around the thing, but the artifacts that you are building are separate things. You could probably take this further and say that narrative is a terribl…

Preach!

I’ve been saying this since 2018

Re: Chat is a bad UI pattern for development tools

#103
post #82

Earlier quoted context omitted.

Email threads seem better for documenting and searching correspondence. The last counter argument I read got buried on Discord or Slack somewhere.

Discord and slack baffle me. I liked them specifically because they were more ephemeral than other options. Which, seems at odds with how people want them to be? Why?

Were these ever ephemeral? Are you misremembering history free IRC chat rooms?

Re: Chat is a bad UI pattern for development tools

#105

I'm surprised that the article (and comments) haven't mentioned Cursor. Agreed that copy pasting context in and out of ChatGPT isn't the fastest workflow. But Cursor has been a major speed up in the way I write code. And it's primarily through a chat interface, but with a few QOL hacks that make it way faster: 1. Output gets applied to your file in a git-diff style. So you can approve/deny changes. 2. It (kinda) has…

I think the wildly different experiences we all seem to have with AI code tools speaks to the inconsistency of the tools and our own lack of understanding of what goes into programming.

I’ve only been slowed down with AI tools. I tried for a few months to really use them and they made the easy tasks hard and the hard tasks opaque.

But obviously some people find them helpful.

Makes me wonder if programming approaches differ wildly from developer to developer.

For me, if I have an automated tool writing code, it’s bc I don’t want to think about that code at all.

But since LLMs don’t really act deterministically, I feel the need to double check their output.

That’s very painful for me. At that point I’d rather just write the code once, correctly.

Re: Chat is a bad UI pattern for development tools

#106
post #86
post #77

My nuclear fire hot take is that the chat pattern is actively hampering AI tools because we have to square peg -> round hole things either into the chat UI (because that's what people expect), or that as developers you have to square peg -> round hole into the chat API patterns. Last night I wrote an implementation of an AI paper and it was so much easier to just discard the automatic chat formatting and do it "by ha…

Whoa! You broke my brain a bit there (but your posts often do, in a Good way!) Would you be so kind as to ELI5 what you did in that index.js? I've used ollama to run models locally, but I'm still stuck in chat-land. Of course, if a blog post is in the works, I'll just wait for that :)

The file explains it a bit, but my blogpost https://xeiaso.net/notes/2025/s1-simple-test-time-scaling/ could probably be better explained. I'll write out more but just for you I'll summarize what I'm gonna end up writing up.

AI models fundamentally work on the basis of "given what's before, what comes next?" When you pass messages to an API like:

    [
      { "role": "system", content": "You are an expert in selling propane and propane accessories. Whenever someone talks about anything that isn't propane, steer them back." },
      { "role": "user", "content": "What should I use to cook food on my grill?" },
      { "role": "assistant", "content": "For cooking food on your grill, using propane is a great choice due to its convenience and efficiency. [...]" }
    ]
Under the hood, the model actually sees something like this (using the formatting that DeepSeek's Qwen 2.5 32b reasoning distillation uses):

    You are an expert in selling propane and propane accessories. Whenever someone talks about anything that isn't propane, steer them back.
    What should I use to cook food on my grill?
    
And then the model starts generating tokens to get you a reply. What the model returns is something like:

    For cooking food on your grill, using propane is a great choice due to its convenience and efficiency. [...]
The runtime around the model then appends that as the final "assistant" message and sends it back to the user so there's a façade of communication.

What I'm doing here is manually assembling the context window such that I can take advantage of that and then induce the model that it needs to think more, so the basic context window looks like:

    Follow this JSON schema: [omitted for brevity]
    Tell me about Canada.
    Okay
And then the model will output reasoning steps until it sends a token, which can be used to tell the runtime that it's done thinking and to treat any tokens after that as the normal chat response. However, sometimes the model stops thinking too soon, so what you can do is intercept this token and then append a newline and the word "Wait" to the context window. Then when you send it back to the model, it will second-guess and double-check its work.

The paper s1: Simple test-time scaling (https://arxiv.org/abs/2501.19393) concludes that this is probably how OpenAI implemented the "reasoning effort" slider for their o1 API. My index.js file applies this principle and has DeepSeek's Qwen 2.5 32b reasoning distillation think for three rounds of effort and then output some detailed information about Canada.

In my opinion, this is the kind of thing that people need to be more aware of, and the kind of stuff that I use in my own research for finding ways to make AI models benefit humanity instead of replacing human labor.

Re: Chat is a bad UI pattern for development tools

#107
post #103
post #82

Earlier quoted context omitted.

Discord and slack baffle me. I liked them specifically because they were more ephemeral than other options. Which, seems at odds with how people want them to be? Why?

Were these ever ephemeral? Are you misremembering history free IRC chat rooms?

Fair that they were probably less ephemeral than I have them in my mental model. Which, as you guessed, was largely from them taking up the same spot as a slack (edit: I meant irc) instance in my mind. Slack, in particular, often had policies applied so that messages were deleted after a set time frame. I remember people complaining, but that seemed legit to me and fit my model.

I also confess this model of ephemeral conversation is amusing in this specific website. Which I also largely view as a clubhouse conversation that is also best viewed as ephemeral. But it is clearly held for far longer than that idea would lead me to think.

Re: Chat is a bad UI pattern for development tools

#108
post #88

Earlier quoted context omitted.

Email threads seem better for documenting and searching correspondence. The last counter argument I read got buried on Discord or Slack somewhere.

Isn't this entirely an implementation detail of slack and discord search? What about email makes it more searchable fundamentally? The meta data if both platforms is essentially the same, no?

Personally, when I send an email, I feel less time pressure to respond, so I more carefully craft my responses. The metadata is similar enough, but the actual data in email/forums is usually better.

Re: Chat is a bad UI pattern for development tools

#109

I'm surprised that the article (and comments) haven't mentioned Cursor. Agreed that copy pasting context in and out of ChatGPT isn't the fastest workflow. But Cursor has been a major speed up in the way I write code. And it's primarily through a chat interface, but with a few QOL hacks that make it way faster: 1. Output gets applied to your file in a git-diff style. So you can approve/deny changes. 2. It (kinda) has…

I like Cursor, but I find the chat to be less useful than the super advanced auto complete.

The chat interface is... fine. Certainly better integrated into the editor than GitHub Copilot's, but I've never really seen the need to use it as chat—I ask for a change and then it makes the change. Then I fixed what it did wrong and ask for another change. The chat history aspect is meaningless and usually counterproductive, because it's faster for me to fix its mistakes than keep everything in the chat window while prodding it the last 20% of the way.

Re: Chat is a bad UI pattern for development tools

#110
post #52

I'm growing to the idea that chat is a bad UI pattern, period. It is a great record of correspondence, I think. But it is a terrible UI for doing anything. In large, I assert this is because the best way to do something is to do that thing. There can be correspondence around the thing, but the artifacts that you are building are separate things. You could probably take this further and say that narrative is a terribl…

Yes, agree. Chatting with a computer has all the worst attributes of talking to a person, without any of the intuitive understanding, nonverbal cues, even tone of voice, that all add meaning when two human beings talk to each other.
Post reply on HN