"Coding" was never the source of value
twitter.com
twitter.com
And it is difficult to listen to NVidia talk about what AI can do when it's $2 Trillion evaluation is rooted in AI everything.
AI being used to make programming more efficient is fine. At least once it is capable of meaningfully doing that.
What a lot of developers don't realize is if your code is long lived the time to write the first time isn't really a primary consideration when you are talking about say 40 hours vs 80 hours. Maintainability and extensibility are core.
And if AI doesn't help with those (certainly this batch doesn't) it is only increasing the tech debt problem in the industry.
It’s almost like using StackOverflow but a toddler is in charge of inputting your queries and only tells you a fraction of what he finds.
for example not super up on node.js but know enough to get done what I need to get done. got GPT to throw out some ideas re: linked lists with an approach I'd never seen before.
so then the question was... is it smarter than me, and knows the answer better than I do? or is it dumber? I spent more time figuring that out -- it was dumber -- than if I'd just slapped in the node and mongo code myself. though I'll say it was a good learning experience, but not something really sustainable for full-time coding.
If I absolutely have to help them make some specific input, I'll spell it out, symbols and all, so that the junior can type it themselves. It takes time, but it's so much easier to remember something when you're the one who typed it out. Besides, even before AI, autocomplete was usually good enough that I rarely had to spell out more than a few letters. :)
Am I describing an LLM or a programming language?
Templates have been a thing for a long time and beyond being better than Google at finding them LLMs fall into the exact same problems those did:
If they don't exactly fit your goals you end up wasting a ton of timing fixing the edge cases.
i've often been able to get them to write working code to harness libraries i just wrote (so they definitely aren't in their training set) or programming languages that i haven't even implemented yet. i've fed them obfuscated code in one programming language and asked them to translate it into another—getting sometimes very buggy output, sometimes not. i've asked them for problem-solving approaches for novel problems and gotten reasonable answers—sometimes
Not even junior developers. Only thing it can, and somewhat already has is the students with their assignments. And it is going to spoil a lot of future developers forever. Will all those students with LLM skills be able to enter the market and put generated code everywhere or will that serve as a filter.
I believe first one because before GPTs the entry skill was googling and copy pasting stackoverflow code.
As in while AI in general could do more the highest possible echelon of this kind of AI is junior developer.
By which time senior management will have retired to the golf course / yacht / beach house. Reward systems etc.
I'd be shocked if there are developers at all in a few decades.
> They are older and learn slower, they also learned a lot of biases over the years
Hasn’t this been disproven time and time again. And research has shown continuous learning helps to prevent or delay cognitive decline.
Wow, I rarely see such unwarranted confidence in such a blatantly wrong statement.
Have you looked into what LLMs can do beyond more quickly implement a templating engine?
I really hope that nvidia gets competition, although it will be difficult because the AI environment is locked in to a significant degree in many tools. Not completely though, so maybe we will see competitors arise.
I am still pretty disappointed with LLMs on their ability to solve logical problems. Just pick an easier logic quiz from the internet and plug it into copilot an co.
Copilot seems to now have some templates to answer some of them and I think they fix the model pretty actively. Had some quizzes that were solved wrongly just a few weeks ago, that now get a correct answer. But the overall ability of LLM is quite low still. Always funny when your model says it knows this "classic puzzle" and still gets it wrong. Or the typical "find the cat in the box"-puzzle where the AI just wants to suffocate the cat so it cannot move anymore.
Despite that I wouldn't want to miss AI for coding anymore. It is just added value. I have a decent rig that just runs codellama:7b with VSCode&Twinny locally. Not perfect, but a big help already.
AI critics often called it autocomplete on steroids. Perhaps it is just that, but maybe that is already quite helpful.
I don't see non-coders being able to leverage AI for coding at all. The concept of the citizen-developer was proven wrong so many times already... I think there will be some modified models for certain languages to improve overall tooling around a language.
One of those things we take for granted now, but was absolutely transformative in the history of computing
Naval Ravikant calls managing people the most common and recognized form of leverage. And he's absolutely right. But the scaling properties of people management are terrible once you get accustomed to how you can scale with code. People management necessitates adding new layers in order to keep the system from falling over, overall efficiency stops scaling as people are added, and communication becomes very difficult.
Once the AI sets up the initial data modeling and storage system cross-talk, and it's singing in production with paying customers, how well is it going to continually iterate on that system when non-engineers make asks of it? My guess is, not that well, and worse and worse as the business evolves. Who's going to be able to make sense of the possible hallucinations and spaghetti code nightmare under the hood when things are going too haywire to ignore? Are you going to let it just drop columns being used by active code, while it takes minutes if not hours to rebuild indexes on new ones? Let it design access patterns across 10+ table joins? Make UI decisions that load 100 nested divs for every element in an array because that's how it interpreted the best way to do styling?
Someone's going to blow a company to hell trying to get AI to build and continually run IT, I predict, and it will be a much-remembered case study.
my limited experience has been that llms are enormously better at explaining existing code (code → text) than at writing new code (text → code)
The LLM is wrong and hallucinates sometimes, but thus far it's been a huge timesaver in actually shipping finished products. It's like if people still tried to answer your questions on stack overflow, instead of just downvoting with no feedback.
And once we reach that point, the questions become less practical about what should you learn and more existential. Thankfully I already went through my existential crisis and am at the point of not caring.
It will all make sense when Doritos drops their own quirky LLM that guides you through a stressful gravity bong experience.
I know once the investor subsidies end, monetization will once again stifle a great productivity tool. I'm old enough to have lived through Google's "Don't be evil" era.
Compare that too interacting with current ai, where it might follow the instructions and the out put is based on probability. Is there a reason to think these probability based on models will suddenly become deterministic?
I don't get how you can engineer anything on top of a models output that requires exactness.
Sadly: maintainability, scrivener beauty, architecture, language, platform, and such are nonfunctional wants and/or requirements that don't really matter.
What users need, and saving them time, should be the most important problems code solves.
Language and platform religiosity are therefore irrational and often just tribal nonsense. It's therefore absurdly small-minded, self-limiting, and/or a sign of incuriousness whenever I hear someone say "I'm [not] a {X} {guy/gal}" or throw shade or unbridled desire for a particular technology.
I think the assembly/higher level languages analogy may not be entirely accurate. If I'm making a web app and want some JavaScript for my special UI, an LLM can write a lot of versions based on how I prompt it. But it will always be faster if I already know how to write code, and using it to speed me up/do any boilerplate needed. That's why copilot is so useful, even if it's not the highest quality.
And it's really not hard to get the basics of programming.. that's why I think it should be taught. I don't see why you need to learn more chemistry than programming in school.
Fortunately, there are fewer open positions at that level, so not all of us need to accept the mission.
I know some people enjoy the challenge and achievement and there are lots of people who are especially attuned to highly technical and particular things, but overall programming productivity and software design suffers badly because of it.
We can do better and coding should look completely different than it does now. Hopefully that will change.
Any job is just that, it's a story, it's transforming & aggregating bits of the information field into another, surrounding it by meaning in the process.
I don't care if you work with computer, as a social worker or as a fisherman. You're just transforming bits mate.
But sure it is a source of value as it cuts down on wasting one's time for unproductive parts.
Me: considering how often your driver crashes, you still need coding.
Except when you're Carmack and you're able to make some "abstractions" (like Doom) come true precisely because you have super strong skills.
So there is coding and coding.
I guess the world could be a better place if we'd squeeze out value of every minute. But I don't see that fully also in business. Even Carmack says himself that he's not going to the final abstraction. So I tend to see this as a guideline one can strive for.
We are not using tools to output massive loads of punchcards today, but these AI models output still the same thing: Massive loads of code.
1. resign your coding job, 2. get hired by a company which does not do code, and 3. earn a comparable or higher salary
then coding is a source of your value. You retain the same general problem-solving ability, but your salary will decrease, probably substantially, which should tell you that general problem-solving ability is not the primary source of most software developers' value.
Coding might not have been "the source of value" for Carmack himself: after all, he did make a comparable living doing rocketry at one pont, although he did return to graphics programming after that stint. Now he thinks he might make a living "managing AIs" in the future.
I don't know whether managing AIs will become a job in the future or not, but if Carmack thinks people will want to pay _him_ of all people to manage any important AI, he's deluding himself. Everybody knows his managerial qualities from Masters of Doom.
Of course, it's all academic: Carmack is a multi-millionaire who has no need for paid employment, and nor need to maintain good mental models of how paid employment works.