The great thing about this is that even if you're very experienced/good, you only are so in a restricted set of domains. You can now step into all of the other domains and benefit from the ground level!
A few months ago, like others, I thought that eventually, AI-assisted-coding would act as a "multiplier" (good engineers get gooder, not-so-good ones lag further behind).
I think that my opinion has totally reversed now!
I would now say that LLMs, applied to coding, provide or will provide a ground level that greatly benefits beginners, but the most experienced engineers will only see benefits for repetitive tasks.
A more elaborate person would probably have found a fitting metaphor ("I understand how the X felt when Y") but the machine has sucked all of the language capacity out of me (I still have ~5 hours on my shift)
It's really cursed to see how much money people are willing to burn in tokens to build meaningless/useless stuff when the FOSS world has been begging for funding for the past decade
I just declared a moratorium against AI-written change descriptions (e.g. PR and commit messages, also issues/tickets) from my team.
AI was writing change descriptions that were worse than useless to me as I tried to review PRs: outlining details of the code that could easily be seen by looking at the code, but omitting the higher-level framing needed to understand broadly what the code is doing.
I think people like having AI write these things because the output looks structured and thorough, which makes it feel professional in a way. But this isn't actually valuable. Concise, high-level descriptions are better for everyone. If I need to use my own AI to interpret what your AI wrote then something is wrong. Let AI write code, sure, but for the description, I'd rather see your prompt than your output.
We could maybe have extended agents.md with guidelines on writing descriptions, but this seemed a bit pointless since a good, concise change description only takes a few minutes to write -- not a significant time savings to delegate to AI. At least, it doesn't take long if you understand the code -- and if you don't understand the code, then I'm definitely not merging it.
If medicine was held to the standard of rigor that software engineering is - let alone the discipline you see in aircraft or bridges - way fewer people would die unnecessarily
Isn't it crazy how all of American media is about how the Good have to defeat the Evil and then you look at them in real life and they all worship the Evilest creatures to ever exist like they're the fucking minions
> you’ll never start a rocket company
> you’ll never build your own engines
> you’ll never be able to use off-the-shelf parts
> you’ll never survive three launch failures
> you’ll never reach orbit
> you’ll never win NASA’s trust
> you’ll never launch cargo to the ISS
> you’ll never compete with Boeing
> you’ll never compete with Lockheed
> you’ll never make rockets reusable
> you’ll never land a rocket vertically
> you’ll never land one on a drone ship
> you’ll never reuse a booster
> you’ll never fly the same booster 10 times
> you’ll never fly the same booster 20 times
> you’ll never fly the same booster 30 times
> you’ll never recover and reuse the fairing
> you’ll never lower launch costs
> you’ll never launch every month
> you’ll never launch every week
> you’ll never launch multiple times a week
> you’ll never carry astronauts
> you’ll never replace Roscosmos
> you’ll never fly civilians to orbit
> you’ll never manufacture satellites at scale
> you’ll never build the biggest constellation ever
> you’ll never make satellite internet work
> you’ll never make satellite internet fast
> you’ll never make satellite internet affordable
> you’ll never serve rural customers
> you’ll never serve aircraft and ships
> you’ll never build a methane rocket engine
> you’ll never make full-flow staged combustion work
> you’ll never build the most powerful rocket ever
> you’ll never build a rocket bigger than Saturn V
> you’ll never build it out of stainless steel
> you’ll never launch Starship
> you’ll never separate Super Heavy and Starship
> you’ll never relight Raptor in space
> you’ll never bring Super Heavy back
> you’ll never catch a booster with Mechazilla tower arms
> you’ll never launch 85% of mass to orbit worldwide
> you’ll never change the economics of space
> you’ll never force the entire industry to copy you
> you’ll never win
> you’ll never IPO
Congratulations to @elonmusk and the SpaceX team. You did what countless people said was impossible, and you did it time and time again.
Today is your day. You deserve this. May it be a glorious one.
@JoshCaughtFire You did leave out that if you pick green and more than 50% of people do too, the ones who picked orange will die.
If you tell me that you think that absolutely everyone would pick green or that those who don't deserve to die anyway, you do you but that won't convince me.
Observations from writing Go again, exacerbated by agents but not unique to them. First, its far too easy to allocate and agents (probably people too) do it too often. For example, to "undo" work on error, its enticing to keep track of the work done but that's a mistake.
If an error case is rare (and they usually are), you should pessimize the error case and optimize the success case. Don't allocate unnecessarily on the happy path if its going to succeed 99+% of the time. Let the error case be slower.
On error, just redo the work but do the undo step instead of the apply step. This doesn't work if the apply step had a ton of side effects but it works more often than you think.
Real world example of that not in Go, but the Zig compiler: when it parses, it doesn't store any file/line/col info, because its a waste of memory when parsing succeeds most of the time. And memory is speed in modern CPUs since cache locality owns everything around us.
If an error happens, Zig just reparses the file from the beginning in a slow path that does collect error information.
That pattern is generally useful.