this post was submitted on 25 Jan 2024
330 points (97.1% liked)
Asklemmy
43817 readers
873 users here now
A loosely moderated place to ask open-ended questions
Search asklemmy π
If your post meets the following criteria, it's welcome here!
- Open-ended question
- Not offensive: at this point, we do not have the bandwidth to moderate overtly political discussions. Assume best intent and be excellent to each other.
- Not regarding using or support for Lemmy: context, see the list of support communities and tools for finding communities below
- Not ad nauseam inducing: please make sure it is a question that would be new to most members
- An actual topic of discussion
Looking for support?
Looking for a community?
- Lemmyverse: community search
- sub.rehab: maps old subreddits to fediverse options, marks official as such
- !lemmy411@lemmy.ca: a community for finding communities
~Icon~ ~by~ ~@Double_A@discuss.tchncs.de~
founded 5 years ago
MODERATORS
you are viewing a single comment's thread
view the rest of the comments
view the rest of the comments
A few things happened pretty quickly.
During the pandemic, tech profits soared which led to massive hiring sprees. For all the press about layoffs at the big guys, I think most still have more workers than they did pre-pandemic.
Interests rates soared. Before the pandemic interest rates were ludicrously low, in other words it cost almost nothing to borrow money. This made it easier to spend on long term or unclear projects where the hope seemed to be "get enough users, then you can monetize." Once interest rates rose, those became incredibly expensive projects, so funding is now much more scarce. Companies are pulling back on bigger projects or, like reddit, trying to monetize them faster. Startups are also finding it harder, so fewer jobs.
And of course, AI. No one is quite sure how much that'll change the game but some folks think most programmers will be replaceable, or at least 1 programmer will be able to do the work of several. So, rather than hire and go through everything severance etc might entail, I think a lot of companies are taking a wait and see approach and thus not hiring.
I want to offer my perspective on the AI thing from the point of view of a senior individual contributor at a larger company. Management loves the idea, but there will be a lot of developers fixing auto-generated code full of bad practices and mysterious bugs at any company that tries to lean on it instead of good devs. A large language model has no concept of good or bad, and it has no logic. It'll happily generate string-templated SQL queries that are ripe for SQL injection. I've had to fix this myself. Things get even worse when you have to deal with a shit language like Bash that is absolutely full of God awful footguns. Sometimes you have to use that wretched piece of trash language, and the scripts generated are horrific. Remember that time when Steam on Linux was effectively running
rm -rf /*
on people's systems? I've had to fix that same type of issue multiple times at my workplace.I think LLMs will genuinely transform parts of the software industry, but I absolutely do not think they're going to stand in for competent developers in the near future. Maybe they can help junior developers who don't have a good grasp on syntax and patterns and such. I've personally felt no need to use them, since I spend about 95% of my time on architecture, testing, and documentation.
Now, do the higher-ups think the way that I do? Absolutely not. I've had senior management ask me about how I'm using AI tooling, and they always seem so disappointed when I explain why I personally don't feel the need for it and what I feel its weaknesses are. Bossman sees it as a way to magically multiply IC efficiency for nothing, so I absolutely agree that it's likely playing a part in at least some of these layoffs.
So basically, once again, management has no concept of the work and processes involved in creating/improving [thing], but still want to throw in the latest and greatest [buzzword/tech-of-the-day], and then are flabbergasted why their devs/engineers/people who actually do the work tell them it's a bad idea.
I'm pretty excited about LLMs being force multipliers in our industry. GitHub's Copilot has been pretty useful (at times). If I'm writing a little utility function and basically just write out the function signature, it'll fill out the meat. Often makes little mistakes, but I just need to follow up with little tweaks and tests (that it'll also often write).
It also seems to take context of my overall work at the time somehow and infers what I'll do next occasionally, to my astonishment.
It's absolutely not replacing me any time soon, but it sure can be helpful in saving me time and hassle.
Those little mistakes drove me nuts. By the end of my second day with copilot, I felt exhausted from looking at bad suggestions and then second guessing whether I was the idiot or copilot was. I just can't. I'll use ChatGPT for working through broad issues, catching arcane errors, explaining uncommented code, etc. but the only LLM whose code output doesn't generally create a time cost for me is Cody.
If you tried copilot at the beginning, it's improved a lot since, now it's using GPT-4.
Tragically, this seems to be the minority viewpoint - at least among CS students. A lot of my peers seem to have convinced themselves that the hallucination machines are intelligent... even when it vomits unsound garbage into their lap.
This is made worse by the fact that most of our work is simple and/or derivative enough for
$MODEL
to usually give the right answer, which reinforces the majority "thinking machine" viewpoint - while in reality, generating an implementation of&
using only~
and|
is hardly an Earth-shattering accomplishment.And yes, it screws them academically. It doesn't take a genius to connect the dots when the professor who encourages Copilot use has a sub-50% test average.
In my experience copilot for neovim is pretty useful if you
If you expect it to whip out of thin air what you really need and not have you correct it in several places, learn to code without it first.
To add to this, at my company, we've received a mandate to avoid putting any code into an AI prompt because of privacy concerns. So effectively no one is using it here.
Yep as far as most companies should be concerned, using something like CoPilot means giving free license to Microsoft to all your trade secrets and code that you input.
We had the same. And you would have thought for a heavily regulated industry weβd keep it that way.
But no, some executive wonk from Microsoft flew over, gave our c-suite a βitβs safe, promiseβ chat over champagne and lobster, and now weβre happily using copilot.
There's your mistake, treating bash like a language and not like a scripting tool. Its strength is that it's a common standard available on almost every machine because its older than most of us, its weakness is that it's full of horribly outdated syntax because its older than most of us. If used to script other processes it's great, but when you start using it as a language then the number of ways you can do something horrible that sort of works makes JavaScript look slick!
I completely agree, although I think AI is more likely to have impact marketing, communications, PR, creative and PM type roles (and there are a lot of those in tech companies). I suspect we will see a noticeable reduction in tech workers over the next decade.
Are we great again yet?
I'm here to repeal and replace good things, and I'm all out of "replace".
OMG I luv this:-) So, in your honor:
Let's not throw the baby out with the bath water. AI had the potential to alleviate a lot of pressures of society, to free up much of our time spent doing tedious mindless tasks. We just need to make sure to use it for the benefit of the many rather than the profit of the few. I don't want a union that wants to keep labor busy and well compensated, I want a union that keeps people safe, happy, and compensated properly
We're like a century past innovation making our 40 hour work week into a 20 hour one
I fully believe we'll get a standardized 60 hour work week before we get a 20 hour one. Hell, I'm pretty sure we'd relegalize slavery before we get a 20 hour work week. Your average American will bend over backwards for a chance to please "the boss" and actively rat on their colleagues for avoiding work because our cultural understanding of loyalty is functionally equivalent to boot licking.
https://www.penncapital-star.com/commentary/slavery-never-really-ended-because-13th-amendment-still-allows-it-michael-coard/
Yeah, except there's no way the owners would give up any of the profits for the betterment of society. Every technological improvement since the industrial revolution made productivity skyrocket, and yet the capitalists made sure working people were still hovering just above destitution. The only reason some of us have it better is because unions fought them, and that includes Luddites that would destroy the means of production.
A lot of technology problems and utilizing AI for the betterment of humanity could all be dealt with easily if we just removed a large chunk of the bloated administrative, management and ownership hogs at the top that contribute nothing, stall everything and constantly sabotage development with their politics, infighting and warring with competitors. If you remove the profit factor, corporate greed and economic shortsightedness in these situations, a lot of problems can be dealt with fairly easily and fairly quickly.
Unfortunately, we are greedy monkeys who want to rule the world and once you give power to one monkey or a small group of monkeys, they immediately try to overpower all the other monkeys and rule the jungle.
Note that this also impacted other projects that take a lot of capital up front, then provide a return over a very long term. There was a nuclear power plant project with NuScale in Utah that got shelved over this; with interest rates suddenly going from way low to way high, the economics get upended.
I'd bet that in general, infrastructure spending dropped across the board.
This is true right now. If you know how to use AI tools, it's not that hard to work 5-10x faster as a programmer than it used to be. You still have to know what you're doing, but a lot of the grunt work and typing that used to comprise the job is now basically gone.
I have no idea, but I can't possibly imagine that that's having no impact on resource allocation and hiring / firing decisions.
Lol AI ain't that good, bud.
Want to have a programming contest where speed is a factor?
I actually looked this up, and the studies seem to agree with you. That one says a 55% increase in speed, and another says 126%.
All I can really say is, I'd agree with the statement that a single 3-hour task isn't real representative of the actual overall speedup, and my experience has been that it can be a lot more than that. It can't replace the human who needs to understand the code and what needs to happen and what's going wrong when it's not working, but depending on what you're doing it can be a huge augmentation.
What you're missing is that 95% of programming projects fail, and it's never because the programmer didn't code fast enough.
Speed-up isn't why I have a team instead of being a solo act.
There's also the pure reality that, yeah, it's easier today to get a project off the ground than ever before, and AI is good at that, but you know what AI is absolute shit at? Modifying ludicrously cumbersome, undocumented, brutally hacked together legacy code and addressing technical debt - the two most common tasks of most actual software engineers.
True.
Good thing most companies aren't stuck with ludicrously cumbersome, undocumented, brutally hacked together legacy code bases. /s
I can't even type that with a straight face.
So true.
Working with GPT actually helped me write better code, because it's more familiar with good patterns in unfamiliar languages and frameworks and can write idiomatically. It got me out of one-language-centric habits I hadn't known I had.
Yes, it's 100% true that the person driving the AI needs to have good design sense of what they want the final system to look like, and still work well with their team. You can fuck it up faster if you can code faster, absolutely that's true.
What you said, I know that. Do the people that run these companies know that?
Yeah. Exactly. They did the same to various degrees when web frameworks first hit the scene, and numerous other advancements before and after.
But as you said, the new tech genuinely does make us both faster and better.
It just doesn't fix the crap parts of the job that the CEOs always hope it will. (As someone else pointed out, it specifically doesn't magic wand away decades of technical debt, haha.)
I would say a 3-hour-task isn't representative in the other way around. When you tackle a 1000-hour task, you'll probably spend more than 1000 hours working out what the requirements even are. A significant portion of my workday are meetings, not coding.
And with a long-form task, you'll go back reading existing code much more often than writing new code, too.
I love the speed-up. And I'm sure it factors into CEO and CIO decisions. But they're on their way to learning, once again, that "code faster" never had anything to do with success or failure in efforts that require programmers.
Source: I sought great power, and I became one of the fastest coders, but it didn't make my problems or my boss's problems go away.
Can you elaborate on this part? What's your idea of proper usage?
So maybe I don't know what I'm talking about. I will only share what I have experienced from using them. In particular I haven't messed with Copilot very much after the upgrade to GPT-4, so maybe it's a lot more capable now.
In my experience, Copilot does a pretty poor job at anything except writing short blocks of new code where the purpose is pretty obvious from context. That's, honestly, not that helpful in a lot of scenarios, and it makes the flow of generating code needlessly awkward. And at least when I was messing with it there didn't seem to be a way to explicitly hint to it "I need you to look at this interface and these other headers in order to write this code in the right way." And, most crucially, it's awkward to use it to modify or refactor existing blocks of code. It can do small easy stuff for you a little faster, but it doesn't help with the big stuff or modifying existing code, where those are most of your work day.
To me, the most effective way to work with AI tools was to copy and paste back and forth from GPT-4 -- give it exactly the headers it needs to look at, give it existing blocks of code and tell it to modify them, or have it generate blocks of boilerplate to certain specifications ("make tests for this code, make sure to test A/B/C types of situations"). Then it can do like 20-30 minutes' worth of work in a couple of minutes. And critically you get to hold onto your mental stamina; you don't have to dive into deep focus in order to go through a big block of code looking for things that use old-semantics and convert them to new-semantics. You can save your juice for big design decisions or task prioritization and let it do the grunt-work. It's like power tools.
Again, this is simply my experience -- I'll admit that maybe there are better workflows that I'm just not familiar with. But to me it seemed like after the GPT-4 transition was when it actually became capable of absorbing relatively huge amounts of code and making new code to match with them, or making modifications of a pretty high level of complexity in a fraction of the time that a human needs to spend to do it.
I wonder if it might be the specific type of work that you do that allows for this. I don't pay for ChatGPT, so I wouldn't know the quality of the code it outputs with GPT-4, but I personally wouldn't blindly trust any code that comes out of it regardless, meaning I'd have to read through and understand all the generated code (do you save time by skipping this part maybe?), and reading code always takes longer and is overall more difficult than writing it. On top of that, the actual coding part only accounts for a small fraction of the work I do. So much of it is spend deciding what to code in order to reach a certain end goal, and a good chunk of the coding (in my case at least) is for things that are much easier to describe with code than words. So I'm still finding it hard to imagine how you could possibly get anything more than a 1.5x output improvement.
The main time savings I've found with generative AI is in writing boilerplate code, documentation, or writing code for a domain that I'm intimately familiar with since those are very easy to skim over and immediately know if the output is good or not.
I actually got curious about it specifically because of this thread, and earlier today did a little experimentation with Copilot's Cmd-I feature as compared with copying and pasting to GPT. I'm actually pretty convinced now that the issue is that Copilot using a cheaper model for reasons of computational cost. Giving Copilot the exact same task I was giving to GPT, it struggled to create code that could even compile, even after multiple rounds of me trying to help it, where GPT-4 was able to just give output and its output worked.
I think the assumption that it's being set up under is that people will be doing a ton of queries throughout the work day, more so than the average GPT-4 user will type into the chat interface, and so they can't realistically do all that computation on people's behalf for $20/month.
(Edit: And this page makes some statements about "priority access" to GPT-4, indicating that they're throttling access to the more capable models depending on demand.)
In practice, the majority of the time I'm carefully looking over diffs anyway before committing anything, since as you mentioned the vast majority of work time is spent modifying existing code. So the times it messes up aren't a real serious issue. But again I think (after some pretty minimal experimentation today) that the real issue you're seeing is just that GPT-4 is way more capable at this stuff than is GPT-3.5 / Copilot.
But this is guessing based on some pretty minimal experimentation with it. I sounded real confident in my initial statement but now that I'm looking at it maybe that's not warranted.
Do you work in a technical role? I've dabbled in using AI to help out when working on projects, but I would say it's hit or miss on actually helping, as in sometimes it helps me move a bit faster and sometimes it slows me down.
However, that's just for the raw "let's write some code part of the work". Anything beyond that in my roles and responsibilities doesn't really intersect with what AI can currently do, so I'm not sure where I would get a 5-10x speed-up from.
Honestly I'm not sure if I'm taking a wrong approach or if everyone else is blowing things out of proportion.