Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

The pre-ai reaction was also unwarranted: committing a massive amount of potentially unmaintainable handwritten code isn't a necessarily positive contribution and any decent engineer (or person tbh) would understand that & not expect gratitude, no matter how concerted their effort.

In that context, I wouldn't expect an idiot (of which there has always been far too many in this industry) to change their behaviour in a post-ai world. They were always out of line & continue to be.

Fwiw, a non-technical employee in my workplace has begun submitting ai-generated prs to internal repos I maintain & they're of excellent quality, with review feedback graciously received & expediently addressed, so this isn't a matter of the idiots not being technical, it's an attitude problem.

 help



Sure, but I think we should judiciously avoid the false equivalence yielded by only looking at this on a developer-by-developer basis, rather than systemically. The truth is that in practice, AI is not a neutral force. Obviously AI can enhance the output of smart, experienced developers and improve the efficiency of code reviews, mitigating the effects of garbage PRs. However, it increases the percentage of PRs contributed by entirely inexperienced and/or not-smart devs from zero to, potentially, the majority. It entirely removes the barriers inherent to coding that kept Dunning-Krueger cases from submitting ill-conceived or poorly constructed changes— actually getting them to run in some way, even poorly. That makes them much more difficult to distinguish from well-constructed PRs than those from, say, someone cargo-culting code from tutorials.

Moreover, as these tools become more expensive, people with money to blow on tokens will be able to drown maintainers that don’t have enough token-cash to help them deal with it. People see this as mostly a matter of time and energy, but I reckon it will soon be a financial issue.


I see AI as a barrier remover. Unfortunately some barriers are good or minimally necessary.

I think we'll need to revert to artificial barriers such as bonds, e.g., if you want to do a PR to my repository you need to pay a 10 dollar bond. If the PR is good and I want future PRs, you keep your bond. If it's slop and spam, I get 10 dollars for my time.


This is entirely too much friction in the wrong place. Public open source will simply die before a system like that ever becomes the norm.

The previous barriers worked because they were organically perfectly in line with a contributor's internal incentives. A contributor gains very little benefit from submitting a patch; the likelihood is infinitesimally small they'll ever get any career advancement, financial recompense, or even much community recognition for it. At most, it shifts the burden of maintaining the code they're contributing from themselves to the community / long-term maintainers. The real incentive for a contributor was making the patch, because they get to see the feature or fix they want made for the software. The previous barriers were in making the patch, and contributors would overcome that friction to gain the benefit of having the patch they want. Moving the barrier to merely submitting the patch after it has already been made will simply result in people not bothering, because there is very little incentivizing them to deal with the friction.


I don't disagree, where is the right place for the friction?

A couple of alternatives are:

1) more reliance on systems to track reputation across projects. I'm sure Microsoft, in the form of GitHub, will love to sell you a partial fix to the same problems it so enthusiastically helped to create. But there are the familiar problems of surveillance, identity theft, office politics, and system-gaming, and it doesn't on its own offer an onramp for new players.

2) in-person coding tests at the same Pearson test centres where people take most of their Cisco (and accounting, and ...) exams today. Not as expensive or inconvenient as you might think, but not the cheapest and easiest, and it certainly has the same concerns re. surveillance and identity theft


I agree with the bond in theory, but that would entirely stop contributions from people in economies where a shady maintainer could keep their code, and their weekly food budget.

We already have trouble with people maintaining open source projects without getting paid, now you want people to pay for the privilege to participate in free work?

It's a bond not a fee. If the maintainer feels that it's spam, they keep the bond. If they feel like it's not, they leave it.

That sounds like a massive headache for maintainers and opportunity for people to cry foul. That gets messy so fast.

That doesn't change that E(cost of submitting a patch) is nonzero.

Or create pull requests and earn crypto!

https://gitearn.vercel.app/

https://gitreward.com/


> Fwiw, a non-technical employee in my workplace has begun submitting ai-generated prs to internal repos I maintain & they're of excellent quality, with review feedback graciously received & expediently addressed, so this isn't a matter of the idiots not being technical, it's an attitude problem.

It is hard for me to imagine another engineering discipline that would be totally fine accepting work from those who don't have the actual engineering background required to do the work.

If I had to push this take to the extreme: software engineers never learned class solidarity and it's now biting the industry in the ass.


Man, you must hate those handymen who put up YouTube videos showing how to do basic home maintenance. A truly class-conscious handyman would insist that the homeowner hire them to replace a light switch.

How this is equivalent at all? The proper equivalence would be "You should be happy a random passerby decided to re-wire your home after watching a youtube tutorial and thank him accordingly".

There certainly exists a class of electricians who believe that homeowners shouldn't be changing a light switch, and jurisdictions exist where a permit is required to do so.

I have seen some homeowners who shouldn't own a screwdriver or a hammer try to do minor electrical work. It was not pretty.

I've often thought that it would make sense to have a DIY electrician's certificate, proving that you know how to do basic home wiring, such as outlets, switches, ceiling lamps, basic solar (DC and AC), installing new wire, load calculations, and connecting to breakers in a service panel

I have no problems pulling a permit and going through an electrical inspection.


In the Netherlands anyone may do the wiring of their house themselves but if it is a substantial modification (or an entire installation) a certified electrician has to sign off on it. They are not likely to stick their neck out for any funny business.

That said, I've seen plenty of work from experienced certified electricians that was complete garbage. Not just a few things, more than half their work.

Things like, they cut half way though the wire removing insulation. When you pull the socket out of the wall the wire breaks. So you have to strip it again but they also cut it to short so you have to pull a new wire into the tube. Then you discover the tube is a bunch of segments behind the wall or it has multiple sharp 90 degree corners and the wire wont move or the new wire wont go in. Then you have to open up the walls, new plaster, new paint, do you want one wall with wall paper that doesn't match or will you go for new wall paper for the entire house/floor? All because they did multiple terrible things.


You've got romex in conduit?

I'm not an electrician, just a DIY enthusiast (and the parent commenter) - but in North American construction, romex in conduit is basically unheard of in residential builds - it's stapled to the framing during construction, so once you cut wire short, you've immediately put yourself in a pickle.


We use rigid 16 mm pvc conduit (bend with heat) with 2.5mm2 wires in brown(+) blue(-) yellow/green stripe(gnd) and 1.5mm2 black for switched wires.

Ideally you bend the pipe as little as possible and make the corners as smooth or as blunt as possible. If done properly you can later add extra wires. If not done properly you only get the illusion you can.

With romex you have to anticipate future changes.


Here in the states, putting Romex in conduit is considered a code violation. You're supposed to use THHN wire in a conduit.

I wish professional electricians use pigtails and wago lever nuts instead of wire nuts. Working an old house, I've had to cut way too many wires almost too short just to add another neutral or ground.


I don’t think they implied Romex? Conduit is mandatory in multi-family construction here in San Francisco, but they just use armored cable, not romex in conduit.

Come on, are you really going to strawman "engineering should be inherently disqualifying" into "so people shouldn't DIY in their own home"? Please try a little bit harder.

I’m not strawmanning anything. I’m pointing out what I believe to be ridiculous gatekeeping. Software engineering isn’t some holy magic that must be kept from the masses.

I can go on YouTube and get step-by-step instructions on how to safely wire an entire house. In many jurisdictions I would even be allowed to do that.

I can get instructions on how to completely redo a bathroom, down to the studs and up through the waterproofing and tiling. I can get instructions on how to do foundation repair, which might be a bit much for me but can help me ask the right questions to keep the contractor I hired honest.

These are all examples of experts acting as “traitors” to their particular group. In reality, technology enables both specialization and despecialization. Some people try to cling to their specializations and cry “class warfare” when threatened.


Alright, I guess I'll take the bait. Not much else going on today anyway.

> I’m pointing out what I believe to be ridiculous gatekeeping.

I am not gatekeeping. I am stating that we collectively exist in a professional caste and that will go away or lose influence if you let it do so. Other professional castes do this exact same brain exercise and that is why they have protections in place.

> Some people try to cling to their specializations and cry “class warfare” when threatened.

I'll be blunt and just state that I am post money and not remotely threatened by this stuff anymore. I am observing that software engineering as a profession is blindly giving away a ridiculous amount of leverage in the world - in the form of dollars and influence, the value of their labor - and more crucially doing it to themselves.

I will be fine whichever way this shakes out, and I don't really have a dog in this fight short of having spent decent time in the OSS space and finding it sad what it is turning in to.


Your initial post on class solidarity was extremely reasonable (even if I disagreed with it - see my comment above) but to follow it up with a post describing castes in a non-negative light is wild.

In hindsight, the word "caste" is too heavily loaded and I should have chosen a different term. Sorry for the shit choice.

It's not meant to be taken negatively, and is purely a term that I was choosing to represent "hey, you all need to consider better coordinating/representing/holding the line as a group".


"Guild" might have been a better choice :)

Noted! I'll keep it in mind, it's a great suggestion.

> I am stating that we collectively exist in a professional caste and that will go away or lose influence if you let it do so. Other professional castes do this exact same brain exercise and that is why they have protections in place.

I consider this mode of thinking selfish and anti-progress. It’s pretty much exactly what Americans decry about unions.


> It’s pretty much exactly what Americans decry about unions.

If you consider a union to be a "bad thing" then we are likely going to talk past each other for eternity.


I support workers being compensated for their value; what I dislike are protectionism and ossification.

I am fortunate that software has paid me well to work on problems I am enthusiastic about solving. I understand that a lot of people on e.g. the Ford assembly line are not there because they want to make excellent cars, they’re there because they need a job. I acknowledge that I have no idea what it’s like to structure one’s life and priorities this way; it is just completely alien to me to align oneself with the task rather than the mission. And I believe that task-identification mindset is why we hear about resistance to electrification because EVs require fewer assembly steps, or Teamsters cutting power cables at trade shows if the vendor dares to plug in a TV themselves.


You're throwing around the term "ossification" like it's a guarantee or necessity tied to anything being discussed here, and that's just not the case.

Software developers should not ossify. Nowhere have I said that LLMs as a tool - used by those in this profession! - should be shunned. I was pointing out that people being totally okay with those outside our profession, those without the necessary skillsets, directly doing our work not only devalues our work.


I’ll be blunt and say you certainly sounds like someone “post money” talking if castes and such. Glad you got your nut and do not care how it shakes out.

What is sad about oss? What is it turning into? I will say far before ai came in oss was a few arms deep in the techfluqncer culture where motivations were driven by gh stars and follow counts rather than a genuine interest. Or maybe what was a genuine interest became twisted as the culture changed.


> Glad you got your nut and do not care how it shakes out.

I do care, it's why I commented what I commented. ;P

I already acknowledged that "caste" is an incorrect word choice and I could've done better there, but my core point remains unchanged.


> I already acknowledged that "caste" is an incorrect word choice and I could've done better there, but my core point remains unchanged.

Considering the reactions, it was a very amusing "mistake" to make (a bikeshedding lightning rod so to speak).

Though I guess "caste" is a bit more sensitive in some cultures, which might explain why some commentators hyperfixate on that part of your comment.


There is no need for quotes around "mistake". ;P

Assuming you're being genuine (which I have a hard time believing because your argument is quite literally a strawman, please read the definition), you're missing the context entirely. You can't conflate small DIY projects done around the house with developing software that thousands of people and institutions rely on. By all means you can go and watch a video on software development, but that does not entitle you to expect that PRs you make will be accepted to any project other than the ones you control yourself.

Please re-read the specific comment I replied to. It was someone expressing indignation that a software engineer would accept “high-quality” PRs from a non-software engineer, accusing the poster of lacking “class consciousness.”

"You can't conflate small DIY projects done around the house with developing software that thousands of people and institutions rely on. "

Who claimed that?

That was the context:

"Fwiw, a non-technical employee in my workplace has begun submitting ai-generated prs to internal repos I maintain & they're of excellent quality, "


> I can go on YouTube and get step-by-step instructions on how to safely wire an entire house.

Sure, and I'd be comfortable doing that with my house. I wouldn't be comfortable with some random person off the street coming up and saying to me, "hey, I watched a bunch of YouTube videos about wiring; you should invite me in to rewire your house".

That is the proper analogy here.


I would argue the result depends 90% on mentality. Experience only makes you work faster.

Fun conversation with a high end coder: ME: I would write it from scratch rather than introduce a dependency. It's not that I don't trust people but I just don't trust people to live up to the specific standards for the specific job. HIM: For what I cost no way I could justify that. ME: It looks like a circus this thing of yours. HIM: Keep the secret!


>It is hard for me to imagine another engineering discipline ... engineering background required to do the work.

Well, that would be because you don't really need to be a real engineer for what people call "software engineering". 50 years ago - maybe, 30 - maybe, but way less.

But for the last 15 years at least - you don't really need a degree to build meaningfull software.

Maybe you need it to build a new compiler or to work on a "close to metal" project etc.

But thats is. Most of people in the industry are called engineers, but let's be real - we are not the same kind of engineers as people who build brindges or airplanes.


> we are not the same kind of engineers as people who build brindges or airplanes.

No shit. I'm arguing that we should be held to similar higher standards.


What if the degree doesn't really help with that?

Of course the degree doesn't help with that. What helps is accountability. When a bridge collapses, and it turns out the engineer who drew the plans made a mistake, they can be and often are held criminally liable.

When's the last time you saw a software engineer prosecuted for criminal negligence after a design error took down Cloudflare or whatever? Attitudes in software development will not change until that becomes a viable scenario that people anticipate when making design and implementation decisions.


Far longer. It was never needed. Skills were needed. How they were gained had no effect on what people could or couldn't do.

> another engineering discipline

I think we're more like car mechanics in a lot of ways. The same way they might learn cars by working on their own, we learn computers. But I suppose that's still background of a sort.


happens all the time. Some business jerk outsources an entire initiative, forces it through review, and we get dumped with externally written crap we gotta deal with. So what if claude wrote it, actually claude is better than money wasted on those outsourced piles of crap projects

> hard for me to imagine another engineering discipline....

Well, that's already the case because you cant just call yourself an engineer and start signing off on projects. It's a legally protected title in a lot of places. You need a professional license, and can face legal liability for your decisions.

Software engineering is not engineering. Software craftmanship or even architecture would be a more accurate term. There are no devs that will go to prison if what they produce has, say, a major vulnerability. That alone disqualifies it from being engineering. There's no licensure, there's no liability, so already software development is not gatekept in any way like other engineering disciplines.

I mean, just go into an aerospace engineering office and say you want to move fast and break things, you'll get laughed out of the room.

No idea what you mean by class solidarity. There are only two; the capital owning class, and then everyone else (the working class). Most devs are working class just like everyone else.

Unless you're proposing that software should be gatekept to the level of other engineering disciplines?


> There are no devs that will go to prison if what they produce has, say, a major vulnerability. That alone disqualifies it from being engineering. There's no licensure, there's no liability

The only problem in your theory is that none of those things has anything to do with "engineering".

You're arguing that a surgeon who removes a burst appendix in a hygienic environment isn't "practicing medicine" if they aren't licensed to do that in the jurisdiction where it happens. You'd have to be insane to believe that.

Engineering means solving problems. A license is a license. They're unrelated concepts.


> Well, that's already the case because you cant just call yourself an engineer and start signing off on projects. It's a legally protected title in a lot of places. You need a professional license, and can face legal liability for your decisions.

This was part of the implication of my point, yes.

> No idea what you mean by class solidarity. There are only two; the capital owning class, and then everyone else (the working class). Most devs are working class just like everyone else.

Yes, albeit a highly compensated portion of the working class. Software engineers should protect their own field a bit more.

> Unless you're proposing that software should be gatekept to the level of other engineering disciplines?

I do not like or want to use the term "gatekeeping" here, but yes, I think that software engineering should be held to a higher standard. You can't have it both ways.


Ooof. This is a big topic - I understand where you're coming from, but it's a common sentiment & one I've recently come to disagree more & more with.

Firstly: class solidarity. The apparent death of (or at least notable decline in) class solidarity is popularly lumped upon software engineers because they're relatively highly paid, but it's equally as absent in newly created positions (mainly within the IT sector) at all salary levels. There's been a concerted effort to erode class awareness in the private sector for the past 40+ years & it's been effective across all sectors, mostly in newly created job categories without pre-existing union culture. It's in no way specific to software engineering as a role nor to high salary positions.

Secondly: ai & llms. Currently these technologies are monopolised by corporate entities, with models generally being far too inefficient to democratise, so it's obviously tempting to conflate their very existence with their owners, but if you're singling out ai usage as some kind of affordance to the capitalist class you're missing the woods for the trees. You need to separate ownership from existence/usage.


> It's in no way specific to software engineering as a role nor to high salary positions.

Yes, I agree. We are, however, on a site and in a thread that is dedicated to the role of software engineering, so I don't really care about the wider discussion at the moment.

My sole input here is that software engineering has not protected itself as a field, and it will now pay the price for that.


> My sole input here is that software engineering has not protected itself as a field, and it will now pay the price for that.

& my point in raising that this is not an issue that's unique to software engineering is to argue that the demons you're proposing software engineers protect themselves from are distractions from the root cause. You're proposing software engineers need to protect themselves from something that's specific to their field when the problem is holistic.


> You're proposing software engineers need to protect themselves from something that's specific to their field when the problem is holistic.

I have not said it's specific to their field. I've just been specifically commenting on that field.

(The lack of solidarity is perhaps specific to the field)


But your company employs said individual, whereas arbitrary drive-by patches from randos on open source projects with no consequence of submitting a mountain of garbage.

The answer: require a written proposal for changes before a patch will even be considered unless it is sufficiently small.

Also fight AI with AI: have a bot auto reject patches unless they can link to a previously approved enhancement document. Folks who commit minimal effort will f*ck right off.

Then the cognitive burden is focused on the ideas, and code authors should have at least conveyed the intent. If they actually care to invest their skin in the game then they need to collaborate and not just drop garbage on the front door.


just to clarify:

1. my company also employs its fair share of folk that would fit into the so-called "idiot" category of my post - I just thought it was of note that I have encountered exceptions to this stereotype

2. I fully support what Ladybird is doing here & find it unfortunate that they have to. I didn't intend my post to criticise their move - my example is definitely the rare exception in a sea of unmaintainable garbage. I do think however that it was already a challenging prospect to manage garbage oss prs in the pre-llm era (see umpteen posts on maintainer burnout) & I wouldn't have faulted any open source project for doing what ladybird is doing even pre-llm.


yes. github has very minimal controls for PRs (either shut them off completely, or not at all) but through GH webhooks you can essentially script "auto-close" of PRs that dont have correct preliminary approval.

it's time for there to be some really nice workflow tooling that people can plug into their GH repos that does this and other things.


Gratitude was maybe the wrong word. As the article mentions, before ai I think larger PRs, while sometimes inconsiderate, at least implied some amount of care / effort / good faith. In my experience, that was often rewarded with the maintainers at least taking a look at the code. I meant it's odd to have the same expectation when you dump 3000 lines in a pr that you won't even personally write a description for.

On this topic, "Open-Source Isn't About You": https://gist.github.com/richhickey/1563cddea1002958f96e7ba95...



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

Search: