Hacker Newsnew | past | comments | ask | show | jobs | submit | 13415's commentslogin

I've tried vibe coding and hate it. I guess it's okay for people who are only interested in the result, but for me it takes all the fun out of programming. It doesn't feel like it has anything to do with programming at all. I will continue to "vibe code" out of necessity - saving time and achieving more than I can on my own. But I cannot possibly understand how someone could consider it fun.

There are two kinds of woodworkers/carpenters. Let's assume both need a table.

The other grabs some wood, runs it through electric planers, chops it with a circular saw and screws it together. Nice, sturdy fast, problem solved over a weekend because the glue had to dry, next time they might use biscuit joins to make it faster. This is the AI programmer.

The other enjoys working with wood, they pick the perfect pieces of a specific wood where the grain matches in a pleasing pattern. Each one is hand-planed to perfection. After that an intricate joinery method is carved into the relevant places and carefully glued together with a natural glue so that the woodgrain matches and the join is practically invisible. A work of art. It also took a month to complete. This is the non-AI programmer.

Both solve the same problem, there is now a table in the world where people can sit and eat.

But. If you were to sell the table and still get compensated fairly, the latter table will be VERY expensive. Same with code. How many projects are there were you can use "this code is hand-crafted and every line beautifully thought of" as a selling point when the competition is using AI and just churning out solutions, even though the code might be basic and not too maintainable - but passes all the relevant tests.


its also trading one problem for another. when manually coding you understand with little mental effort what you want to achieve, the nuances and constraints, how something interacts with other moving parts, and your problem is implementing the solution

when generating a solution, you need to explain in excruciating detail the things that you just know effortlessly. its a different kind of work, but its still work, and its more annoying and less rewarding than just implementing the solution yourself


> when generating a solution, you need to explain in excruciating detail the things that you just know effortlessly

This is a great way of explaining the issue.


In my experience of using AI for development, the development speed is exactly the same as before. What you gain in letting AI writing some simple rote tasks, you lose by increased debugging and wasting time with sycophantic enthusiastic suggestions that turn out to be totally wrong two hours later. It's kind of infuriating because AI is so useful when it works, yet wastes your time in the worst way when it doesn't.


Is it really that useful though? I spend a lot of my time with ai wondering how much of what I’m reading is BS and how to verify. Some tools make checking easier than others.


It's best used as a glorified autocomplete or for refactoring. Autocomplete is useful but coding time is like 10% of development, upfront design / debugging / discussions / testing is a bigger issue. Refactoring needs to be checked as AI can't be trusted, and can end up costing as much time as it saves if it makes mistakes.


> glorified autocomplete

I feel like people who feel that about AI never really tried it in agentic mode.

I disable AI autocomplete. While bringing some value it messes with the flow of coding and normal autocomplete in ways I find annoying. (Although half of the problems would probably disappear if I just rebound it to CapsLock instead of Tab, which is the indent key).

But when switched to agentic mode I start with blank canvas and just describe applications I want. In natural language. I tell which libraries to use. Then I gradually evolve it using domain language or software development language whatever fits best to my desires about code or behavior. There are projects where I don't type any code at all and I inspect the code very rarely. I'm basically a project manager and part time QA while the AI does all the development including unit testing.

And it unncannily gets things right. At least Gemini 3 Pro (High) does. Sonnet 4.5 occasionally gets things wrong and difference in behavior tells me that it's not a fundamental problem. It's something that gets solved with stronger LLMs.


Yes it works for certain people, but the whole premise of the OP is that it isn't working that well for the majority of people. I wonder if you are a manager already or aspire to be one. Because the workflow you describe, I've tried it and I find it exhausting.


I'm a senior, mostly full-stack-web developer, but I also have done some desktop apps and dabbled in other platforms as well. I wrote code for over 20 years in many languages. I never had any aspiration for managing anything or anyone but I was freelancing a lot so I have a good, working understanding of every role in the software development process and I embodied each of those for a bit at one point or another. I never built a complete product out of my own volition, but I have a lot of ideas. However deeply understanding how much work would the implementation take, I was always discouraged. ADHD probably was also a factor.

I lead a team once and wasn't particularly fond of it. For me AI is godsend. It's like being a tech lead and product owner but without having to deal with people and multitude of their idiosyncrasies.

I can understand how AI can't work well for a developer whose work is limited to reading tickets in Jira and implementing them in 3-5 business days, because that's exactly whom AI replaces. I also did that during my career and I liked it but I can see that if all you do at work is swing a shovel you might find it hard to incorporate power digger into your daily work process. But if you can step out a bit it feels great. You can still keep you shovel and chisel nice corners or whatever in places where digger did less than stellar job. But the digger just saves so much work.

Try Antigravity from Google. Not for your daily work. Just to make some stupid side projects that come to your mind, you don't care about, or process some data, make a gui for something, literally whatever, it costs nothing. I hope you'll see what I see.


Let me give you an example of my workflow from tonight:

1. I had two text documents containing plain text to compare. One with minor edits (done by AI).

2. I wanted to see what AI changed in my text.

3. I tried the usual diff tools. They diffed line by line and result was terrible. I searched google for "text comparison tool but not line-based"

4. As second search result it found me https://www.diffchecker.com/

5. Initially it did equally bad job but I noticed it had a switch "Real-time diff" which did exactly what I wanted.

6. I got curious what is this algorithm. So I asked Gemini with "Deep Research" mode: "The website https://www.diffchecker.com/ uses a diff algorithm they call real-time diff. It works really good for reformatted and corrected text documents. I'd like to know what is this algorithm and if there's any other software, preferably open-source that uses it."

7. As a first suggestion it listed diff-match-patch from Google. It had Python package.

8. I started Antigravity in a new folder, ran uv init. Then I prompted the following:

"Write a commandline tool that uses https://github.com/google/diff-match-patch/wiki/Language:-Py... to generate diff of two files and presents it as side by side comparison in generated html file."

[...]

"I installed the missing dependance for you. Please continue." - I noticed it doesn't use uv for installing dependencies so I interrupted and did it myself.

[...]

"This project uses uv. To run python code use

uv run python test_diff.py" - I noticed it still doesn't use uv for running the code so its testing fails.

[...]

"Semantic cleanup is important, please use it." - Things started to show up but it looked like linear diff. I noticed it had a call to semantic cleanup method commented out so I thought it might help if I push it in that direction.

[...]

"also display the complete, raw diff object below the table" - the display of the diff still didn't seem good so I got curious if it's the problem with the diffing code or the display code

[...]

"I don't see the contents of the object, just text {diffs}" - it made a silly mistake by outputting template variable instead of actual object.

[...]

"While comparing larger files 1.txt and 2.txt I notice that the diff is not very granular. Text changed just slightly but the diff looks like deleting nearly all the lines of the document, and inserting completely fresh ones. Can you force diff library to be more granular?

You seem to be doing the right thing https://github.com/google/diff-match-patch/wiki/Line-or-Word... but the outcome is not good.

Maybe there's some better matching algoritm in the library?" - it seemed that while on small tests that Antigravity made itself it worked decently but on the texts that I actually wanted to compare was still terrible although I've seen glimpses of hope because some spots were diffed more granularly. I inspected the code and it seemed to be doing character level diffing as per diff-match-patch example. While it processed this prompt I was searching for solution myself by clicking around diff-match-patch repo and demos. I found a potential solution by adjusting cleanup, but it actually solved the problem by itself by ditching the character level diffing (which I'm not sure I would have come up with at this point). Diffed object looked great but as I compared the result to https://www.diffchecker.com/ output it seemed that they did one minor thing about formatting better.

[...]

"Could you use rowspan so that rows on one side that are equivalent to multiple rows on the other side would have same height as the rows on the other side they are equivalent to?" - I felt very clumsily trying to phrase it and I wasn't sure if Antigravity will understand. But it did and executed perfectly.

I didn't have to revert a single prompt and interrupted just two times at the beginning.

So I basically went from having two very similar text files and knowing very little about diffing to knowing a bit more and having my own local tool that let's me compare texts in satisfying manner, with beautiful highlighting and formatting, that I can extend or modify however I like, that mirrors interesting part of the functionality of the best tool I found online. And all of that in the time span shorter than it took me to write this comment (at least the coding part was, I followed few wrong paths during my search for a bit).

My experience tells me that even if I could replicate what I did today (keeping motivated is an issue for me), it would most likely be multi-day project full of frustration and hunting small errors and venturing into wrong paths. Python isn't even my strongest language. Instead it was a pleasant and fun evening with occasional jaw drops and feeling so blessed that I live in SciFi times I read about as a kid (and adult).

Oh, yeah, I didn't use auto-complete once, because it mostly sucks. ;-)


That works great for a small greenfield project. Now try applying it to a million-line monorepo with three competing architectural patterns and a CI/CD pipeline that breaks if you look at it wrong. The real world of development is much messier


If you have such a beast you have n problems. Not being able to apply AI to it is just (n+1)th.

It works great when dealing with microservices architecture that was all the rage recently. Of course it doesn't solve it's main issue that is that microservices talk to each other but it still lets you sprint through a lot of work.

It's just that if you engineered (or engineer) things well, you get immediate huge benefits from AI coders. But if all you did last decade was throw in more spaghetti into already a huge bowl of spaghetti you are out of luck. Serves you right. The sad thing is that most humans will get pushed out into doing this kind of "real development" so it's probably a good time to learn to love legacy, because you are legacy.


> If you have such a beast you have n problems.

Lol no one needs AI to tell them that!


IMHO, AI can spot errors in an instant when I give it the files. This can be a real time-saver. I also use it as a glorified autocomplete, it's amazingly good at converting programming code in a mechanical fashion, like adding some lines in every function or changing some API.

The problem is that it can give very bad general advise in more complex cases, and it seems to be especially clueless about software architecture. I need to learn to force myself to ignore AI advice when my initial reaction is "Hm, I don't know." It seems that my bullshit detector is better than any AI so far even if I know the topic less good.


Well, I used Bubblesort to sort the results of lottery draws because it was very easy to implement.


No wonder everyone is building web apps. Operating systems are doing their best to make themselves obsolete.


As someone coding since 1986, with experience in native and Web development, and despite earning most of my money in Web, I assert it is lazyness.

There is no Web without operating systems, or do you imagine browsers run on pixie dust?


I’ll take this standardized directory format over the typical docker web app where there is no standardization and files can be strewn anywhere the developer wants. You `docker exec` into it and can’t find anything.


i think you meant everyone builds web apps because they want to target all platforms / hardware, they don’t care about performance (cpu usage, memory usage, etc), and they are easier to “deploy” in many respects.

Pros and cons to each. Not everything needs to be a native app. Some things SHOULD be native apps…i’m looking at you slack and friends.


I don't follow - can you elaborate?


If developers have to static-link all their libraries to ship a Mac-native app, you're already doing most of the work to ship a cross-platform web runtime like Electron.

Therefore it's not super surprising that successful products like Discord/Slack/Spotify gave up on a good native experience decades ago.


Why do you believe you need to static link to ship a Mac native app?

There’s no such requirement. Tons of Mac apps bundle dylibs within them.


The article clearly states that Apple provides standardized locations for apps to store their dynamically linked libraries.


one of the weirdest and most off-putting parts of macos for me was that dyld isn't aware of that standardized location. a lot of curious oversights the more you pick at it.


What do you mean? I can just tell the linker to link against something in the shared cache and it finds it. It’s been as simple as `-framework <FrameworkName>`

I’ve never had to do extra work to find a system vendored dylib in my decades of supporting cross platform apps.


They probably mean that they don’t like the way the “install name” (as it’s referred to) of a shared library is embedded in the library and then copied to whatever links the library, and is then used to find the library at runtime. I suspect they’d prefer to build the shared library with an arbitrary install name and then just have it found automatically by being in the Frameworks or Libraries directory.

Most platforms don’t have a concept of “install name” distinct from the library name; the value was originally the full path to the deployment location of the library, which was revised to support meta-paths (like `@rpath/LibraryName`) in Mac OS X 10.4 and 10.5 and is what the runtime dynamic loader (dyld) uses to match a library at load time. So an application’s executable can have a set of self-relative run path search paths, which is how it can load libraries from its Frameworks and Libraries directories.


Ah fair enough. But generally an rpath is pretty good to go out of the box.

The primary binary encodes relative to the executable path and any dylib that loads from it should be able to (by default) load relative to that


Depends on whether you’re building with Xcode; when I worked on it, I ensured that the templates included with Xcode would have the right setup to declare appropriate run path search paths for applications, and appropriate install names for frameworks and (shared) libraries.

However when building with just command line tools and not passing all the same arguments an Xcode project and target causes to be passed, you have to do extra work to ensure the right run path search paths get into built executables and the right install names get into built libraries and frameworks.

That latter is to ensure that if you don’t pass those extra arguments, executables and shared libraries are built for Darwin-based platforms as much as reasonably possible like they are on other UNIX-like platforms.


I mean I had to manually patch the rpaths of macos binaries distributed as an app bundle, because dyld didn't have the relative location of the shared libs in the app bundle in its search path. Not a huge deal, since patching rpaths was also part of the other Unix pipelines, the reasoning was just different. Patching rpaths on other platforms was because we were distributing dependencies in the base directory of the application, which isn't the standard way to do things. On mac, it was because the dynamic linker wasn't aware of app bundle structure for some reason, which is a weird disconnect between an OS standard and a basic system component.


statically linking dependencies is a trivial change in a build script. why are you acting like its some esoteric forbidden art?


I doubt Ofcom are motivated by "concern for individuals well beings in the midst of a mental health crisis", but even then, it is clear in the context of the current discussion that they should be concerned with enforcing their legislation in their own country. The UK is free to build The Great Firewall of the United Kingdom and block half of the internet if their concern is so great.

What they cannot be allowed to do is tell organizations in other jurisdictions that they now suddenly fall under UK jurisdiction.

There are 195 countries in the world. If all of them followed a policy like UK's Ofcom, the internet would be gone in no time and world-wide user-to-user communication would become impossible for legal reasons. It's obviously not a sane position.


> I doubt Ofcom are motivated by "concern for individuals well beings in the midst of a mental health crisis"

Do you have evidence for that? Because when I search I do see them doing investigations concerned with abuse of people including mentioning coercive and controlling behaviors

https://www.ofcom.org.uk/online-safety/illegal-and-harmful-c...

> If all of them followed a policy like UK's Ofcom, the internet would be gone in no time and world-wide user-to-user communication would become impossible for legal reasons.

Sounds like a slippery slope fallacy to me. Again, not necessarily supporting the policy, but when such arguments are used against it, it’s not convincing.


It's not a fallacy since there is nothing special or noteworthy about the UK. If every other country sent out such letters, then you'd have to block every country except your own. That's a fact. There are 195 countries in the world, no law office could possibly ensure you're complying with the laws of all of these countries within your own country. The laws are not even consistent, for example you violate the EU's GDPR by complying with Ofcom's demands. The UK's behavior sets a bad precedent that other small countries might follow. It's already enough having to keep up with US and EU regulatory demands, and we have to, since these are markets we can't ignore. Even just a few more small countries coming up with demands like Ofcom could create insurmountable legal problems for small companies like ours.

Let me put it another way: Would you comply with a similar letter from North Korea? From Russia? From China? If not, your attitude is hypocritical and inconsistent.

We're taking those threat seriously and have decided to block all UK IP numbers and not to do business with the UK for the time being. News that Ofcom might ignore such measures are worrying to us.


What’s your company? Perhaps you have an ethical obligation to your users and should have these regulations in place. We’ve seen what happens when companies are underegulated (Facebook, etc etc)

And here’s why your argument is a fallacy:

“This type of argument is sometimes used as a form of fearmongering in which the probable consequences of a given action are exaggerated in an attempt to scare the audience” [1]

1. https://en.wikipedia.org/wiki/Slippery_slope


I don't have anything major to add to what I've already said. We have indeed an ethical obligation towards our (future) customers, that's exactly why we couldn't fulfill Ofcom's demands - that would literally be illegal in our jurisdiction. Sovereign countries have their own laws (not the UK's), and in addition to these we also provide strong moderation tools. So for now we have to block the UK. We're in closed alpha stage and have a long way to go so this is purely a matter of legal prudence.

By the way, I've worked closely together with argumentation theorists at university for many years, so I know quite well what a slippery slope argument is. You should know that not all of them are fallacies.


We're aggressively blocking UK IPs before we even have our product ready, neither our website nor our software will work for visitors from the UK, our ToS will prohibit use of our software for UK residents, and we will not sell or offer the software in the UK. Ofcom would have to put a lot of effort to circumvent these measures to even know we exist.

In a nutshell, I'm moderately confident that this will suffice to keep Ofcom away.


I'm building an application that allows you to send a file to your colleagues. That's hardly a revolutionary or unusual use case, and it definitely requires network access and full access to the local file system. I also need the ability to lock files, writing file locks anywhere on the system, and I need to be able to index the contents of files.

Not only are all of these functions and corresponding permissions completely standard for all kinds of applications, they belong to the core of what any system that calls itself an "operating system" should deliver to developers and end users.


So what? Does it mean I need to automatically trust you and your app?

You don't need full unlimited access to everything in order to send a file.


You should definitely not run any apps that you don't trust. It's a no-brainer.

But in the end the file access issue is an operating system deficiency. They could offer more fine-grained access control but the common operating systems don't. It's ultimately a matter of user convenience.


Yeah, but Docker provides pretty good isolation if done right, it's a good start. MacOS sandbox is limited in functionality and poorly documented, but still looks promising.

The only problem is that nobody cares, so there's no evolutionary pressure for OS developers to make their products safer in the sense the applications are safe for user.


After 18 years of Mac-abstinence, I just bought a MacBook Air and realized there is apparently no way to change the App Store language without changing region and payment method. WTF? That seems like the most basic thing one could imagine. What has happened to Apple?


I was able to switch the App Store language from English to Spanish by changing my primary language in System Settings > Language & Region > Preferred Languages.

It didn't require me to switch my region or payment method.


That seems like classic Apple, really.


Why did you think Apple was user friendly or flexible...it's the Apple way or the highway. Most only stick around because of the currently superior hardware


A stern warning not to travel to the US for any reason whatsoever.


That argument is not sound. English is an official language of India, of course Indians are much more likely to seek work in the UK and the US than people from Latin America. You have failed to present any evidence concerning the skill levels of Indian H1B holders, and, moreover, since India has the largest population of all countries, those 130M college graduates must have gone through some very tough selection.


> English is an official language of India, of course Indians are much more likely to seek work in the UK and the US than people from Latin America.

The U.S. is also much closer to Latin America, and has a large Latino community already. The disparity in H1bs (70% versus 2% for Mexico/Brazil/Colombia) is just too huge to explain by language preferences.

> since India has the largest population of all countries, those 130M college graduates must have gone through some very tough selection.

Not at all. Outside the top schools standards plummet. Half of those graduates are not qualified to work in their fields: https://www.tbsnews.net/bloomberg-special/worthless-degrees-...


This is the most desperate and feeble attempt to save an argument I've seen in a long time. How about you try find some actual evidence to support your claims instead these wild constructions.

> The disparity in H1bs (70% versus 2% for Mexico/Brazil/Colombia) is just too huge to explain by language preferences.

You base your position on these kind "hunches"? "Just too huge to explain". No, it isn't just too huge to explain. It's really that simple. India is the largest country of the world in terms of population, English is an official language of India, hence there is a substantial amount of people with high qualifications who use those qualifications to seek employment in major English speaking countries like the US and the UK with visas like the H1B. There are also many Chinese people in those countries but the language barrier makes it much harder for them.

People from Latin America have a hard time getting hired for highly qualified jobs in the US for various reasons, one of them being the language barrier.

By the way, if there was some conspiracy to hire Indians with low qualifications, then you'd still have not done anything to explain why these people should be Indians as opposed to Latin Americans. The argument makes no sense. Can't you see that? I'm genuinely puzzled.


The second largest recipient of h1bs in 2025 was Cognizant, an Indian company that was found liable by a jury for favoring Indian workers: https://insider.govtech.com/california/news/jury-finds-discr...


Now you're replacing a general statement about a whole subcontinent with one individual case of a company from this year. I'm done with that conversation. Have a good day!


Cognizant is the second largest recipient of H1bs, accounting for almost 5% of all H1bs approved in 2024. So we have outcomes that don’t make sense (one country receiving 70% of H1bs) plus proven discrimination against American workers by the second largest H1b visa recipient.

I’m an armchair commenter, not a federal prosecutor. But this all seems very fishy. If I were in the administration, I’d start investigating all the major H1b employers to see whether there’s preferential hiring of Indians going on.


Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: