My personal "wow" moment was less about it being able to do the same that I could do with it, just faster, but instead that together we could could build things that I wasn't able to build before (or unwilling to spend the time to learn maybe). So a bunch of stuff are suddenly "unlocked", as long as you know how to verify it properly.
I have been able to build applications that I couldn't dream of before, not because of a lack of capability on my part, but because of time: I don't have the time to learn all of the new APIs and frameworks to accomplish my goal. Now I can build far more complex useful applications, with functions and features that would take me months or more to learn how to code.
The downside is that I didn't learn how to use those APIs, but it can be argued that these skills are low value to begin with. APIs change, there are competing APIs that do the same thing, and you may only use that skill for one project and then move on. Gaining those skills can be a big time sink and may not result in long-term gain.
Think of all the time spent learning the ins and outs of come-and-gone APIs and frameworks over the decades (I chose not to provide examples to save the resulting side-arguments, but I know you can rattle some off in your head). Those APIs and frameworks were bridges to make developing easier for the common developer, but they change so quickly that I'd argue they waste our time, and lead to almost endless re-work as we re-architect our software for the framework de jour. And they grow in complexity over time, ultimately becoming the next bloated framework. It's an endless, wasteful cycle.
Absolutely. Things which used to take me a week to grind through, finding edge cases, trial and error, researching online, now takes an afternoon directing an agent and verifying the solution.
In the future, there will be no more generalists with your capabilities. At all. No one will ever develop the skill. We're at the end of our career's lifetime. We're like the horse watching more and more cars appearing.
Within a generation, the coding languages we use today will all vanish, to be replaced with direct to metal methods, assembly, etc. The only reason C exists, is for humans. PHP, rust, python is for humans. There will be no more compilers. No more human-readable languages. No more scripting with readable code.
No more open or closed source.
Imagine taking every aspect of computing which is designed for humans to understand, and removing it, because it's redundant.
Now once removed, and once humans no longer understand on their own, imagine trying to build something independently? Imagine trying to bootstrap modern compute, without all the layers which came before?
My point is that soon, perhaps 20 years, most humans will be incapable of coding, developing, or working with compute in any way outside of an end-user role. Even those previously skilled, will now be looking at an entire kernel written in assembly.
And that's before new CPUs appear, with new assembly. New assembly, once again, not designed by or for humans to understand. And yes, current assembly is designed that way.
We are not simply looking at a bit of help here. We're looking at the entire end of every single computing job, ever. We're looking at the complete loss of control, of something which is the underpinning of our entire society. Every aspect of everything we have, runs on a chip now. Personal transport, everything in health care, everything in resource extraction, everything harvesting food through to delivery to table, all of it involves some aspect of compute.
And we soon will not comprehend nor create that underlying aspect of society.
I dunno. It all seems like the answer to the fermi paradox.
> If you weren't able to build it before then you aren't able to properly verify it
GP said "couldn't dream of building". To make an analogy, I wouldn't dream of building a house if I had to do every bit of brick-laying myself. But with others doing what I can't do, I can indeed dream of building a house and I do know how to verify that the house was built to satisfy my dream.
This analogy is ironic to me. For most people, building a dream house and verifying it means hiring someone else who is accountable for it being built to code etc.
This is exactly the naive gap that is happening with AI. There is no trusted middleman who does the verification and takes the burden of accountability. The AI vendor tries to sell it like magic but with a disclaimer that is is merely entertainment. The user tries to pretend they are reviewing, but often is just implicitly trusting the tool to do right by them on things they have no real capacity to evaluate.
> There is no trusted middleman who does the verification and takes the burden of accountability.
It's a great example of a project that needs accountability, but there's also thousands of other projects that need absolutely no accountability.
It's all relative to the stakes. The lower the stakes the less informed verification is needed.
The real trick is being informed enough on the boundaries to know where it matters. In the construction analogy, you need to be informed enough to know that a house is a bad idea since there are safety concerns. However building something small and non-load-bearing is probably fine to "vibe".
Eg there's no expertise needed to judge a garden trellis or 2 foot picket fence. It either works or it doesn't, and if it fails down the road there's no harm.
A house is a good analogy here. You can verify that a house is built to satisfy your dream. You can't likely verify that a house won't collapse in the middle of the night or during a storm/quake/etc. Once no human understands how the house is built anymore, we will need other ways to verify that or just trust it's done right.
Ok, so before I couldn't (/didnt have the time to) build cross-platform native desktop applications with minimal amount of 3rd party dependencies, but now I "can". What exactly am I unable to verify here?
I still don't have the skill/knowledge to build cross-platform native applications the way I'm doing it with an agent now. I am still able to verify it's correct. How is that possible if what you say is correct?
> Clicking around a finished UI is not verifying
Definitively a part of it, if you care about having mouse interactions and having graphical UIs.
Depends on the scope. I’m slopping some projects (graphics related) that I’d never have learned before. Mostly because of the huge lift, huge time investment, etc. is it quality code? I’m sure not. But verification of the application is quite easy, even if the underlying graphics and gpu shaders could be done better.
What I’ve learned is quite minimal due to the slop nature. However I’d have never even started this project in the past due to time, so it’s still fun being able to learn small bits of projects I’d otherwise not even touch.