- cross-posted to:
- [email protected]
- cross-posted to:
- [email protected]
If I was still in a senior dev position, I’d ban AI code assistants for anyone with less than around 10 years experience. It’s a time saver if you can read code almost as fluently as you can read your own native language but even besides the A.I. code introducing bugs, it’s often not the most efficient way. It’s only useful if you can tell that at a glance and reject its suggestions as much as you accept them.
Which, honestly, is how I was when I was first starting out as a developer. I thought I was hot shit and contributing and I was taking half a day to do tasks an experienced developer could do in minutes. Generative AI is a new developer: irrationally confident, not actually saving time, and rarely doing things the best way.
Even worse than it being wrong, is that by nature of the tool it looks right.
Eh, I’m a senior dev, and I don’t ban it (my boss, the director, does that for me lol; he’s worried about company secrets leaking).
In fact, we had an interview for a senior dev position, and the applicant asked if they could use AI, and I told them to use whatever tools they normally would for development. It shouldn’t come as a surprise that they totally botched the programming challenge because of it (introduced the same bug twice, then said they were very confident in the correctness of the code…), and that made it so much easier to filter them out from our hiring pool. If you’re going to use a tool in an interview, you better feel confident with it. If that dev had solved the problem significantly faster than our other applicants, I would’ve taken that to my boss to have the team experiment with it. We target budget 30 min for our challenges, and our seniors generally finish in under 20, and it took them more than our allotted time to get the code to actually run properly (and that’s with us pointing out certain mistakes the AI generated).
But no, I haven’t seen an actually productive use of AI for software development, beyond searching for docs online (which you can totally do w/ Bing or Google w/o involving our codebase). You may feel more productive because more code is appearing on the screen, but the increase in bugs likely reduces overall productivity. We’re always looking for ways to improve, but when I can solve the same problem in my bare-bones editor (vim) faster than my more junior colleagues can with their fancy IDEs, I really don’t think AI is going to be the thing that improves our productivity, actually understanding logic will. If someone demonstrates that AI does save time, I’ll try it out and campaign for it.
Anyway, that’s my take as someone who has been in the industry for something like 15 years. Knowing your tools is more important, IMO, than having more tools.
I had my suspicions before but the moment I realized for certain Elon Musk couldn’t run a software company was when he judged people by lines of code written.
Not trying to defend him, but I thought the reasoning behind doing that was to get the least obedient people to leave the company so that there won’t be a delayed push back from the employees.
In my experience working for almost 3 decades in software development, passive-agressive shit from upper management just causes the best people to leave (as they’re the ones who easilly find better jobs) leaving behind mainly a mix of the incompetent and those who never worked anywhere else (who are either already incompetent or will become so, as only ever having worked in just one company is far too narrow professional experience for anything beyond junior/mid level - you need to have seen more than one way of doing things to understand certain higher level concerns and choices in software development).
Yeah and I’d say these people left are exactly those Elon wants, he doesn’t want white guys in their 50s, he wants obedient young guys.
Sound like a variant of the good old saying “pay peanuts, get monkeys” only using a stick and threats instead of payment.
Mind you, it does sound like the kind of think somebody with his kind of personality - narcissistic shameless and dishonest salesman - would think it’s a great idea.
deleted by creator
Ew, I would hate to be in charge of code reviews at an org like that.
The proper metric is success of the actual product. We have our engineers give estimates, then hold them to those estimates and evaluate based on consistency of on-time releases and number of production bugs. At the end of the day, predictable, high quality delivery is usually more valuable than faster time to market, unless you’re in a startup or something and just need to get early adopters on-board. Judge QA by defects discovered in production and devs by defects found by QA and in production. It’s really not that hard.
The one time some manager voiced such an idea, I very overtly in front of everybody offered to make “loop unrolling” software working at the source level (compilers already do it at the Assembly level in some cases for performance) for me and my colleagues to really boost that code line count (while totally screwing maintenability).
Mind you, all devs in that meeting were loudly against measuring performance by code lines, but I like to think that suggestion of mine really hammered down the coup the grace on that “brilliant” idea.
I’ve worked as a freelancer (specifically as a Contractor) in Software Development for over a decade and more often than not I ended up having to work with some existing code base, having to deal with the design choices, coding style and bugs of somebody else, often multiple somebody elses.
There’s nothing quite as “entertaining” as having to deal with 3+ different code and design styles in the same code base because all previous developer thought their own way of doing things was the superior way so just added one more layer of their style (not just coding but, worse, software design) on top of what was already there increasing the mess, rather than work within the existing structure and style and doing some refactoring.
Anyway, in my experience having to read, understand and work with existing code that you yourself did not made is way more time costly and less pleasant than actually doing your stuff from scratch.
I’ve found they’re great as a learning tool where decent docs are available. Or as an interactive docs you can ask follow up questions to.
We mostly use c# and it’s amazing at digging into the MS docs to pull out useful things from the bcl or common patterns.
Our new juniors got up to speed so fast by asking it to explain stuff in the existing codebases. Which in turn takes pressure off more senior staff.
I got productive in vuejs in a large codebase in a couple days that way.
Using to generate actual code is insanely shit haha It is very similar to just copy pasting code and hacking it in without understanding it.
You make a good point about using it for documentation and learning. That’s a pretty good use case. I just wouldn’t want young developers to use it for code completion any more than I’d want college sophomores to use it for writing essays. Professors don’t have you write essays because they like reading essays. Sometimes, doing a task manually is the point of the assignment.
What setup are you using for junior devs to be able to query your codebase?
I was talking more generally about LLMs here
“AI” is just good for simple code snippets. (Which it stole from Github repos).
This whole ai bs needs to die already, and the people who lie about it held accountable.
The thing I dislike most about code assisting tools is that they’re geared to answering your questions instead of giving advice. I’m sure they also give bad recommendations but I’ve seen LLMs basically double down on bad code.
No they’re giving you exactly what you’re asking for. Problem is you’re not asking for advice. Your asking to “build a thing” and expecting it to read your mind.
And none of the forced tech support “AI” replacements work. And the companies don’t give a shit.
I’ve had this argument with them a few times at work. They are definitely going to replace this all with AI. Probably within the next year and no amount of us pointing out that it won’t work and they’ll end up having to bring us back, at 3x the rate, seems to have any effect on them.
I’m probably going to have to listen to a lot of arguments about this strawberry thing tomorrow.
Anyway whatever, severance is severance.
I was once in a similar position: company merger and they decided to move support offshore. We got 6 months lead notice and generous severance paid out as long as we stayed to the end. Fast forward a year and they took 85% customer approval to 13%. We got hired back at 1.5x our old pay rate, so not quite the 3x you mentioned. Hoping this works out similar for you in the end.
I have a lot of empathy for a lot of people. Even ones, who really don’t deserve it. But when it comes to people like these, I have absolutely none. If you make a chatbot do your corporate security, it deserves to burn to the ground
Me and my team take our site down the old fashioned way. Code copied from some rando on the internet.
It’s pretty much the same as AIs do - copy and past random code from Stackoverflow - but they do it automatically.
Copy pasting random snippets from search results and chatgpt until something works is how I do my job.
“until something works" At least you’re doing a better job than some people.
Some leave it at will ai told me so. And they don’t know better and put that into prod!
Reminds me of the time that I took down the corporate website by translating the entire website into German. I’d been asked to do this but I hadn’t realized that the auto translation Plug-In actually rewrote code into German, I thought it was just going to alter the HTML with JavaScript at runtime, but nope. It actually edited the files.
It also translated the password into German which was fun because it was just random characters so I have no idea what it translated into.
That’s fucking hilarious
Same happened with people using the Cloud To Butt extension which replaced every ‘cloud’ with ‘butt’ even for codes. Hilarity ensued.
I do have that extension installed. Never been bit so far. I don’t copy and paste anymore than a couple of lines at a time.
Good old
curl|sh
Can we take a moment to ask ourselves - how the hell did piping to shell become ok? We have all kinds of method’s for deploying stuff - from the age old tarball to the new shinny flat pack. But somehow we also became ok with
Curl foo | sh
Oftentimes as root.
Good. This is digital Darwinism at its finest. Weeds out the companies who thought they could save money by relying on a digital monkey instead of actual professionals.
This must sound terrible. So high pitched
Maybe so high pitched it’s out of the hearing range of most humans
as opposed to human-generated code
no common sense allowed in this thread, sir. only AI hate bandwagon please.
But at least that crappy bug-riddled code has soul!
See? AI creates jobs! Granted, it’s specialized mop up situations, but jobs!
It’ll be even more interesting in the future! Every now and then a T1000 will lose all hydraulic fluids right out it’s prosthetic anus and they’ll need someone there with a mop and bucket! Our economy lives on…
If by economy you mean some of us are needed to mop up hydraulic ass-juices at gunpoint I suppose you’re technically correct. At least they have to feed us, right?
…right?
Having spent most of my career working as a senior contractor, which often meant landing on code bases with 3+ layers of fuckups, I can only imagine how painful it will be to end up having to clean and fix AI generated code, since that doesn’t even have a consistent coding style or pattern of design errors and bugs.
Also it is pure junk. Chat-GPT code may come out fast on the screen but it’s garbage. I tried python and c++ both just pure garbage. Sure I got it to do what I wanted but only after a day of hair pulling repetitive madness. Simple task, open an image and invert it . Then we’ll it opened the image but didn’t invert. Or maybe it’s upside down. Can you open the image right side up and invert it…fuck fuck, why is the window full screen? Did I ask for full screen, shit heavens no! Anyway it’s a fuckin idiot just rambling code at me.
Open it how using what at what size what codec where, for how long, for what purpose, using what data structures, use what libraries, what versions. You sound like my PO trying to request an update to software they have no comprehension of.
I use it for Ansible, so not for code, and just to reduce the time my brain is exposed to Ansible.
If all you said to me was open an image and invert it, I would probably turn it upside down as well. What are you trying to get it to do?
It’s just an example. I did get useful code from all this effort but usually the first prompt gets the closest. Everything else is like a bad genie story. Exactly like this: https://youtu.be/lM0teS7PFMo?si=yMtEaVkpSrn9q5Ap
Probably make the bright pixels dark and the dark pixels bright.
So what they should have said is to make the image negative.
That’s being a standard image editing function since the days of film but you have to use the correct terminology.
It’s called invert in Photoshop:
https://www.adobe.com/creativecloud/photography/discover/invert-colors.html
But are the shareholders pleased?
I’ve been laughing at this quote for 5 minutes straight
It’s so good
He knows he’s right
Also: I code sometimes, and all of my code is of masterpiece quality. I cannot debug my own code, I ask for outside help and we have to dismantle the NT kernel to find out what’s gone wrong
No sh*t, this is what I predicted from day one.
We should have looked to melroy
Thank you! That is indeed a valid point. I was hoping more people came up with this valid remark. Do you have any other questions or predictions you would like to know? So that we don’t get “surprises” in the field of technology again?
Please hit me with some predictions :D
Sure!
- More and more (AI) spyware / malware is getting injected into projects and operating systems. Without the user consent. Mobile phones, laptops, desktop PCs, smart devices, etc. This comes from companies, but also from governments (no, not just China, but also US and EU).
- AI bubble itself will burst for the “normal users” and most companies who won’t really benefit from AI / LLMs as they thought they will. This will be apparenty only after several years. Where the highly skilled developers left the companies, and you are left with software engineers using AI tools which generates wrong code. The damage LLM (like AI Code generation) is doing and will be continue to do in the upcoming years is very untransparent, but it won’t be nice. We suddently are not getting AGI.
- More research and efforts will be put into alternative computers, like computers based on biology. Like using living cells. After all nature is so much more efficient then our current technologies. This could fix the energy demand issues we now see with AI.
- Biology computer will then also create huge moral issues. Since, how do we know the cells are not becoming aware? How do we know it won’t feel pain or the cells are feeling trapped? After all, we, humans, don’t even know how conscious really works and self aware.
- Users & companies want to get back in control over 5 or 15 years from now. So their could be a big move back from “Cloud” to on-prem. You are already seeing this now with the fediverse.
- The internet becomes too much centralized and controlled by goverments. Blocking public DNS IPs. Overruling them. The only answer would be is to create a much more decentralized internet alternative, so over 20 or 30 years from now (so we can still talk which each other about issues in the goverments par example). The current internet is just too fragile. And the root of the problem is already DNS. Meaning you need to basically start from scratch.
- Over 80 years Windows might only be used by corporate businesses. Most people might only use Android or any Linux based distro. This mainly depends on how fast we change our education process, so young people learn about alternatives. And schools should stop promoting and forcing people to use Microsoft products only. If schools won’t change, then we might have a huge issue, and this topic won’t be valid.
- Google will be split into multiple companies.
- Microsoft might be split later as well into multiple companies, but only much later, after Google.
- … Should I continue or stop here…?
@[email protected] @[email protected]
#it #software #ai #predictions
So you predicted that security flaws in software are not going to vanish with AI?
I predicted that introducing AI on software engineer (especially juniors) will result in overall worse code, since apparently people don’t feel responsible for the genAI code. While I believe the responsibility is still fully at the humans who try to deliver code. And on top of that, most devs are not doing good code reviews in general (often due to lack of time or … skill issue). And now we have AI that generates code which are too easily accepted on top of reviewers who blindly accept code… And no unit tests or integration tests… And then we have this current situation. No wonder this would happen. If you are in software engineering, you would know exactly where I’m talking about. Especially if you would work at larger companies.
All software has bugs. I prefer the human-generated bugs, they’re much easier to diagnose and solve.
My point exactly, now you have genAI code written by AI, who doesn’t know what it is doing. Instructed by a developer, who doesn’t understand the programming language. Reviewed by a co-worker, who doesn’t know what is doing on. It’s madness I tell you!
Good. Maybe if the stuff trashes enough of our infrastructure somebody somewhere will actually figure out that it’s bad and get rid of it forever.
I know, it’ll never happen. But a man can dream.
trashes enough of our infrastructure somebody somewhere will actually figure out that it’s bad and get rid of it forever
thinking Neoliberlism.
deleted by creator
I always claimed in job interviews to be good at debugging, but there are no certifications for debugging and there’s really no way for an interviewer to verify such a claim. So even though it is an incredibly important skill, companies just do not look for it. There is also the hilariously misguided belief that good coders do not produce bugs so there’s no need for debugging.
There is also the hilariously misguided belief that good coders do not produce bugs so there’s no need for debugging.
i’m terrified of people who think this way. my experience has been that they are much less inclined to check for bugs in their code and tend to produce much buggier code
There is also the hilariously misguided belief that good coders do not produce bugs so there’s no need for debugging.
Yeah, fuck this specifically. I’d rather have a good troubleshooter. I work in live events; I don’t care if an audio technician can run a concert and have it sounding wonderful under ideal conditions. I care if they can salvage a concert after the entire fucking rig stops working 5 minutes before the show starts. I judge techs almost solely on their ability to troubleshoot.
Anyone can run a system that is already built, but a truly good technician can identify where a problem is and work to fix it. I’ve seen too many “good” technicians freeze up and panic at the first sign of trouble, which really just tells me they’re not as good as they say. When you have a show starting in 10 minutes and you have no audio, you can’t waste time with panic.
Good programmers (and I don’t mean just at the coding level) make less bugs exactly because they want to avoid bug fixing as much as possible.
They still have to do debugging - and hence have to be good at it - just less often than if they didn’t invest any time into figuring out ways of working that reduce the rate of bugs in their work (and, again, this is at more levels than just coding).
I think that misconception of “good coders do not produce bugs” in anchored in the totally wrong idea that it’s at all possible to make code without bugs - the way I see it the path to being a “good coder” must go through being good at debugging and just wanting to avoid doing it as much because how how much more time it takes to have to go all the way down to using the debugger to find bugs than doing things like at least some analysis upfront of the program requirements, using proper naming conventions to reduce the likelihood of the kind of bugs that comes from confusing variables and structuring you code so that you don’t get lost or don’t forget things (especially for code you don’t see for months and later come back to having forgotten the logic you were following with it).
I’ve done some programming without proper debuggers (embedded stuff in shitty shit microcontrollers, shader programming) and it’s a total PITA.
The pain in the arse which is debugging is what motivated me to, as my career progressed, improve my coding, improve my software design, improve my systems design, even improved my software development process and standards and eventually that even extended to getting those I worked with to also improving those things as I sometimes ended up having to debug their bugs.
Debugging definitelly makes better techies, IMHO, mainly because of the lengths people will go to in order the avoid having to do it.
AI code is not clever. It’s all developers averaged. Even if it worked properly, you’d get average quality code.
It’s rather lazy and cheap. This is where the quality is lacking.
deleted by creator
I don’t like the term “clever” in code, because sometimes it means “I’m too dumb to understand it”. Simply don’t touch clever code, unless you really understand it.
Best example is the fast inverse square root function in Quake. Yeah… it’s clever, but replace it by simple maths and let Quake have performance problems.
On the other hand, using AI for more than assisted coding is never clever. Some day some fuck will use it in medicine and will actually kill people. AI is not at fault here! It’s the programmer who killed a patient in this case by being irresponsible and lazy.