After all, if we lose the joy in our craft, what exactly are we optimizing for?
Solving problems for real people. Isn't the answer here kind of obvious?
Our field has a whole ethos of open-source side projects people do for love and enjoyment. In the same way that you might spend your weekends in a basement woodworking shop without furnishing your entire house by hand, I think the craft of programming will be just fine.
Same as when higher-level languages replaced assembly for a lot of use cases. And btw, at least in places I've worked, better traditional tooling would replace a lot more headcount than AI would.
Exactly. If LLMs were like higher level languages you'd be committing the prompt. LLMs are actually like auto-complete, snippets, stackoverflow and rosetta code. It's not a higher level of abstraction, it's a tool for writing code.
It's not a higher-level language, I mean it's a productivity tool. It's not going to take away the joy or demand for coding, like how C didn't ruin things by cheapening assembly creation.
The parent is saying that when higher-level languages replaced assembly languages you only had to learn the higher level language. Once you learned the higher level language the machine did precisely what you specified and you did not have to inspect the assembly language to make sure it was compliant. Furthermore you were forced to be precise and to understand what you were doing when you were writing the higher level language.
Now you don't really have to be precise at any level to get something 'working'. You may not be familiar with the generated language or libaries but it could look good enough (like the assembly would have looked good enough). So, sure, if you are very familiar with the generated language and libraries and you inspect every line of generated code then maybe you will be ok. But often the reason you are using an LLM is because e.g. you don't understand or use bash frequently enough to get it to do what you want. Well, the LLM doesn't understand it either. So that weird bash construct that it emitted - did you read the documentation for it? You might have if you had to write it yourself.
In the end there could be code in there that nothing (machine or human) understands. The less hard-won experience you have with the target and the more time-pressed you are the more likely it is that this will occur.
The output of the LLM is determined by the weights (parameters of the artificial neural network) estimated in the training as well as a pseudo-random number generator (unless its influence, called "temperature", is set to 0).
That means LLMs behave as "processes" rather than algorithms, unlike any code that may be generated from them, which is algorithmic (unless instrcuted otherwise; you could also tell an LLM to generate an LLM).
The code that the compiler generates, especially in the C realm, or with dynamic compilers is also not regular, hence the tooling constraints in high integrity computing environments.
So what? I know most compilers are deterministic, but it really only matters for reproducible builds, not that you're actually going to reason about the output. And the language makes few guarantees about the resulting instructions.
I already see this happening with low code, SaaS and MACH architectures.
What used to be a project doing a CMS backend, now is spent doing configurations on a SaaS product, and if we are lucky, a few containers/serveless for integrations.
There are already AI based products that can automate those integrations if given enough data samples.
Many believe AI will keep using current programming languages as translation step, just like those Assembly developers thought compiling via Assembly text generation and feeding into an Assembly would still be around.
No, only primitive UNIX toolchains still do this, most modern compilers generate machine code directly, without having to generate Assembly text files and executing the Assembler process on it.
You can naturally revert to old ways, by asking for the Assembly manually, and call the Assembler yourself.
> Solving problems for real people. Isn't the answer here kind of obvious?
No. There are a thousand other ways of solving problems for real people, so that doesn't explain why some choose software development as their preferred method.
Presumably, the reason for choosing software development as the method of solving problems for people is because software development itself brings joy. Different people find joy in different aspects even of that, though.
For my part, the stuff that AI is promising to automate away is much of the stuff that I enjoy about software development. If I don't get to do that, that would turn my career into miserable drudgery.
Perhaps that's the future, though. I hope not, but if it is, then I need to face up to the truth that there is no role for me in the industry anymore. That would pretty much be a life crisis, as I'd have to find and train for something else.
"There are a thousand other ways of solving problems for real people, so that doesn't explain why some choose software development as their preferred method."
Software development is almost unique in the scale that it operates at. I can write code once and have it solve problems for dozens, hundreds, thousands or even millions of people.
If you want your work to solve problems for large numbers of people I have trouble thinking of any other form of work that's this accessible but allows you to help this many others.
Fields like civil engineering are a lot harder to break into!
> That would pretty much be a life crisis, as I'd have to find and train for something else.
There's inertia in the industry. It's not like what you're describing could happen in the blink of an eye. You may well be at the end of your career when this prophecy is fulfilled, if it ever comes true. I sure will be at the end of mine and I'll probably work for at least another 20 years.
The inertia argument is real, and I would compare it to the mistaken believe of some at IBM in the 1970s that SQL would be used by managers to query relational databases directly, so no programming was needed anymore.
And what happened? Programmers make the queries and embed them into code that creates dashboards that managers look at. Or managers ask analysts who have to interpret the dashboards for them... It rather created a need for more programmers.
Compare embedded SQL with prompts - SQL queries compared to assembler or FORTRAN code is closer to English prose for sure.
Did it take some fun away? Perhaps, if manually traversing a network database is fun to anyone, instead of declaratively specifying what set of data to retrieve. But it sure gave new fun to people who wanted to see results faster (let's call them "designers" rather than "coders"), and it made programming more elegant due to the declarativity of SQL queries (although that is cancelled out again by the ugliness of mixing two languages in the code).
Maybe the question is: Does LLM-based coding enable a new kind of higher level "design flow" to replace "coding flow"? (Maybe it will make a slightly different group of people happy?)
This echoes my sentiment that LLMs are higher level programming languages. And, as every layer of abstraction, they add assumptions that may or may not fit the use case. The same way we optimize SQL queries by knowing how the database makes a query plan, we need to optimize LLM outputs, specially when the assumptions given are not ideal.
> No. There are a thousand other ways of solving problems for real people, so that doesn't explain why some choose software development as their preferred method.
I don't see why we should seek an explanation if there are thousands of ways to be useful to people. Is being a lawyer particularly better than being an accountant?
I'm probably just not as smart or creative as you, but say my problem is I have a ski cabin that I want to rent it to strangers for money. Nevermind a thousand, What are 100 ways without using software that I could do something about that, vs listing it on Airbnb?
I was speaking about solving people's problems generally. It's easy to find specific problems that are best addressed with software, just as it's easy to find specific problems that can't be addressed with software.
> Solving problems for real people. Isn't the answer here kind of obvious?
Look at the majority of the tech sector for the last ten years or so and tell me this answer again.
Like I guess this is kind of true, if "problems for real people" equals "compensating for inefficiencies in our system for people with money" and "solutions" equals "making a poor person do it for them and paying them as little as legally possible."
Those of us who write software professionally are literally in a field premised on automating other people's jobs away. There is no profession with less claim to the moral high ground of worker rights than ours.
I often think about the savage job-destroying nature of the open source community: hundreds of thousands of developers working tirelessly to unemploy as many of their peers as possible by giving away the code they've written for free.
(Interesting how people talk about AI destroying programming jobs all the time, but rarely mention the impact of billions of dollars of code being given away.)
> Those of us who write software professionally are literally in a field premised on automating other people's jobs away.
How true that is depends on what sort of software you write. Very little of what I've accomplished in my career can be fairly described as "automating other people's jobs away".
You're automating the 1's and 0's. There could be millions of people in an assembly like line of buttons, being paid minimum wage to press either the 1 or 0 button to eventually trigger the next operation.
> Those of us who write software professionally are literally in a field premised on automating other people's jobs away.
Depends what you write. What I work on isn't about eliminating jobs at all, if anything it creates them. And like, actual, good jobs that people would want, not, again, paying someone below the poverty line $5 to deliver an overpriced burrito across town.
> "Computers" used to be people! Literally, people.
Not always. Recruitment budgets have limits, so it's a fixed number of employees either providing services to a larger number of customers thanks to software, or serving fewer customers or do so less often without the software.
Thank you for the link, the reference you're making slipped past me. That said, I think my point still holds: software doesn't always have to displace workers, it can also help current employees scale their efforts when bringing on more people isn't possible.
While this definitely helps consumers. I don't see how it doesn't displace workers.
If the work those workers were doing before software was truly valuable. Companies would find other ways to scale, and simply pass the higher costs onwards to consumers.
That's fine; read it as me speaking to the whole thread, not challenging you directly. Technology drives economic productivity; increasing economic productivity generally implies worker displacement. That workers come out ahead in the long run (they have in the past; it's obviously not a guarantee) is besides my point. Software is automating software development away, the same way it automated a huge percentage of (say) law firm billable hours away. We'd better be ready to suck it up!
Got it, you're talking about workers getting ahead as a category -- no objections to that.
I doubt the displaced computers managed to find a better job on average. Probably even their kids were disadvantaged since the parents had fewer options to support their education.
So, who knows if this specific group of people and their descendants ever fully recovered let alone got ahead.
Why should one be entitled to do one thing for their entire career?
The world changes. Those changes cause a need, a job fulfills that need. The world changes again, the need disappears. Why should the job then persist?
> Why should one be entitled to do one thing for their entire career?
Because if you pursue a career and invest time and money into it over the course of your life, especially in the highly Americanized way which involves both a substantial time and MORE substantial outlay of money to achieve that, and you then go on to live in a society that demands you earn a living or starve/freeze to death, it is unconscionably immoral to fuck with other people's means to earn that living for your own profit.
And to be clear, that doesn't mean "you can never change your career," that's nonsense. People do that all the time, out of necessity or just desire. However currently the ability to do that is heavily gate-kept via the income of the person wanting to do the switching, and for a lot of the people most likely to be automated, they barely make enough to survive right now, where in the hell are they getting capital to retrain themselves on a new career?
And that's not even going into the physiological challenges. You objectively, factually, learn better when you are younger, and it's also worth noting that society at large benefits more from you learning at a younger age like we traditionally do, because you spend the first few years rolling around your house annoying your mother, you spend up to age 18 (usually) in mandatory K-12 education, you spend between 2 and 8 years in college after that if you decide to go or alternatively, a few years learning a trade or something, and then you have what we generally aim for about 40 years of being a productive member of society. If you have to retrain in the middle of that, that's just less efficient on every front. It costs you money and time, it costs society your productivity for however long you leave the workforce and return to education, and of course that's assuming you can afford to do it at all, and don't end up just lurching from one job that's about to nix you to the next, being miserable and depressed, until you can't find another and then you end up in the homeless system.
In my mind at least, the only way I can comprehend anyone being in favor of this sort of system is they imagine themselves one day being on the top of it, because that's the only group of people who are actually benefiting from this sort of instability. The looming threat of and execution of job automation has massive boons for employers; fewer employees can produce at higher rates, the job market is flooded with recently laid off people which lowers the value of labor and lets employers pay the ones who are hired on after less money, and the overall instability "vibes" present makes employees more willing to tolerate bullshit from their employer because they know how much the job market sucks and they don't want to find another, or, who knows, maybe they are trying and literally can't for the previous reasons.
Like in my mind, this just comes down to whether you think you're more likely to be the boot or the neck under the boot, and that's going to decide how you feel about this.
I think this is all a great argument for a strong social safety net. It’s not a great argument for keeping people in pointless jobs doing work that has been made obsolete by automation.
My argument is explicitly not premised on the claim that productivity improvements reliably work out to the benefit of existing workers. It's that practicing commercial software developers are agents of economic productivity, whether anticapitalist developers are happy about that or not, and have really no moral standing to complain about their jobs (or the joy in those jobs) being automated away. That's what increased economic productivity means: more getting done with less labor.
Haven't we been automating jobs away since the industrial revolution? I know AI may be an exception to this trend, but at least with classical programming, demand goes up, GDP per capita goes up, and new industries are born.
I mean, there's three ways to get stuff done: do it yourself, get someone else to do it, or get a machine to do it.
#2 doesn't scale, since someone still has to do it. If we want every person to not be required to do it (washing, growing food, etc), #3 is the only way forward. Automation and specialization have made the unthinkable possible for an average person. We've a long way to go, but I don't see automation as a fundamentally bad thing, as long as there's a simultaneous effort to help (especially those who are poor) transition to a new form of working.
What is qualitatively different this time is that it affects intellectual abilities - there is nothing higher up in the work "food chain". Replacing physical work you could always argue you'd have time to focus on making decisions. Replacing decision making might mean telling people go sit on the beach and take your universal basic income (UBI) cheque, we don't need you anymore.
Sitting on the beach is not as nice as it sounds for some; if you don't agree, try doing it for 5 years. Most people require work to have some sense of purpose, it gives identity, and it structures their time.
Furthermore, if you replaced lorry drivers with self-driving cars, you'd destroy the most commonly held job in North America as well as South America, and don't tell me that they can be retrained to be AI engineers or social media influencers instead (some can only be on the road, some only want to be on the road).
I agree that we have been able to automate a lot of jobs, but it's not like intellectual jobs have completely replaced physical labor. Electricians, phlebotomists, linemen, firefighters, caregivers, etc, etc, are jobs that current AI approaches don't even scratch. I mean, Boston dynamics has barely been able to get a robot to walk.
So no, we don't need to retrain them to be AI engineers if we have an active shortage of electricians and plumbers. Now, perhaps there aren't enough jobs—I haven't looked at exact numbers—but we still have a long ways to go before I think everything is automated.
Everything being slop seems to be the much more likely issue in my eyes[1].
But... My local library has a job searching program? I have a friend who's learning masonry at a government sponsored training program? It seems the issue is not that resources don't exist, but that these people don't have the time to use them. So it's unfair to say they don't exist. Rather, it seems they're structured in an unhelpful way for those who are working double jobs, etc.
I see capitalism invoked as a "boogey man" a lot, which fair enough, you can make an emotional argument, but it's not specific enough to actually be helpful in coming up with a solution to help these people.
In fact, capitalism has been the exact thing that has lifted so many out of poverty. Things can be simultaneously bad and also have gotten better over time.
I would argue that the biggest issue is education, but that's another tangent...
> So it's unfair to say they don't exist. Rather, it seems they're structured in an unhelpful way for those who are working double jobs, etc.
I'll be sure to alert the next person I encounter working UberEats for slave wages that the resources exist that they cannot use. I'm sure this difference will impact their lives greatly.
Edit: My point isn't that UberEats drivers make slave wages (though they do): My point is that from the POV of said people and others who need the aforementioned resources, whether they don't exist or exist and are unusable is fucking irrelevant.
Slave wages? Like the wages for a factory worker in 1918[1]? $1300 after adjusting for inflation. And that was gruelling work from dawn to dusk, being locked into a building, and nickel and dimed by factory managers. (See the triangle shirtwaist factory). The average Uber wage is $20/hour[2]. Say they use 2 gallons of gas (60 mph at 30 mpg) at $5/gallon. That comes out to $10/hour, which is not great, but they're not being locked into factories and working from dawn to dusk and being fired when sick. Can you not see that this is progress? It's not great, we have a lot of progress to make, but it sure beats starving to death in a potato famine.
> Slave wages? Like the wages for a factory worker in 1918[1]? $1300 after adjusting for inflation.
I think they were using “slave wages” as a non-literal relative term to the era.
As you did.
A hundred years before your example, the “slave wages” were actually slave wages.
I think it’s fair to say a lot of gig workers, especially those with families, are having a very difficult time economically.
I expect gig jobs lower unemployment substantially, due to being convenient and easy to get, and potentially flexible with hours, but they lower average employment compensation.
> I think it’s fair to say a lot of gig workers, especially those with families, are having a very difficult time economically.
Great point. I wonder if this has to do with the current housing crisis and cost of utilities... Food has never been more affordable, in fact free with food banks and soup kitchens. But (IMHO) onerous zoning has really slowed down development and driven up prices.
Another cost is it's pretty much impossible to do anything without a smartphone and internet. I suppose libraries have free internet, but being able to get to said library is another issue.
And like you said, contract work trades flexibility for benefits, and that gets exploited by these companies.
I guess it just sucks sometimes because these issues are super hairy (shut down Uber, great, now you've just put everyone out of a job). "For every complex problem there is a solution which is clear, simple, and wrong."
* Everything is more expensive. You say "food has never been more affordable" but I'll absolutely challenge that. Food banks and kitchens are heavily locale-dependent type resources, and are not distributed according to the needs of the populace, but rather according to the ability and willingness of given communities to sustain them.
* You skated right past the need for a smartphone, mentioning, then going on to cite libraries for some reason. This is just a non-solution to a gig worker who will receive jobs and report their status/completion via a smartphone while on the go, doing the work. Ergo to even begin gig work, one REQUIRES a smart phone WITH a data plan.
* And, again, the pay is shit. In my relatively wealthy area, a good Uber Eats driver can make about $13 to $16 an hour, which on it's face sounds okay for a job that requires basic smartphone literacy and a driver's license. But just think about that. For starters, more than half statistically is tips, which aren't guaranteed and are based on performance. A performance, mind, that is subject to dozens of factors entirely outside the control of the driver. Further, it requires the use of the driver's personal vehicle (or one they have access to anyway) which costs obviously fuel, but traveling so many miles so fast will also mean more frequent oil changes, more replacement parts, not to mention a STEEP increase in the odds of bodily injury on the part of the driver, and NONE of this is being handled by Uber. All of these costs and risks are being felt by the driver.
And that still leaves tons of expenses on the table: insurance for the vehicle, many drivers want to run multiple apps which can require the use of multiple phones and therefore multiple data plans, they need to keep their vehicles clean and tidy for cargo or even passengers, they need to be available at the peak times for orders in order to make any money at all, and even if they do ALL OF THAT right... they are not guaranteed any wage, at all. If they simply don't get orders, or refuse too many and have the systems shadowban them, or simply aren't in the right place, their entire "shift" as it were can be a net loss for them.
> I guess it just sucks sometimes because these issues are super hairy (shut down Uber, great, now you've just put everyone out of a job). "For every complex problem there is a solution which is clear, simple, and wrong."
The solution is I think quite simple here: Uber (and all the rest of these gig apps to be clear) should be paying these people a wage, and the people should be driving cars in a fleet owned by Uber. You know, like Taxi companies did. Taxi drivers made tips, sure, occasionally, but they were hourly employees like any other. If they got in a car accident, the company was insured for that, both for the car and the worker. The employees enjoyed at least some benefits, didn't need to maintain or clean their own cars, certainly didn't need to buy the cars, and showed up to a place, on a schedule, and did a job. Like was normal before the "gig economy."
I'm really struggling to understand your argument, are you trying to argue in short-term or long-term trends? I'm trying to argue that in aggregate, life is getting better for people, while also awknowledging that there's not an equal distribution. For example, food has decreased in price 4x since 1900 in real terms[1]. I don't see how that's not more affordable.
> You skated right past the need for a smartphone.
Hmm? Like when I said "Another cost is it's pretty much impossible to do anything without a smartphone and internet"?
> a good Uber Eats driver can make about $13 to $16 an hour
Source? That doesn't line up with what I found.
> A performance, mind, that is subject to dozens of factors entirely outside the control of the driver.
This is just FUD if you haven't cited your sources on average/median/distribution of pay in whatever area.
You have a very good point on liability issues though.
> The solution is I think quite simple here
Thus increasing prices of rides, causing users to stop using the service, further shrinking pay? Uber just started being profitable after dumping billions of dollars in subsidies, on top of bad pay. If you make them full-time employees, you may just shut off the one source of income they have.
Uber won because they offered a superior service to taxis. I'm not going to open the can of worms of their predatory behavior, but there was still a significant part that was a better service.
Again, I am planning on helping these people, I think they should be helped, but you really need to think through what could happen if you force a company to become insolvent.
> I'm trying to argue that in aggregate, life is getting better for people, while also awknowledging that there's not an equal distribution.
I bet you like Steven Pinker. He does this shit too where he goes "people 50 years ago didn't even have air conditioning, and now a poor person has one in their car and one in their home" which ignores several things that are going to be their own rabbit holes so I'm just going to not, but that doesn't mean things are better. Yeah, poor people have more stuff, more creature comforts, more "luxuries" today than kings had in the 1400's. That doesn't change the fact that they're barely getting by, living perpetually on a debt and stress treadmill that studies too numerous to count have shown decrease their quality of life, shorten their overall lifespan and lead to health problems, in a country where having health problems is also, totally but coincidence I'm sure, the fastest ticket one can have to poverty.
And the worst part is, it doesn't NEED to be that way. We have more of... basically everything than we ever have, yet it all costs more, and tons of businesses go under, and everybody gets poorer, while the richest grow ever, ever, ever richer.
2 trillion was transferred from the working class to the 1% during COVID. 2. Fucking. Trillion. Dollars.
> Hmm? Like when I said "Another cost is it's pretty much impossible to do anything without a smartphone and internet"?
"Pretty much impossible" and "impossible" are not the same. It is not possible to do gig work without a smartphone.
> Source? That doesn't line up with what I found.
It's going to vary widely based on locale. Mine when I commented was the suburbs of Chicago.
> This is just FUD if you haven't cited your sources on average/median/distribution of pay in whatever area.
Yeah, it is. Because gig work is inconsistent. Would you be okay working your job when your salary was completely dependent on your performance, sure, but also just how much work you had to do during that particular day, and if there was a decent chance that one day you show up to your office, sit on your ass for 8 hours, and go home without a penny?
I doubt it.
> Thus increasing prices of rides
This just in: products and services should cost what it costs for them to be created/rendered unto you, with a little more at the end so the person doing it earns a living. If you can't afford to have a person pick up a burrito for you, drive it across town in a car, and drop it on your doorstep, I would humbly suggest you get in your own car, and get your own burrito.
> Uber just started being profitable after dumping billions of dollars in subsidies
Then shut the doors! If what you're doing doesn't work, close up shop! Why does Uber have to exist? Are people better off being Uber drivers than being homeless? I mean, I guess? I wouldn't call that an open and shut case. If all the people doing gig work were instead completely unemployed, and out protesting in the streets of their capital cities, maybe society would actually do something about the rampant exploitation? Maybe all these companies couldn't get away with paying people utterly shit wages if we didn't mandate that those on assistance programs find jobs, any jobs, even if those jobs don't get them off the assistance?
I would turn this back to you: instead of asking me why people are entitled to food, why are these massive companies entitled to exist? Why are we funneling people with few options towards them to work as many hours as they can while remaining firmly below the poverty line? Why do we demand people who are starving take a certain number of interviews every week so we give them access to a menial amount of sustenance, while judging them for taking it?
> Uber won because they offered a superior service to taxis. I'm not going to open the can of worms of their predatory behavior,
Yeah I bet you're not, because you don't want to think about HOW that victory was achieved, be it the financial cost, or the human cost. Now you have a shiny app and can get rides around your city. Nobody gives a shit about the fate of labor as long as they get instant gratifications, same as it ever was.
I think at this point we're at an impasse, so agree to disagree. I'm glad there is another person who is wanting to help these people, even if I disagree with their solution :)
Replying to your edit: it is relevant, because it means people are trying but it isn't working. When people aren't trying, you have to get people to start trying. When people are trying but it isn't working, you have to help change the approach. Doubling down on a failing policy (e.g. we just need to create more resources) is failing to learn from the past.
At some point, you've stopped participating in good faith with the thread and are instead trying to push it towards some other topic; in your case, apparently, a moral challenge against Uber. I think we get it; can you stop supplying superficial rebuttals to every point made with "but UberEats employs [contracts] wave slaves"?
It’s not automation that is the problem, it’s that the fruits of that automation disproportionately go to those at the top. Don’t blame software engineering for that, blame capitalism.
solving real problems is the core of it, but for a lot of people the joy and meaning come from how they solve them too. the shift to AI tools might feel like outsourcing the interesting part, even if the outcome is still useful. side projects will stick around for sure, but i think it's fair to ask what the day-to-day feels like when more of it becomes reviewing and prompting rather than building.
Solving problems for real people. Isn't the answer here kind of obvious?
Our field has a whole ethos of open-source side projects people do for love and enjoyment. In the same way that you might spend your weekends in a basement woodworking shop without furnishing your entire house by hand, I think the craft of programming will be just fine.