Live data from Hacker News

After two years of vibecoding, I'm back to writing by hand

atmoio.substack.com

461–470 of 652 posts

Re: After two years of vibecoding, I'm back to writing by hand

#461
I am still fascinated by how convincing the AI slop can be. I saw way too much code and documentation which made no sense. But it's often not obvious. I read it, I don't get it, I read it again, am I just stupid? I can grab some threads from it, but overall, it just doesn't make sense, it doesn't click for me. And that's when I often realize, it doesn't click, because it's a slop. It's obvious in pictures (e.g., generate a picture of a bike with labels). But in code? It requires more time to look at it than to actually write it. So it just slips reviews, it sometimes even works as it should, but it's damn hard to understand and fix it in the future. Until eventually, nothing can fix it.

For the record, I use AI to generate code but not for "vibecoding". I don't believe when people tell me "you just prompt it badly". I saw enough to lose faith.

Re: After two years of vibecoding, I'm back to writing by hand

#462

Earlier quoted context omitted.

I wrote this a day ago but I find it even more relevant to your observation: — I would never use, let alone pay for, a fully vibe-coded app whose implementation no human understands. Whether you’re reading a book or using an app, you’re communicating with the author by way of your shared humanity in how they anticipate what you’re thinking as you explore the work. The author incorporates and plans for those predicted…

No human understands how Windows works. The number of products where a human understands the whole thing is small.

That's a false analogy. Product managers, designers, API implementers, kernel developers, etc. all understand what they're building and how that fits into a larger picture.

Re: After two years of vibecoding, I'm back to writing by hand

#463
post #106

Earlier quoted context omitted.

> AI assisted development isn't all or nothing. > We as a group and as individuals need to figure out the right blend of AI and human. This is what makes current LLM debate very much like the strong typing debate about 15-20 years ago. "We as a group need to figure out the right blend of strong static and weak dynamic typing." One can look around and see where that old discussion brought us. In my opinion, nowhere, t…

As a former “types are overrated” person, Typescript was my conversion moment. For small projects, I don’t think it makes a huge difference. But for large projects, I’d guess that most die-hard dynamic people who have tried typescript have now seen the light and find lots of benefits to static typing.

I was on the other side, I thought types are indispensable. And I still do.

My own experience suggest that if you need to develop heavily multithreaded application, you should use Haskell and you need some MVars if you are working alone and you need software transactional memory (STM) if you are working as part of a team, two and more people.

STM makes stitching different parts of the parallel program together as easy as just writing sequential program - sequential coordination is delegated to STM. But, STM needs control of side effects, one should not write a file inside STM transaction, only before transaction is started or after transaction is finished.

Because of this, C#, F#, C++, C, Rust, Java and most of programming languages do not have a proper STM implementation.

For controlling (and combining) (side) effects one needs higher order types and partially instantiated types. These were already available in Haskell (ghc 6.4, 2005) at the time Rust was conceived (2009), for four years.

Did Rust do anything to have these? No. The authors were a little bit too concerned to reimplement what Henry Baker did at the beginning of 1990-s, if not before that.

Do Rust authors have plans to implement these? No, they have other things to do urgently to serve community better. As if making complex coordination of heavily parallel programs is not a priority at all.

This is where I get my "rhyme" from.

Re: After two years of vibecoding, I'm back to writing by hand

#464

AI is incredibly dangerous because it can do the simple things very well, which prevents new programmers from learning the simple things ("Oh, I'll just have AI generate it") which then prevents them from learning the middlin' and harder and meta things at a visceral level. I'm a CS teacher, so this is where I see a huge danger right now and I'm explicit with my students about it: you HAVE to write the code. You CAN'…

Agreed. I think the divide is between code-as-thinking and code-as-implementation. Trivial assignments and toy projects and geeking out over implementation details are necessary to learn what code is, and what can be done with it. Otherwise your ideas are too vague to guide AI to an implementation.

Without the clarity that comes from thinking with code, a programmer using AI is the blind leading the blind.

The social aspect of a dialogue is relaxing, but very little improvement is happening. It's like a study group where one (relatively) incompetent student tries to advise another, and then test day comes and they're outperformed by the weirdo that worked alone.

Re: After two years of vibecoding, I'm back to writing by hand

#465
post #253

I feel like I'm taking crazy pills. The article starts with: > you give it a simple task. You’re impressed. So you give it a large task. You’re even more impressed. That has _never_ been the story for me. I've tried, and I've got some good pointers and hints where to go and what to try, a result of LLM's extensive if shallow reading, but in the sense of concrete problem solving or code/script writing, I'm _always_ di…

I usually do most of the engineering and it works great for writing the code. I’ll say: > There should be a TaskManager that stores Task objects in a sorted set, with the deadline as the sort key. There should be methods to add a task and pop the current top task. The TaskManager owns the memory when the Task is in the sorted set, and the caller to pop should own it after it is popped. To enforce this, the caller to…

Yeah, I feel like I get really good results from AI, and this is very much how I prompt as well. It just takes care of writing the code, making sure to update everything that is touched by that code guided by linters and type-checkers, but it's always executing my architecture and algorithm, and I spend time carefully trying to understand the problem before I even begin.

Re: After two years of vibecoding, I'm back to writing by hand

#466
post #253

Earlier quoted context omitted.

I usually do most of the engineering and it works great for writing the code. I’ll say: > There should be a TaskManager that stores Task objects in a sorted set, with the deadline as the sort key. There should be methods to add a task and pop the current top task. The TaskManager owns the memory when the Task is in the sorted set, and the caller to pop should own it after it is popped. To enforce this, the caller to…

This is a good start. I write prompts as if I was instructing junior developer to do stuff I need. I make it as detailed and clear as I can. I actually don't like _writing_ code, but enjoy reading it. So sessions with LLM are very entertaining, especially when I want to push boundaries (I am not liking this, the code seems a little bit bloated. I am sure you could simplify X and Y. Also think of any alternative way t…

> I actually don't like _writing_ code, but enjoy reading it.

I think this is one of the divides between people who like AI and people who don't. I don't mind writing code per se, but I really don't like text editing — and I've used Vim (Evil mode) and then Emacs (vanilla keybindings) for years, so it's not like I'm using bad tools; it's just too fiddly. I don't like moving text around; munging control structures from one shape to another; I don't like the busy work of copying and pasting code that isn't worth DRYing, or isn't capable of being DRY'd effectively; I hate going around and fixing all the little compiler and linter errors produced by a refactor manually; and I really hate the process of filling out the skeleton of an type/class/whatever architecture in a new file before getting to the meat.

However, reading code is pretty easy for me, and I'm very good at quickly putting algorithms and architectures I have in my head into words — and, to be honest, I often find this clarifies the high level idea more than writing the code for it, because I don't get lost in the forest — and I also really enjoy taking something that isn't quite good enough, that's maybe 80% of the way there, and doing the careful polishing and refactoring necessary to get it to 100%.

Re: After two years of vibecoding, I'm back to writing by hand

#467
post #270

Earlier quoted context omitted.

I'd like it to take less time to correct than it takes me to type out the code I want and as of yet I haven't had that experience. Now, I don't do Python or JS, which I understand the LLMs are better at, but there's a whole lot of programming that isn't in Python or JS...

I've had success across quite a few languages, more than just python and js. I find it insanely hard to believe you can write code faster than the LLM, even if the LLM has to iterate a couple times. But I'm thankful for you devs that are giving me job security.

And that tells me you're on the dev end of the devops spectrum while I'm fully on the ops side. I write very small pieces of software (the time it takes to type them is never the bottleneck) that integrates in-house software with whatever services they have to actually interact with, which every LLM I've used does wrong the first fifteen or so times it tries (for some reason rtkit in particular absolutely flummoxes every single LLM I've ever given it to).

Re: After two years of vibecoding, I'm back to writing by hand

#468

Earlier quoted context omitted.

Its really becoming a good litmus test for how someones coding ability whether they think LLMS can do well on complex tasks. For example, someone may ask an LLM to write a simple http web server, and it can do that fine, and they consider that complex, when in reality its really not.

It’s not. There are tons of great programmers, that are big names in the industry who now exclusively vibe code. Many of these names are obviously intelligent and great programmers. This is an extremely false statement.

Non sequitor.

You don't have to be bad at coding to use LLMs. The argument was specifically about thinking that LLMS can be great at accomplishing complex tasks (which they are not)

Re: After two years of vibecoding, I'm back to writing by hand

#469

AI is incredibly dangerous because it can do the simple things very well, which prevents new programmers from learning the simple things ("Oh, I'll just have AI generate it") which then prevents them from learning the middlin' and harder and meta things at a visceral level. I'm a CS teacher, so this is where I see a huge danger right now and I'm explicit with my students about it: you HAVE to write the code. You CAN'…

Yes, exactly. I'm having a frustrating time reminding senior teachers of this, people with authority who should really know better. There seems to be some delusion that this technology will somehow change how people learn in a fundamental way.

Re: After two years of vibecoding, I'm back to writing by hand

#470

Earlier quoted context omitted.

I feel like I am taking crazy pills. I am getting code that works from Opus 4.5. It seems like people are living in two separate worlds.

Parent's profile shows that they are an experienced software engineer in multiple areas of software development. Your own profile says you are a PM whose software skills amount to "Script kiddie at best but love hacking things together." It seems like the "separate worlds" you are describing is the impression of reviewing the code base from a seasoned engineer vs an amateur. It shouldn't be even a little surprising t…

Except I work with extremely competent software engineers on software used in mission critical applications in the Fortune 500. I call myself a script kiddie because I did not study Computer Science. Am I green in the test run? Does it pass load tests? Is it making money? While some of yall are worried about leaky abstractions, we just closed another client. Two worlds for sure where one team is skating to the puck, looking to raise cattle while another wants to continue nurturing an exotic pet.

Plenty of respect to the craft of code but the AI of today is the worst is is ever going to be.

Post reply on HN