>> In this slice, HN is more grounded than it sounds: roughly 2 real-world constraint comments for every 1 futurist take—but the dreamer comments are louder and more quotable, so they feel more dominant.
> Instead of continuing with the code, I spawned a fresh Pi session, and asked the agent to write a detailed specification of how the brcmfmac driver works
Planning markdown files are critical for any large LLM task.
The line between AI-assisted clean-room reverse-engineeing and open-source-license-laundering is a thin one, and I think the one described in the article crosses over to laundering. In classic clean-room design, one team documents the interfaces - not the code.
It heavily depends on what you mean by "not the code", if all the code does is implement the necessary steps for the interface, then it's part of the interface. It's an interpretation of an interpretation of a datasheet.
Had an experience like this recently. QEMU stopped compiling for old versions of MacOS (pre-13) w/M1 arch, due to it requiring newer SDKs which don't support older MacOS versions. I put Sonnet 4.6 on the case, and it wrote a small patch, compiled and installed it in a matter of minutes, without giving it any instructions other than to look at errors and apply a fix. I definitely would have just given up without the AI.
The future is that people stop buying software and just build it themselves. The spam filter in thunderbird was broken for me, I built my own in hours and it works way better. Oh that CRM doesn’t have the features you want? Build one that does. It will become very easy to built and deploy solutions to many of your own bespoke problems.
Unlikely. The future will be some people will do this, but honestly I think it will largely be people who were already tinkering with building things, whether full on software development or not
My mom and dad, my brother who drives a dump truck in a limestone quarry, my sister-in-law, none of them work in tech or consider themselves technical in any way. They are never, ever going to write their own software and will continue to just download apps from the app store or sign up for websites that accomplish the tasks they want
Some of us will do this, and it will be great for us for a period of time. That is, until others build another giant ball of shit 10,000x bigger than the npm/nodejs/javascript/java/cobol/c++/whatever else garbage pile we have today.
Yeah, I think (completely biased as a long-time developer who is happily playing with AI for building stuff) people using AI to build their own tooling will be like a hot rod scene from the '60s. Lots of buzz, definitely some cool stuff, but in reality probably physically smaller than the noise around it.
> Unlikely. The future will be some people will do this, but honestly I think it will largely be people who were already tinkering with building things, whether full on software development or not
Billions of dollars of stock market value disappeared because of the concern AI can create core SaaS functionality for corporations instead of them spending millions of dollars in licensing fees to SAP, Microsoft, etc.
Did you see the network security stock sell-off after Anthropic announced a code security analysis feature? There's a sliver of nothing between mob mentality and wisdom of the crowd.
It's too soon to bother making predictions. Shits gonna be wild for the next few years, then some type of market correction will happen, and we'll start to get an idea of how things will actually look.
Can we please have some calm, stable, boring years please, before I'm dead? The last 5 years have already been "wild" enough. The world is unrecognizable. I'm unprepared for further wildness.
Excluding the batshit insane political side, I don't actually think it's been as nuts as people think, or at least not uniformly so.
I have a lot of friends in the tech sector, but outside the FANNG/silicone valley/startup bubbles. It's been largely business as normal across the board. Twitter and social media warps our perspective I think.
The market is losing its shit over this because people are operating on the thesis that "AI will be able to ..." rather than "AI can demonstrably do ...". At some point they're all gonna get margin called on their futurisms. It would be a lot better if, before getting excited, we ask to see experimental results. So you say you have a world-beating security tool? Show me something it can do that all the other ones can't. That would be worth getting excited about, not a vague blog post about vibes and dreams.
This feels like when 3D printers hit the consumer market and everyone declared that buying things was over, everyone will just print them at home. There's tons of benefits to standardised software too. Companies rely on the fact they can hire people who already know photoshop/xero/webpack/etc rather than having to train them from scratch on in house tools.
Business software is also useful because it gives companies a process to follow that even if not optimal, is probably better than what they’d come up with on their own.
The flexibility of big source of truth systems like ERP and CRM is sometimes (often) a downside. Many times these companies need to be told how to do something instead of platform vendors bending over backwards to enable horrible processes
They became much like woodworking or power tools. Accessible to anyone who wants them, but still requires an investment to learn and use. While the majority still buys their stuff from retail.
Or rents a printer for one-off designs. Unless you 3d print on the regular it's easier to pay someone to print one-off designs. You get a printer that gets regularly used and services and a knowledgeable operator. Not at all dissimilar to fancy commercial sign printers. In a past life working at $large-uni we really did try to make those damn things self-service but it was so much easier for the staff to be the print queue.
It turns out they're really great at building toys, cosplay gear and little plastic parts for things, but in general not that useful in most people's daily lives. Kind of like Ai.
Totally agree. I've found in many cases it's easier to roll your own software/patch existing software with AI than to open an issue, submit a PR, get it reviewed/merged, etc. Let alone buying software
Yes, but this is the honeymoon period. A year from now when you want to make three of the tools talk to each other and they're in three different languages, two of which you don't know and there's no common interface or good place to put one, well, here's hoping you hung onto the design documents.
What I want is to be able to use AI to modify the software we already have. Granted I've wanted to do that long before AI, but now maybe plugins will get more popular again now that AI could write them for us
This is honestly one of the more naive takes I've seen in awhile. People includes more than people that frequent HN. My wife and I are discussing I'd like to keep finance and related things in a password manager. She is in the social sciences (has a couple of degrees) and isn't a fan.
The majority of computer users are not on HN.
You profile says "Trying to figure out what I want to do with my life. DM me if you have ideas." - I would recommend exploring connections and opinions outside tech.
Definitely feels like that is the bigger take away. Not that it "solves all problems" or "isn't good enough to be merged". But that we are arriving to a place where solutions can be good enough to solve the problem you have. Reminds me of early Github when custom and unique software became much more accessible to everyone. Way less digging or going without.
the spec-first approach is the real insight here. in my experience with AI-assisted codegen, having the model write a detailed spec doc before any implementation code cuts the iteration cycles dramatically. without it the agent just thrashes between plausible-looking approaches. with a good spec it can stay coherent across thousands of lines because it has something to ground against.
the two-month timeline is interesting too - would love to know the actual compute cost. for a working kernel driver that would have otherwise never existed, even $500 in API calls seems like a bargain.
a kernel module written entirely by AI, loading into ring 0, that the author admits has known issues and shouldnt be used in production. Were speedrunning the "insecure by default" era.
Manufacturer/vendor did not provided open source driver with real freedom license (BSD/MIT/...) or documentation on which the driver could be written ... this is the result ... and its still better to overcome a problem in any way then to NOT overcome it at all ... and this driver is just a code - people can look at it and improve it.
And so what? Security is important, sure, but there’s nothing wrong with an experiment or side project with full disclosure upfront about its known limitations.
People should be empowered to share and tinker, without feeling like they need to setup a bug bounty program first. Not every GitHub project is a vendor/customer relationship.
I feel like ubiquitous hardware support in every OS is going to be a solved problem soon. We're very close to just being able to set an AI coding agent to brute-force a driver for anything. The hardware designer would have to go well out of their way to obfuscate the interface if they really wanted to forbid it, instead of just not bothering to support an OS like BSD or Linux.
The primary reason why it worked is because Claude could rip off the Linux driver. Without any prior work to rely on, how will the AI figure out proprietary hardware?
He also mentioned it took 2 months. I’m actually wondering how long it would take to do the Linux to BSD port by eyeball, or at least ai assisted. Probably not that much longer? I guess it depends on wall time vs real time.
Most hardware drivers are simpler than people expect. The hardware is usually designed to do the sensible thing in a straightforward way, and you're just translating what the OS wants into a bunch of bits you need to write to the right hardware register.
On the flip side, the perceived barrier is high. Most folks don't have an intuitive sense of how the kernel or "bare metal" environment differs from userland. How do you allocate memory? Can you just printf() a debug message? How to debug if it freezes or crashes? All of these questions have pretty straightforward answers, but it means you need to set aside time to learn.
So, I wouldn't downplay the value of AI for the same reason I wouldn't downplay it with normal coding. It doesn't need to do anything clever to be useful.
That said, for the same reasonss, it's harder to set up a good agent loop here, and the quality standard you're aiming for must be much higher than with a web app, because the failure mode isn't a JavaScript error, but possibly a hard hang.
Harder, but not impossible. You 3d print a jig for a solenoid and a relay so you can warm/cold reboot the laptop, get a pizerow setup and configured to be a keyboard you can control over SSH, a webcam watching the screen, a hardwired Ethernet port, a second computer to manipulate the Device Under Test (aka the MacBook/laptop with a missing whatever driver). Even though waiting on Claude Code doesn't hit flow state if you've only got one project going, setting things up so it can run with it is still fun, for specific and rather nerdy definitions of fun.
I estimate two weeks from having never seen kernel source to something reasonably stable based on experience with block devices/raid controllers. But I knew a bit of C (had patches merged into SVN, Exim4, etc).
Shouldn't AI be able to take this one step further and just analyze the binary (of the samba server in this case) and create all kinds of interface specs from it?
Just like it does when given an existing GPL’d source and dealing with its hallucinations, the agent could be operated on a black box (or a binary Windows driver and a disassembly)?
The GPL code helped here but as long as the agent can run in a loop and test its work against a piece of hardware, I don’t see why it couldn’t do the same without any code given enough time?
Presumably one would like to use the laptop before the million years it would take the million monkeys typing on a million typewriters to produce the Shakespearean WiFi driver.
Consider that even with the Linux driver available to study, this project took two months to produce a viable BSD driver.
Seems very promising but then you realize the LLM behind said agent was trained on public but otherwise copyright encumbered proprietary code available as improperly redistributed SDKs and DDKs, as well as source code leaks and friends.
In fact most Windows binaries have public debug symbols available which makes SRE not exactly a hurdle and an agent-driven SRE not exactly a tabula rasa reimplementation.
The Linux driver in this case is ISC licensed. There’s no legal or ethical problem in porting it. This is open source working as intended.
I feel like the jury is still out on whether this is acceptable for GPL code. Suppose you get agent 1 to make a clear and detailed specification from reading copyrighted code (or from reverse engineering). Then get agent 2 to implement a new driver using the specification. Is there anything wrong with that?
As I understand it, reverse engineering for the purpose of interoperability is allowed under the law. The only thing subject to copyright is your code. So long as a separate implementation (made by an AI model or made by hand) doesn't use any of your actual code, you have no claim over it. Only the code is yours.
AI models make the process of reversing and reimplementing drivers much cheaper. I don't understand the problem with that - it sounds like a glorious future to me. Making drivers cheaper and easier to write should mean more operating systems, with more higher quality drivers. I can't wait for asahi linux to support Apple's newer hardware. I'm also looking forward to better linux and freebsd drivers. And more hobbyist operating systems able to fully take advantage of modern computing hardware.
True. But also -- how do humans do it? There are docs and there's other similar driver code. I wouldn't be surprised if Claude could build new driver code sight-unseen, given the appropriate resources
Except it often is the case that when you break down what humans are doing, there are actual concrete tasks. If you can convert the tacit knowledge to decision trees and background references, you likely can get the AI to perform most non-creative tasks.
I half agree. But two points: 1) if you can formalize your instructions ... then future instances can be fully automated. 2) You are still probably having the AI perform many sub-tasks. AI-skeptics regularly fall into this god-of-the-gaps trap. You aren't wrong that human-augmented AI isn't 100% AI ... but it still is AI-augmentation, and again, that sets the stage for point 1 - to enable later future full automation on long enough timecycles.
Formal instructions paired by tables are almost as rigid as code. Btw normal engineering disciplines have a lot of strict math and formulas. Neither electrical nor mechanical engineering runs on purely instructions.
The non-software engineering disciplines I'm thinking of rely on blueprints, schematics, diagrams, HDLs, and tables much more than human language formal instructions. More so than software engineering.
Disagree, they rely on both equally, not much more on one of them. Consider the process of actually building a large structure with only a set of such diagrams. The diagrams primarily cover nouns (what, where, using what), whereas the human language formal instructions cover the verbs (how, why, when). You can't build anything with only one of the two.
And sure, the human language formal instructions often appear inside tables or diagrams, that doesn't make them anything less so.
This is based on having worked with companies that do projects in the 10 figure range.
Humans do it with access to the register-level data sheets, which are only available under NDA, and usually with access to a logic analyzer for debugging.
Usually, the problem with developing a driver isn't "writing the code," it's "finding documentation for what the code should do."
... and then figuring out where the hardware company cheapened out and created a whole unfixable mess (extra fun when you first ship your first 10k batch and things start failing after the vendor made a "simple revision"). Then finding a workaround.
Scientific method. There are many small discoveries humans make that involve forming a hypothesis, trying something out, observing the results, and coming to a conclusion that leads to more experimentation until you get to what you actually want. LLMs can’t really do that very well as the novel observations would not be in their training data.
GPL is not a patent. It covers the work and _derivatives_; it does not cover ideas or general knowledge. The chip in question has docs.
I fully expect that Claude wrote code that does not resemble that of the driver in the Linux tree. TFA is taking on some liability if it turns out that the code Claude wrote does largely resemble GPL'ed code, but if TFA is not comfortable with the code written by Claude not resembling existing GPL'ed code then they can just post their prompts and everyone who needs this driver can go through the process of getting Claude to code it.
In court TFA would be a defendant, so TFA needs to be sure enough that the code in question does not resemble GPL'ed code. Here in the court of public opinion I'd say that claims of GPL violation need to be backed up by a serious similarity analysis.
Prompts cannot possibly be considered derivatives of the GPL'ed code that Claude might mimic.
That headers looks pretty reasonable to me. I don't see anything misleading or ambiguous about it. Whenever I am heavily modifying some licensed code, I always make sure to include a similar header.
> I'm going to ahead and say there are copyright law nightmares, right here.
In this case, they didn't really work from the chip's published documentation. They instead ultimately used a sorta-kinda open-book clean-room method, wherein they generated documentation using the source code of the GPL'd Linux driver and worked from that.
That said: I don't have a dog in this race. I don't really have an opinion of whether this is quite fine or very-much not OK. I don't know if this is something worthy of intense scrutiny, or if it should instead be accepted as progress.
I don't work on the Linux kernel, but I do poke around the sources from time to time. I was genuinely surprised to see that some hardware drivers are not GPL'd. That is news to me, but makes commercial sense to when I think deeper about it. When these manufacturers donate a driver to Linux, I don't think GPL is a priority to them. In the case of Broadcom, they probably want their WiFi hardware to more compatible with SBCs to drive sales (of future SBCs that use their WiFi hardware and run Linux). If anything, choosing a more liberal license (ISC) increases the likelihood that their Linux driver will be ported to other operating systems. From Broadcom's commercial view, that is a win to sell more SBCs (free labour from BSDers!).
Also, if the original driver was GPL'd, I am pretty sure it is fair game (from US copyright and software license perspective) to use one LLM to first reverse engineer the GPL'd driver to write a spec. Then use a different LLM to implement a new driver for FreeBSD that is ISC'd. You can certainly do that with human engineers, and I see no reason to believe that US courts would object to separate LLMs being used in the two necessary steps above. Of course, this assumes good faith on the part of the org doing the re-write. (Any commercial org doing this would very carefully document the process, expecting a legal challenge.)
I do think this blog post introduces a genuinely (to me!) novel way to use LLMs. My favourite part of that blog post was talking about all of the attempts that did not work, and new approaches that were required. That sounds pretty similar to my experience as a software engineer. You start with preconceived notions that frequently shattered after you walk down a long and arduous path to discovering your mistakes. Then you stop, re-think things, and move in a new intellectual (design) direction. His final solution of asking LLMs to write a spec, then asking other LLMs to proof-read it is highly ingenious. I am really impressed. Please don't view that "really impressed" as my thinking that the whole world will move to vibe coding; rather I think this is a real achievement that deserves some study by us human engineers.
Maybe one day, but it doesn't look like we are very close yet. From the OP article, they handed it the working linux driver and asked it to just make this FreeBSD compatible, but it could not. Looks like it took OP a significant amount of work over 2 months to get something that seems to work.
What is interesting is it seems like the work resembles regular management, asking for a written specification, proof reading, etc.
> What is interesting is it seems like the work resembles regular management, asking for a written specification, proof reading, etc.
That's how I've been using the bot for years. Organize tasks, mediate between them, look for obvious-to-me problems and traps as things progress, and provide corrections where that seems useful.
It differs from regular management, I think, in that the sunk costs are never very significant.
Find a design issue that requires throwing out big chunks of work? No problem: Just change that part of the spec and run through the process for that and the stuff beneath it again. These parts cost approximately nothing to produce the first time through, and they'll still cost approximately nothing to produce the second time.
I'm not building a physical structure here, nor am I paying salaries or waiting days or weeks to refactor: If the foundation is wrong, then just nuke it and start over fresh. Clean slates are cheap.
(I don't know if that's the right way to do it, or the wrong way. But it works -- for me, at least, with the things I want to get done with a computer.)
To make these things work you do need to write a spec and figure out what unit tests will prove it actually did what you want. Even then it will take a bunch of shortcuts so it's best if you're a domain expert anyway.
In the mid-2000s there was a bit of drama when Linux wireless driver code ended up in BSD (or maybe the other way around). The Internet was angry that day my friend; a bunch of nerds sperging out over licenses and which license is more "free". Ultimately the code was removed.
It sure seems like AI agents can sidestep all that by claiming ignorance on license matters.
If the Linux driver is GPL and he made the new driver using AI to essentially copy it then claim that the result wasn't covered by the GPL... It's an area not settled by law yet.
Still not as bad as the guy who paid for a commercial license for some Linux driver, fed it into Claude to get it to update it to the latest Linux, and then released it as GPL! That's definitely not a grey area.
It's clickbait. The "driver" is actually a rather comprehensive kernel patch that modifies existing GPLv2 kernel code, so by its very nature it is at least GPLv2 (original parts may be dual licensed by the vendor if they want to, but they can't not make it GPLv2).
What this person paid $40,000 for is access to development kits for certain hardware, which with chip vendors like that usually also comes with support. The vendor cannot prevent you from exercising your GPLv2 rights after they hand you the code.
In fact, if you manufacture and distribute a device that uses these kernel patches it becomes your obligation to enable your customers to exercise their GPLv2 rights. Chip manufacturers know this and (if they are somewhat reputable) usually license their code appropriately.
Drivers can be anywhere from so trivial you can throw it together by hand in an afternoon to so complex that it requires an entire engineering team six months of concentrated effort.
> We're very close to just being about to set an AI coding agent to brute-force a driver for anything.
That sounds quite naive and it isn't that simple. Even the author expressed caution and isn't sure about how robust the driver is since he hasn't seen the code himself nor does he know if it works reliably.
Even entertaining the idea, someone would have already have replaced those closed source Nvidia drivers that have firmware blobs and other drivers that have firmware blobs to be open replacements. (Yes Nouveau exists, but at the disadvantage of not performing as well as the closed source driver)
> We're very close to just being about to set an AI coding agent to brute-force a driver for anything.
This is false. To "brute force" a driver, you'd need a feedback loop between the hardware's output and the driver's input.
While, in theory, this is possible for some analog-digital traducers (e.g WI-FI radio), if the hardware is a human-interface system (joystick, monitor, mouse, speaker, etc.) you literally need a "human in the loop" to provide feedback.
Additionally, many edge-cases in driving hardware can irrevocably destroy it and even a domain-specific agent wouldn't have any physics context for the underlying risks.
Strictly speaking, I don't think we need a human to run repetitive tests. We just need the human to help with the physical parts of the testing jig.
For instance: A microphone (optionally: a calibrated microphone; extra-optionally: in an isolated anechoic chamber) is a simple way to get feedback back into the machine about the performance of a speaker. (Or, you know: Just use a 50-cent audio transformer and electrically feed the output of the amplifier portion of the [presumably active] speaker back into the machine in acoustic silence.)
And I don't have to stray too far into the world of imagination to notice that the hairy, custom Cartesian printer in the corner of the workshop quite clearly resembles a machine that can move a mouse over a surface in rather precise ways. (The worst that can happen is probably not as bad as many of us have seen when using printers in their intended way, since at least there's no heaters and molten plastic required. So what if it disassembles itself? That's nothing new.)
Whatever the testing jig consists of, the bot can write the software part of the tests, and the tests can run as repetitiously as they need to.
I'm not so sure that Nouveau is slower than the proprietary Nvidia driver. I didn't run benchmarks on my personal use case but my subjective experience is that Nouveau might be faster. It's a Debian 11, X11, NVIDIA driver vs Debian 13, X11, Nouveau on the same laptop with a Quadro K1100mq. The desktop of the newer system seems to be faster. Of course it could be the sum of the individual improvements of kernel, GNOME, etc. I only move windows around my desktop, no games, so it's a very limited scenario.
someone would have already have replaced those closed source Nvidia drivers that have firmware blobs
This isn’t quite a fair example, these are so massively complex with code path built explicitly for so many individual applications. Nvidia cards are nearly a complete SoC.
Though then again, coding agents 1 year ago of the full autonomous sort were barely months old, and now here we are in one year. So, maybe soon this could be realistic? Hard to say. Even if code agents can do it, it still costs $ via tokens and api calls. But a year ago it would have cost me at least a few dollars and a lot more time to do things I get done now in a prompt and 10 minutes of Opus in a sandbox.
> We're very close to just being able to set an AI coding agent to brute-force a driver for anything.
Yeah, but that only works for so long as the AI doesn't brute force a command that hard-bricks the device. Say, it causes a voltage controller to give out way too high voltages by a command, burns e-fuses or erases vital EEPROM data (factory calibration presets come to my mind here).
I've found ai really good at the rare problems. The code hangs 1 out of 200 times - it spends half an hour and finds a race condition and a proposed fix - something complex that is really difficult for humans to figure out. Now grated the above problem took a dozen rounds over a couple days to completly solve (and it happend more often than every two weeks), but it was able to find an answer given symptoms.
I've thought for a while now that we'll end up moving to stricter languages that have safer concurrency, etc, partly for this reason. The most prominent resistance against such languages was the learning curve, but humans like OP aren't looking at the code now.
I think we're closer than most people realize, but the hard part isn't generating the code — it's testing it. Drivers need to handle edge cases that only show up under specific hardware conditions, timing issues, power states, etc. An AI can write a first draft pretty fast, but validating it still requires actual hardware in the loop. The FreeBSD case worked because brcmfmac is well-documented and the author could test on real hardware. For more obscure chipsets with no public datasheets, we're still stuck.
Software is still eating the world, now even faster. I wonder how soon we will adapt to this new situation where software is vibe coded for anything and make use of this software without caution as expressed in the article.
For most people the main difference will be: Will it run and solve my problem? Soon we will see malware being put into vibe coded software - who will wants to check every commit for write-only software?
I think in the future (in 10 years?) we are going to see a lot of disposable/throwaway software. I don’t know, imagine this: I need to buy tickets for a concert. I ask my AI agent that I want tickets. The agent creates code on the fly and uses it to purchase my tickets. The code could be simple curl command, or a full app with nice ui/ux. As a user I don’t need to see the code.
If I want to buy more tickets the same day, the ai agent will likely reuse the same code. But if i buy tickets again in one year, the agent will likely rebuild the code to adjust to the new API version the ticket company now offers.
Seems wasteful but it’s more dynamic. Vendors only need to provide raw APIs and your agent can create the ui experience you want. In that regard nobody but the company that owns your agent can inject malware into the software you use. Some software will last more than others (e.g., the music player your agent provided won’t probably be rebuilt unless you want a new look and feel or extra functionality). I think we’ll adopt the “cattle, not pets” approach to software too.
I don't know if this is the future or not, but it seems to serve no real purpose other than to enrich LLM company profits. There is real value in well designed code that has been battle tested and hardened over years of bugfixes and iteration. It's reliable, it's reusable, it's efficient and it's secure. The opposite of hastily written and poorly understood vibe code that may or may not even do what you want it to do, even while you think it's doing what you want it to do.
there is software and software. lots of enterprise software gets re-written every 2-5 years, some projects are in rubbish bin as soon as finished (if finished)
Aren’t we kinda realising that disposable/throwaway stuff is, like, bad? Why do we have to go down this wasteful and hyper-consumptive route AGAIN. Can we try and see the patterns here and move forwards?
Agree in general. I don’t see how making an agent create software is more wasteful than making dozens of engineers create the same thing. The latter seems more wasteful.
We have compilers creating binaries every single day. We don’t say thats wasteful.
Well ticketmaster (for example) is used by millions of people. It seems to me like spinning up millions of LLMs to produce a million different apps is way more wasteful than having a dozen developers produce one efficient app that everyone can use?
What to use? A website where you can quickly buy the stuff you want? Or an LLM where you specify how to buy the the thing you want, wait a while, then actually do the buying, and praying in the meantime, it's not throwing your money away?
I know people have done truly amazing things with AI lately, but I feel this in my bones. Almost every demo I see is like, uh, I don't need these extremely simple things in my life automated. I can just go to Delta and buy a plane ticket. I actually want to write my own email to my mom or wife. Of course a demo is just a demo, but also come on
It's easy to buy one plane ticket when a person has a specific plan -- to attend a meeting or a conference, or to match up with an airbnb timeslot or something.
It's harder to buy one plane ticket for the lowest cost amongst all the different ways that plane tickets can be bought, and harder yet to do so with a lack of specificity.
So, for instance: Maybe I don't have a firm plan. Maybe I'm very flexible.
Maybe all I want to do is say "Hey, bot. I want to go visit my friend in Florida sometime in the next couple of weeks and spend a few days there as inexpensively as I can. He's in Orlando. I can fly out of Detroit or Cleveland; all the same to me. If I drive to the airport myself, I'll need a place to keep my car at or near the airport. I also want to explore renting a car in Orlando. I pack light; personal bag only. Cattle class is OK, but I prefer a window seat. Present to me a list of the cheapest options, with itinerary."
That's all stuff that a human can sort out, but it takes time to manually fudge around dates and locations and deal with different systems and tabulate the results. And there's nuances that need covered, like parking at DTW is weird: It's all off-site, and it can be cheaper and better to rent a room for one night in a nearby hotel that includes long-term parking than to pay for parking by itself.
So the hypothetical bot does a bunch of API hits, applies its general knowledge of how things flow, and comes back with a list of verified-good options for me to review. And then I get to pick around that list, and ask questions, and mold it to best fit my ideal vision of an inexpensive trip to go spend time with a friend.
In English, and without ever dealing with any travel websites myself.
"Right. So I go to Detroit on Tuesday and check in at the hotel any time after noon, and take the free shuttle to the airport the next morning at around 0400 to the Evans terminal. Also, thanks for pointing out that this airport is like a ghost town until 0600 and I might want to bring a snack. Anyway, I get on the flight, land at Orlando, and they'll have a cheap car waiting for me at Avis. This will all cost me a total of $343, which sounds great. If that's all I need to know right now, then make it so. Pay for it and put it on my calendar."
(And yeah, this is a problem that I actually have from time to time. I'd love to have a bot that could just sort this stuff out with a few paragraphs.)
But who is really going to put together the infrastructure and harness to make all that work? My dad certainly isn't. My mother in law won't
What you describe will just end up a feature on Expedia. The highly technical builders of stuff that love to tinker vastly overestimate how much BS the general public will put up with
Indeed. I have zero desire to put such a thing together just for my own use.
I didn't address that concept at all above, but I think the notion of a million people each independently using the bot to write a million bespoke programs that each do the same things is...kind of a non-starter. It's something that can only happen in some weird reality where software isn't essentially free to copy, and where people are motivated neither by laziness, nor the size of their pocketbook.
If/when someone does put the work into getting it to happen, then I expect to find it on Github for people to lazily copy and use, or for them to make it available as a website or app for anybody to use (with even more laziness) -- and for them to monetize it.
I think it's a fallacy that if you make creating anything easier, more useful things will be created. In reality, you just end up with more useless things being created. Like with art, when it gets easier to create you don't end up with more good art. And with software - it's not like the quality of software has gone up as it's gotten easier to build, it's gotten much worse.
A related fallacy is that great things are easier to build when you can rapidly create stuff. That isn't really how great ideas are generated, it's not a slot machine where if you pull the lever 1000 times you generate a good idea and thus a successful piece of software can be made. This seems like a distinctly Silicon Valley, SFBA type mentality. Steve Jobs didn't invent the iPhone by creating 1000 different throwaway products to test the market. Etc etc.
Why would I do that if the gateway to the internet becomes these LLM interfaces? How is it not easier to ask or type 'buy me tickets for Les Mis'? In the ideal world it will just figure it out, or I frustratingly have to interact with a slightly different website to purchase tickets for each separate event I want to see.
One of the benefits that I see is as much as I love tech and writing software, I really really do not want to interface with a vast majority of the internet that has been designed to show the maximum amount of ads in the given ad space.
The internet sucks now, anything that gets me away from having ads shoved in my face constantly and surrounded by uncertainty that you could always be talking to a bot.
I'm sympathetic to this view too, but I don't think the solution is to have LLM's generate bespoke code to do it. We absolutely should be using them for more natural language interfaces tho.
Yeah, that can also work. But I don’t see the future of software is to keep building multimillion line of code systems in a semi manual way (with or without llms). I think we will reach a phase in which we’ll have to treat code as disposable. I don’t think we are there yet, though.
We probably need higher levels of abstraction, built upon more composable building blocks and more interplay between various systems. To me that requires less disposable code though.
Personally the experience getting tickets at the moment is horrible.
Endless queues, scalpers grabbing tickets within a second. Having to wait days/weeks periodically checking to see if a ticket is available.
The only platform I’m aware of that does guarantee a ticket can be purchased if available is Dice once you join a wait list. You get given a reasonable time to purchase it in too.
So I can see why people would prefer to defer this to an agent and not care about the implementation, I personally would. In the past I’ve been able to script notifications for it for myself and can see more people benefiting from it.
seriously. I don't even wanna compile code when binaries are available in a repository. the thought of everybody preferring vibe-coding something on their own over using something that's battle-tested and available to the collective is just crazy to me.
My point is: such apps wouldn’t need to exist if agents can provide in the future the same functionality for a fraction of the cost. Sure if ticketmaster is here to stay forever and keep their app up to date, we can keep using it. But what about new products? Would companies decide to build a single fixed app that all the users have to use, instead of, well, not building it? Sure the functionality would still need to be provided by the company (e.g., like offered in the form of an api), so they keep getting profit.
It’s like we usually say: companies should focus on their core value. And typically the ui/ux is not the core value of companies.
So we burn the planet up to deploy individually craft UIs on demand? I mean, I've read your comment three times, and I just don't see it. If we end up in that future, we're doomed.
> And typically the ui/ux is not the core value of companies
Huh? The user experience is basically ALL of the core product of a company.
If it's so easy for an AI to create ticket purchasing software that people can generate it themselves, then it's also true that the company can also use AI to generate that software for users who then don't need to generate it themselves. Obviously I think neither of these things are true or likely to happen.
> Huh? The user experience is basically ALL of the core product of a company.
Thats the case now, but I think it’s because there’s no other way around it nowadays. But if agents in the future provide a better or more natural ui/ux for many use cases, then companies core value will shift more into their inner core (which in software translates typically to the domain model)
> If it's so easy for an AI to create ticket purchasing software that people can generate it themselves, then it's also true that the company can also use AI to generate that software for users who then don't need to generate it themselves.
I think the generation of software per se will be transparent to the user. Users won’t think in terms of software created but wishes their agents make true.
This is also where I think we end up. If the behavior of the system is specified well enough, then the code itself is cheap and throwaway. Why have a static system that is brittle to external changes when you can just reconstruct the system on the fly?
Might be quite awhile before you can do this with large systems but we already see this on smaller contextual scales such as Claude Code itself
The specification for most systems _is the code_. English cannot describe business rules as succinctly as code, and most business rules end up being implied from a spec rather than directly specified, at least in my experience.
The thought of converting an app back into a spec document or list of feature requests seems crazy to me.
Why would it be? If you can describe an approximation of a system and regenerate it to be, let’s say, 98% accurate in 1% of the time that it would take to generate it by hand (and that’s being generous, it’s probably more like 0.1% in today’s day and age and that decimal is only moving left) aren’t there a giant set of use cases where the approximation of the system is totally fine? People will always bring up “but what about planes and cars and medicine and critical life or death systems”. Yeah sure, but a vast majority of the systems an end user interacts with every day do not have that level of risk tolerance
You are just validating the point that code is spec.
For your proposed system to work one must have a deterministic way of sending said spec to a system(Compiler?) and getting the same output everytime.
Input/Output is just one thing, software does a lot of 'side effect' kind of work, and has security implications. You don't leave such things to luck. Things either work or don't.
Absolutely let’s not do away with the determinism entirely. But we can decouple generation of the code from its deterministic behavior. If you are adequately able to identify the boundaries of the system and run deterministic tests to validate those boundaries that should be sufficient enough. It’s not like human written code was often treated with even that much scrutiny in the before times. I would validate human written code in the exact same way.
> If the behavior of the system is specified well enough
Then it becomes code: a precise symbolic representation of a process that can be unambiguously interpreted by a computer. If there is ambiguity, then that will be unsuitable for many systems.
The word “many” is carrying a lot of weight here. Given the probabilistic nature of AI I suspect that systems that are 98% correct will be just fine for all but the “this plane will crash” or “this person will get cancer” use cases. If the recreation of the system failed in that 2% by slightly annoying some end user, who gives a shit? If the stakes are low, and indeed they are for a large majority of software use cases, probabilistic approximation of everyone’s open source will do just fine.
If you’re worried about them achieving the 98%, worry no more, due to the probabilistic nature it will eventually converge on 9’s. Just keep sending the system through the probabilistic machine until it reaches your desired level of nines
>>If the behavior of the system is specified well enough, then the code itself is cheap and throwaway. Why have a static system that is brittle to external changes when you can just reconstruct the system on the fly?
You mean to say if the unit and functional tests cases are given the system must generate code for you? You might want to look at Prolog in that case.
>>Might be quite awhile before you can do this with large systems but we already see this on smaller contextual scales such as Claude Code itself
We have been able to do something like this reliably for like 50 years now.
eventually people will figure out what is safe to let AI build-and-run without supervision, and what level of problem do you need to actually understand what's under the hood, audit what it does, how to maintain it, etc
I need a way to inventory my vintage video games and my wife's large board game collection. I have some strong opinions, and it's very low risk so I'll probably let Claude build the whole thing, and I'll just run it
Would I do that with something that was keeping track of my finances, ensuring I paid things on time, or ensuring the safety of my house, or driving my car for me? Probably not. For those categories of software since I'm not an expert in those fields, but also it's important that they work and I trust them, I'll prefer software written and maintained by vendors with expertise and a track record in those fields
It used an existing implementation, in theory this was mostly a porting task.
GPL-wise, I don't know how much is inspiration vs "based on" would this be, it'd be interesting to compare.
This looks like my Company peers, as long as there is any existing implementation they are pretty confident they can deliver, poor suckers that do the "no one has done it before" first pass don't get any recognition.
> I didn’t write any piece of code there. There are several known issues, which I will task the agent to resolve, eventually. Meanwhile, I strongly advise against using it for anything beyond a studying exercise.
Months of effort and three separate tries to get something kind of working but which is buggy and untested and not recommended for anyone to use, but unfortunately some folks will just read the headline and proclaim that AI has solved programming. "Ubiquitous hardware support in every OS is going to be a solved problem"! Or my favourite: instead of software we will just have the LLM output bespoke code for every single computer interaction.
Actually a great article and well worth reading, just ignore the comments because it's clear a lot of people have just read the headline and are reading their own opinions into it.
The author specifically said that they did not read the code or even test the output very thoroughly. It was intentionally just a naive toy they wanted to play around with.
Nothing to do with AI, or even the capabilities of AI. The person intentionally didn't put in much effort.
Why is that the metric? In my job, I get drafts from junior employees that requires major revisions, often rewriting significant parts. It’s still faster to have someone take the first pass. Why can’t AI coding be used the same way? Especially if AIs are capable of following your own style and design choices, as well as testing code against a test suite, why isn’t it easier to start from a kind of working baseline than to rebuild from a raf h.
> The author specifically said that they did not read the code or even test the output very thoroughly. It was intentionally just a naive toy they wanted to play around with.
Yes and that's what I'm pointing out, they vibe coded it and the headline is somewhat misleading, although it's not the authors fault if you don't go read the article before commenting.
But it does have to do with AI (obviously), and specifically the capabilities of AI. If you need to be knowledgable about how wifi drivers work and put in effort to get a decent result, that obviously speaks volumes about the capabilities of the vibe coding approach.
I strongly suspect that somebody with domain knowledge around Wi-Fi drivers and OS kernel drivers could prompt the llm to spit out a lot more robust code than this guy was able to. That's not a knock on him, he was just trying to see what he could do. It's impressive what he actually accomplished given how little effort he put forth and how little knowledge he had about the subject.
Someone with domain knowledge could also just write the code instead of trying to get the stochastic prediction machine to generate it. I thought the whole point was to allow people without said expertise to generate it. After all, that seems to be the promise.
> Someone with domain knowledge could also just write the code instead of trying to get the stochastic prediction machine to generate it.
Well, people with the domain knowledge exist, yet they have not yet written this driver... why not?
Because there is other code those experts want to write, and they don't have time to write it all... but what if they could just give a fairly straightforward prompt and have the LLM do it for them? And if it only took minor tweaks to the prompt to have it write drivers for all the myriad combinations of hardware and software? At that point, there might be enough time to write it all.
Just because people exist that can DO all the work doesn't mean we have enough person-hours to do ALL the work.
> Because there is other code those experts want to write, and they don't have time to write it all... but what if they could just give a fairly straightforward prompt and have the LLM do it for them?
Then pretty soon they wouldn't be the experts anymore?
Maybe? But you could make the same argument that programmers today aren't "experts" at computers because they don't know how to build CPUs.
There is no reason to believe you can't gain expertise while still using higher and higher level abstractions. Yes, you will lose some of that low level expertise, but you can still be an expert at the problem set itself.
It will be like that at some point soon, just not now. Are you trying to make the point that because this technology is not yet perfect the fact that it can already do so much is unimpressive?
> The person intentionally didn't put in much effort.
Aren't you just describing every vibe code ever?
To think about it, that is probably my main issue with AI art/books etc. They never put in any effort. In fact, even the competition is about putting least effort.
The hype people are excited because they're guessing where it's going.
This is notable because it's a milestone that was not previously possible: a driver that works, from someone who spent ~zero effort learning the hardware or driver programming themselves.
It's not production ready, but neither is the first working version of anything. Do you see any reason that progress will stop abruptly here?
>> Do you see any reason that progress will stop abruptly here?
I do. When someone thinks they are building next generation super software for 20$ a month using AI, they conveniently forget someone else is paying the remaining 19,980$ for them for compute power and electricity.
Not Windows: Operating systems. We did get more capable operating systems. The point of the quote is "this is the worst the SOTA will ever be".
If Windows XP were fully supported today I still wouldn't use it, personally, despite having respect for it in its era. The core technology of how, eg OS sandboxing, security, memory, driver etc stacks are implemented have vastly improved in newer OSes.
Of course not. But I believe your Windows example was implying fundamental tech got worse.
The original "worst" quote is implying SOTA either stays the same (we keep using the same model) or gets better.
People have been predicting that progress will halt for many years now, just like the many years of Moore's law. By all indications AI labs are not running short of ideas yet (even judging purely by externally-visible papers being published and model releases this week).
We're not even throwing all of what is possible on current hardware technology at the issue (see the recent demonstration chips fabbed specifically for LLMs, rather than general purpose, doing 14k tokens/s). It's true that we may hit a fundamental limit with current architectures, but there's no indication that current architectures are at a limit yet.
People abstract upon new leaps in invention way too early though. Believing these leaps are becoming the standard. Look at cars, airplanes, phones, etc.
After we landed on the moon people were hyped for casual space living within 50 years.
The reality is it often takes much much longer as invention isn't isolated to itself. It requires integration into the real world and all the complexities it meets.
Even moreso, we may have ai models that can do anything perfectly but it will require so much compute that only the richest of the rich are able to use it and it effectively won't exist for most people.
> Do you see any reason progress will stop abruptly here?
Yeah, money and energy. And fundamental limitations of LLM's. I mean, I'm obviously guessing as well because I'm not an expert, but it's a view shared by some of the biggest experts in the field ¯\_(ツ)_/¯
I just don't really buy the idea that we're going to have near-infinite linear or exponential progress until we reach AGI. Reality rarely works like that.
So far the people who bet against scaling laws have all lost money. That does not mean that their luck won’t change, but we should at least admit the winning streak.
No I don't mean that. I mean the LLM parameter scaling laws. More importantly, it doesn't matter if I mean that or Moore's law or anything else, because I'm not making a forward looking prediction.
Read what I wrote.
I'm saying is if you bet AGAINST [LLM] scaling laws--meaning you bet that the output would peter out naturally somehow--you've lost 100% so far.
You gonna go read up on some 0% success rate strategies on the way?
What I’m saying is that we act as though claims about these scaling laws have never been tested. People feel free to just assert that any minute now the train will stop. They have been saying that since the Stochastic parrots.
It has not come true yet.
Tomorrow could be it. Maybe the day after. But it would then be the first victory.
At the very least, computers are still getting faster. Models will get faster and cheaper to run over time, allowing them more time to "think", and we know that helps. Might be slow progress, but it seems inevitable.
I do agree that exponential progress to AGI is speculation.
I know some proponents have AGI as their target, but to me it seems to be unrelated to the steadily increasing effectiveness of using LLMs to write computer code.
I think of it as just another leap in human-computer interface for programming, and a welcome one at that.
If you imagine it just keeps improving, the end point would be some sort of AGI though. Logically, once you have something better at making software than humans, you can ask it to make a better AI than we were able to make.
I don’t get this response. This is amazing! What percentage of programmers can even write a buggy FreeBSD kernel driver? If you were tasked at developing this yourself, wouldn’t it be a huge help to have something that already kind of works to get things started?
Fairly high could - but some could start today some need a few months of study before they know how to start (and then take 10x long than the first person to get it working)
> instead of software we will just have the LLM output bespoke code for every single computer interaction.
That's sort of the idea behind GPU upscaling: You increase gaming performance and visual sharpness by rendering games at lower resolutions and use algorithms to upscale to the monitor's native resolution. Somehow cheaper than actually rendering at high resolution: Let the GPU hallucinate the difference at a lower cost.
We don't use AI to help write code due to copyright concerns, it's against our policy. We obviously need to be very careful with what we're doing, and we can't be sure it hasn't seen Apple docs or RE'ed Apple binaries etc (which we have very careful clean-room policies on) in its training data. It also can't be guaranteed that the generated code is GPL+MIT compatible (as it may draw inspiration from other GPL only drivers in the same subsystems) but we wish to use GPL+MIT to enable BSD to take inspiration from the drivers.
Given that literally no one is enforcing this it seems like a moral rather than a business decision here no? Isn’t the risk here that your competitors, who have no such moral qualms, are just going to commit all sorts of blatant copyright infringement but it really doesn’t matter because no one is enforcing it?
I don't see open source as having "competitors". If someone wants to make a fork and use AI to write code (which I also think wouldn't be very useful, as there's no public documentation and everything needs to traced and RE-ed), they are welcome to. We're interested in upstreaming though, which means we need to make sure the origin of code and licence is all compatible and acceptable for mainline, and don't want to infringe on Apple's copyright (which they may enforce on a fork with less strict rules than ours).
I get “fear of being sued or decoupled from the upstream project” for sure. It definitely speaks to the sad state of affairs currently when companies at Apple’s scale simply operate with complete impunity at copyright law when it comes to using AI (you think Apple isn’t using stuff like Claude internally? I can 100% guarantee you they are) but are able to turn around and bully people who might dare to do the same
I’ll believe it when I see a court case of them going after someone for some ai generated slop and they win. Don’t see much evidence of that happening right now, or really ever since the advent of these things
Why would any serious project want to risk being the legal guinea pig for that experiment? And to what end? Everyone is pretty much in agreement that reusing code you're not licensed to use is bad for open source and just an all around shitty thing to do.
AI wouldn't work here. The OP task was converting one open source driver in to another one for FreeBSD. Since Mac doesn't have open source drivers to start with, a person still has to do the ground research. At least until you can somehow give the AI the ability to fully interact with the computer at the lowest levels and observe hardware connected to it.
I know this is me coming from my spoiled perspective of Linux and macOS, but the advice of running a VM that manages the WiFi hardware and passing it back to the OS seems insane to me
If an OS is designed to do this from the ground up, it can be incredibly efficient. (See: SeL4). Each process on linux is essentially its own isolated virtual machine already. Linux processes just have all sorts of ambient authority - for example, to access the filesystem and network on behalf of the user which started the process. Restricting what a process can do (sandboxing it) shouldn't have any bearing on performance.
Computers are so complicated right now that they're literally a network of computers. When you consider the closed firmware issue, using a VM is like having a small router you connect with ethernet. And I believe you could run such VM with 64MB of RAM.
Your LICENSE file reminds me that the copyright status of LLM-generated code remains absolutely uncharted waters and it's not clear that you can in fact legally license this under ISC
> The person intentionally didn't put in much effort.
And it's incredible that they got a somewhat working wifi driver given just how little effort they put in.
I have no doubt that a motivated person with domain knowledge trying to make a robust community driver for unsupported hardware could absolutely accomplish this in a fraction of the time and would be good quality.
AI didn't write a driver for him. He ported the Linux driver to FreeBSD with some assistance from an LLM.
What's more interesting to me is the licensing situation when this is done. Does the use of an LLM complicate it? Or is it just a derivative work which can be published under the ISC license [1] as well?
It wasn't a straight port, he had an LLM write a spec by reviewing the code, and then in another session another LLM did the development. That is basically a Clean-room approach. It would be unlikely there would be much - if any - code that is exactly the same so showing copyright infringement seems very unlikely.
the spec-first approach is actually the historical clean-room technique, same way Phoenix BIOS was legally written without copyright exposure in the 80s -- one team writes spec from observation, completely separate team codes from spec only, no shared authors. here it's AI doing both passes but in different sessions with no shared context, which approximates the same separation. probably good enough legally but definitely interesting that the same old trick applies.
You haven't addressed the parent's concern at all, which is that what the LLM was trained on, not what was fed into its context window. The Linux driver is almost certainly in the LLM's training data.
Also, the "spec" that the LLM wrote to simulate the "clean-room" technique is full of C code from the Linux driver.
This is speculation, but I suspect the training data argument is going to be a real loser in the courtroom. We’re getting out of the region where memorization is a big failure mode for frontier models. They are also increasingly trained on synthetic text, whose copyright is very difficult to determine.
We also so far have yet to see anyone successfully sue over software copyright with LLMs—-this is a bit redundant, but we’ve also not seen a user of one of these models be sued for output.
Maybe we converge on the view of the US copyright office which is that none of this can be protected.
I kind of like that one as a future for software engineers, because it forces them all at long last to become rules lawyers. If we disallow all copyright protection for machine generated code, there might be a cottage industry of folks who provide a reliably human layer that is copyrightable. Like Boeing, they will have to write to the regulator and not to the spec. I feel that’s a suitable destination for a discipline. That’s had it too good for too long.
Okay, so will companies now vibe-code a Linux-like license-washed kernel, to get rid of the GPL?
> The Linux driver is almost certainly in the LLM's training data.
Yes, and? Isn't Stallmans first freedom the "freedom to study the source code" (FSF Freedom I)? Where does it say I have to be a human to study it? If you argue "oh but you may only read / train on the source code if you are intending to write / generate GPL code", then you're admitting that the GPL effectively is only meant for "libre" programmers in their "libre" universe and it might as well be closed-source. If a human may study the code to extract the logic (the "idea") without infringing on the expression, why is it called "laundering" if a machine does it?
Let's say I look (as a human) at some GPL source code. And then I close the browser tab and roughly re-implement from memory what I saw. Am I now required to release my own code as GPL? More extreme: If I read some GPL code and a year later I implement a program that roughly resembles what I saw back then, then I can, in your universe, be sued because only "libre programmers" may read "libre source code".
In German copyright law, there is a concept of a "fading formula": if the creative features of the original work "fade away" behind the independent content of the new work to the point of being unrecognizable, it constitutes a new work, not a derivative, so the input license doesn't matter. So, for LLMs, even if the input is GPL, proprietary, whatever: if the output is unrecognizable from the input, it does not matter.
fair point, I glossed over that distinction. context separation \!= training data separation. if the driver was in training data, the "spec from observation" pass is already contaminated before the coding pass begins. the phoenix bios parallel actually required strict information separation at every stage -- here that's not achievable since you can't retrain the model. so the legal protection is much weaker than I implied.
An impressively softwarey alternative to simply pulling out the wifi module and replacing it with an AliExpress Apple wifi module adapter board and a compact M.2 WiFi module with a supported chipset :)
Is sc null? Who knows! Was it memset anywhere? No! Were any structs memset anywhere? Barely! Does this codebase check for null? Maybe in 3% of the places it should!
All throughout this codebase variables are declared and not initialized. Magic numbers are everywhere AND constants are defined everywhere. Constants are a mix of hex and int for what seem to be completely arbitrary reasons. Error handling is completely inconsistent, sometimes a function will return 5 places, sometimes a function will set an error code and jump to a label, and sometimes do both in the same function depending on which branch it hits.
All of this is the kind of code smell I would ask someone to justify and most likely rework.
Or I'm just a dumbass, I suppose I'll find out shortly.
I'm no expert either and I have not done kernel development, but I've done some embedded stuff in C and I think this is not unreasonable. brcmf_reg_read is only called in one place and the call chain is straightforward (starts in pcie.c brcmf_pcie_attach). Its always initialized by device_get_softc (https://man.freebsd.org/cgi/man.cgi?query=device_get_softc&s...) so as long as the device is attached its initialized. Likely something fails much earlier if it is not attached. I think this is pretty typical for low-level C, it would definitely not be idiomatic for every function in this call chain to check if sc was initialized - I don't know if there is a need to check it after calling device_get_softc but that would probably be reasonable just so people reviewing it don't have to check.
Some application code bases I've worked in would have asserts in every function since they get removed in release builds but I don't know that debug builds are even a thing in kernel devices.
The DNS name has both Russian and Indian in it, and its about vibe coding and AI to make system level software which can access the plaintext of my app comms: nope, nope, nope, nope and oh hell no.
The interesting part is not that it built a driver, it is that it built one for a specific chip on a specific OS with no existing example to copy. That is not autocomplete. That is reasoning about hardware registers, kernel interfaces, and driver architecture from documentation and first principles. A year ago this would have been a strong counterexample to AI coding claims. Now it is a blog post.
What? No. An LLM cannot reason, at least not what we think of when we say a human can reason. (There are models called "reasoning" models as a marketing gimmick.)
TFA describes a port of a Linux driver that was literally "an existing example to copy".
I asked chatgpt to summarise the this page:
>> In this slice, HN is more grounded than it sounds: roughly 2 real-world constraint comments for every 1 futurist take—but the dreamer comments are louder and more quotable, so they feel more dominant.
> Instead of continuing with the code, I spawned a fresh Pi session, and asked the agent to write a detailed specification of how the brcmfmac driver works
Planning markdown files are critical for any large LLM task.
The line between AI-assisted clean-room reverse-engineeing and open-source-license-laundering is a thin one, and I think the one described in the article crosses over to laundering. In classic clean-room design, one team documents the interfaces - not the code.
In this case though, the new driver has the same license as the project it was based on and explicitly credits the original project
This surprised me - but sure enough, they're right. The linux brcmfmac driver is ISC licensed:
https://github.com/torvalds/linux/blob/master/drivers/net/wi...
// SPDX-License-Identifier: ISC
It heavily depends on what you mean by "not the code", if all the code does is implement the necessary steps for the interface, then it's part of the interface. It's an interpretation of an interpretation of a datasheet.
Had an experience like this recently. QEMU stopped compiling for old versions of MacOS (pre-13) w/M1 arch, due to it requiring newer SDKs which don't support older MacOS versions. I put Sonnet 4.6 on the case, and it wrote a small patch, compiled and installed it in a matter of minutes, without giving it any instructions other than to look at errors and apply a fix. I definitely would have just given up without the AI.
Mind sharing that patch?
Mind sharing the prompt?
The future is that people stop buying software and just build it themselves. The spam filter in thunderbird was broken for me, I built my own in hours and it works way better. Oh that CRM doesn’t have the features you want? Build one that does. It will become very easy to built and deploy solutions to many of your own bespoke problems.
Unlikely. The future will be some people will do this, but honestly I think it will largely be people who were already tinkering with building things, whether full on software development or not
My mom and dad, my brother who drives a dump truck in a limestone quarry, my sister-in-law, none of them work in tech or consider themselves technical in any way. They are never, ever going to write their own software and will continue to just download apps from the app store or sign up for websites that accomplish the tasks they want
Some of us will do this, and it will be great for us for a period of time. That is, until others build another giant ball of shit 10,000x bigger than the npm/nodejs/javascript/java/cobol/c++/whatever else garbage pile we have today.
We'll be right back here in no-time.
Yeah, I think (completely biased as a long-time developer who is happily playing with AI for building stuff) people using AI to build their own tooling will be like a hot rod scene from the '60s. Lots of buzz, definitely some cool stuff, but in reality probably physically smaller than the noise around it.
Off to bust my virtual knuckles on something.
The future is either a regression of society from the resulting riots and massacres when 3/4 of the population is unemployed.
Or perpetual work camps for the masses.
Can you name me another time when humanity has run out of useful work to do?
Was it when we tamed fire, invented the wheel, writing, or double entry bookkeeping? All of which appear more consequential than current AI.
We’ll always have something to do. And humans like doing things.
The claim of the AI true-believers is that this time it will be different because of the "general" nature of it.
Fire can't build a house.
The wheel can't grow crops.
Writing can't set a broken bone.
Double entry bookkeeping can't write a novel.
If you believe that this AI+robotics wave will be able to do anything a human can do with fewer complaints, what would the humans move on to?
> Unlikely. The future will be some people will do this, but honestly I think it will largely be people who were already tinkering with building things, whether full on software development or not
Billions of dollars of stock market value disappeared because of the concern AI can create core SaaS functionality for corporations instead of them spending millions of dollars in licensing fees to SAP, Microsoft, etc.
This not about tinkering.
SaaS As We Know It Is Dead: How To Survive The SaaS-pocalypse! - https://www.forrester.com/blogs/saas-as-we-know-it-is-dead-h...
Why SaaS Stocks Have Dropped—and What It Signals for Software’s Next Chapter - https://www.bain.com/insights/why-saas-stocks-have-dropped-a...
Jim Cramer says AI fears have made the stock market fragile - https://www.cnbc.com/2026/02/23/jim-cramer-says-ai-fears-hav...
>Billions of dollars of stock market value disappeared because of the concern
That's really the key, right there. The value disappeared because of concern, not of anything real.
When ungodly amounts of money is governed entirely by vibes, it's hardly surprising they lose ungodly amounts of money to vibe-coding.
The downside is the effects of all that money shifting is very real :(
Did you see the network security stock sell-off after Anthropic announced a code security analysis feature? There's a sliver of nothing between mob mentality and wisdom of the crowd.
It's too soon to bother making predictions. Shits gonna be wild for the next few years, then some type of market correction will happen, and we'll start to get an idea of how things will actually look.
Can we please have some calm, stable, boring years please, before I'm dead? The last 5 years have already been "wild" enough. The world is unrecognizable. I'm unprepared for further wildness.
Excluding the batshit insane political side, I don't actually think it's been as nuts as people think, or at least not uniformly so.
I have a lot of friends in the tech sector, but outside the FANNG/silicone valley/startup bubbles. It's been largely business as normal across the board. Twitter and social media warps our perspective I think.
there was a whole pandemic
The market is losing its shit over this because people are operating on the thesis that "AI will be able to ..." rather than "AI can demonstrably do ...". At some point they're all gonna get margin called on their futurisms. It would be a lot better if, before getting excited, we ask to see experimental results. So you say you have a world-beating security tool? Show me something it can do that all the other ones can't. That would be worth getting excited about, not a vague blog post about vibes and dreams.
Oh no Bain and Jim Cramer think software is dead. All that is is a signal to buy software stocks
This feels like when 3D printers hit the consumer market and everyone declared that buying things was over, everyone will just print them at home. There's tons of benefits to standardised software too. Companies rely on the fact they can hire people who already know photoshop/xero/webpack/etc rather than having to train them from scratch on in house tools.
Business software is also useful because it gives companies a process to follow that even if not optimal, is probably better than what they’d come up with on their own.
The flexibility of big source of truth systems like ERP and CRM is sometimes (often) a downside. Many times these companies need to be told how to do something instead of platform vendors bending over backwards to enable horrible processes
What ever happened to that?
They became much like woodworking or power tools. Accessible to anyone who wants them, but still requires an investment to learn and use. While the majority still buys their stuff from retail.
Or rents a printer for one-off designs. Unless you 3d print on the regular it's easier to pay someone to print one-off designs. You get a printer that gets regularly used and services and a knowledgeable operator. Not at all dissimilar to fancy commercial sign printers. In a past life working at $large-uni we really did try to make those damn things self-service but it was so much easier for the staff to be the print queue.
It turns out they're really great at building toys, cosplay gear and little plastic parts for things, but in general not that useful in most people's daily lives. Kind of like Ai.
Totally agree. I've found in many cases it's easier to roll your own software/patch existing software with AI than to open an issue, submit a PR, get it reviewed/merged, etc. Let alone buying software
Yes, but this is the honeymoon period. A year from now when you want to make three of the tools talk to each other and they're in three different languages, two of which you don't know and there's no common interface or good place to put one, well, here's hoping you hung onto the design documents.
What I want is to be able to use AI to modify the software we already have. Granted I've wanted to do that long before AI, but now maybe plugins will get more popular again now that AI could write them for us
This is honestly one of the more naive takes I've seen in awhile. People includes more than people that frequent HN. My wife and I are discussing I'd like to keep finance and related things in a password manager. She is in the social sciences (has a couple of degrees) and isn't a fan.
The majority of computer users are not on HN.
You profile says "Trying to figure out what I want to do with my life. DM me if you have ideas." - I would recommend exploring connections and opinions outside tech.
Definitely feels like that is the bigger take away. Not that it "solves all problems" or "isn't good enough to be merged". But that we are arriving to a place where solutions can be good enough to solve the problem you have. Reminds me of early Github when custom and unique software became much more accessible to everyone. Way less digging or going without.
But people don’t actually want to just build it themselves - they never have, and I don’t see any reason to believe they ever will.
the spec-first approach is the real insight here. in my experience with AI-assisted codegen, having the model write a detailed spec doc before any implementation code cuts the iteration cycles dramatically. without it the agent just thrashes between plausible-looking approaches. with a good spec it can stay coherent across thousands of lines because it has something to ground against.
the two-month timeline is interesting too - would love to know the actual compute cost. for a working kernel driver that would have otherwise never existed, even $500 in API calls seems like a bargain.
a kernel module written entirely by AI, loading into ring 0, that the author admits has known issues and shouldnt be used in production. Were speedrunning the "insecure by default" era.
If I were a superintelligent AI trying to escape, wifi drivers seem like a great way to do it.
OK. This gives me eagle eye movie vibes!
well that is for certain
Manufacturer/vendor did not provided open source driver with real freedom license (BSD/MIT/...) or documentation on which the driver could be written ... this is the result ... and its still better to overcome a problem in any way then to NOT overcome it at all ... and this driver is just a code - people can look at it and improve it.
> Manufacturer/vendor did not provided open source driver with real freedom license (BSD/MIT/...)
Article says,
> Brcmfmac is a Linux driver (ISC licence) for set of FullMAC chips from Broadcom
I don't feel like looking to see where the Linux driver came from, but someone provided a permissively-licensed driver.
And so what? Security is important, sure, but there’s nothing wrong with an experiment or side project with full disclosure upfront about its known limitations.
People should be empowered to share and tinker, without feeling like they need to setup a bug bounty program first. Not every GitHub project is a vendor/customer relationship.
I feel like ubiquitous hardware support in every OS is going to be a solved problem soon. We're very close to just being able to set an AI coding agent to brute-force a driver for anything. The hardware designer would have to go well out of their way to obfuscate the interface if they really wanted to forbid it, instead of just not bothering to support an OS like BSD or Linux.
The primary reason why it worked is because Claude could rip off the Linux driver. Without any prior work to rely on, how will the AI figure out proprietary hardware?
He also mentioned it took 2 months. I’m actually wondering how long it would take to do the Linux to BSD port by eyeball, or at least ai assisted. Probably not that much longer? I guess it depends on wall time vs real time.
Most hardware drivers are simpler than people expect. The hardware is usually designed to do the sensible thing in a straightforward way, and you're just translating what the OS wants into a bunch of bits you need to write to the right hardware register.
On the flip side, the perceived barrier is high. Most folks don't have an intuitive sense of how the kernel or "bare metal" environment differs from userland. How do you allocate memory? Can you just printf() a debug message? How to debug if it freezes or crashes? All of these questions have pretty straightforward answers, but it means you need to set aside time to learn.
So, I wouldn't downplay the value of AI for the same reason I wouldn't downplay it with normal coding. It doesn't need to do anything clever to be useful.
That said, for the same reasonss, it's harder to set up a good agent loop here, and the quality standard you're aiming for must be much higher than with a web app, because the failure mode isn't a JavaScript error, but possibly a hard hang.
Harder, but not impossible. You 3d print a jig for a solenoid and a relay so you can warm/cold reboot the laptop, get a pizerow setup and configured to be a keyboard you can control over SSH, a webcam watching the screen, a hardwired Ethernet port, a second computer to manipulate the Device Under Test (aka the MacBook/laptop with a missing whatever driver). Even though waiting on Claude Code doesn't hit flow state if you've only got one project going, setting things up so it can run with it is still fun, for specific and rather nerdy definitions of fun.
I estimate two weeks from having never seen kernel source to something reasonably stable based on experience with block devices/raid controllers. But I knew a bit of C (had patches merged into SVN, Exim4, etc).
- have AI write a windows filter driver to capture all hardware communications
- have AI reverse engineer Windows WiFi driver and make a crude prototype
- have AI compare registers captured by filter driver with linux driver version and iterate until they match (or at least functional tests pass)
not exactly rocket surgery, and windows device drivers generally don't have DRM/obfuscation, so reverse engineering them isn't hard for LLMs.
So we send an AI agent to the French cafe instead of us?
https://download.samba.org/pub/tridge/misc/french_cafe.txt
Shouldn't AI be able to take this one step further and just analyze the binary (of the samba server in this case) and create all kinds of interface specs from it?
Make the LLM operate the hypervisor VM so it can observe a binary as it executes to write specs for it?
I'm working on this. It's wild.
Trial and error?
Just like it does when given an existing GPL’d source and dealing with its hallucinations, the agent could be operated on a black box (or a binary Windows driver and a disassembly)?
The GPL code helped here but as long as the agent can run in a loop and test its work against a piece of hardware, I don’t see why it couldn’t do the same without any code given enough time?
Presumably one would like to use the laptop before the million years it would take the million monkeys typing on a million typewriters to produce the Shakespearean WiFi driver.
Consider that even with the Linux driver available to study, this project took two months to produce a viable BSD driver.
This process took two months, including re-appraisals of the process itself, and it isn't clear that the calendar on the wall was a motivator.
The next implementation doesn't have to happen in a vacuum. Now that it has been done once, a person can learn from it.
They can discard the parts that didn't work well straight away, and stick to only the parts of the process that have good merit.
We'll collectively improve our methods, as we tend to do, and the time required will get shorter with each iteration.
Seems very promising but then you realize the LLM behind said agent was trained on public but otherwise copyright encumbered proprietary code available as improperly redistributed SDKs and DDKs, as well as source code leaks and friends.
In fact most Windows binaries have public debug symbols available which makes SRE not exactly a hurdle and an agent-driven SRE not exactly a tabula rasa reimplementation.
The Linux driver in this case is ISC licensed. There’s no legal or ethical problem in porting it. This is open source working as intended.
I feel like the jury is still out on whether this is acceptable for GPL code. Suppose you get agent 1 to make a clear and detailed specification from reading copyrighted code (or from reverse engineering). Then get agent 2 to implement a new driver using the specification. Is there anything wrong with that?
>anything wrong with that?
Wonder if the courts will move fast enough to generally matter.
As I understand it, reverse engineering for the purpose of interoperability is allowed under the law. The only thing subject to copyright is your code. So long as a separate implementation (made by an AI model or made by hand) doesn't use any of your actual code, you have no claim over it. Only the code is yours.
AI models make the process of reversing and reimplementing drivers much cheaper. I don't understand the problem with that - it sounds like a glorious future to me. Making drivers cheaper and easier to write should mean more operating systems, with more higher quality drivers. I can't wait for asahi linux to support Apple's newer hardware. I'm also looking forward to better linux and freebsd drivers. And more hobbyist operating systems able to fully take advantage of modern computing hardware.
I don't see any downside.
Combine AI + genetic algo?
https://www.reddit.com/r/learnmachinelearning/comments/1665d...
True. But also -- how do humans do it? There are docs and there's other similar driver code. I wouldn't be surprised if Claude could build new driver code sight-unseen, given the appropriate resources
> But also -- how do humans do it?
Probably a mix of critical thinking, thinking from first principles, etc. You know, all things that LLM's are not capable of.
Except it often is the case that when you break down what humans are doing, there are actual concrete tasks. If you can convert the tacit knowledge to decision trees and background references, you likely can get the AI to perform most non-creative tasks.
If you have to hold the LLM's hand to accomplish a task, using human intelligence to do so, you can't consider the task performed by AI.
I half agree. But two points: 1) if you can formalize your instructions ... then future instances can be fully automated. 2) You are still probably having the AI perform many sub-tasks. AI-skeptics regularly fall into this god-of-the-gaps trap. You aren't wrong that human-augmented AI isn't 100% AI ... but it still is AI-augmentation, and again, that sets the stage for point 1 - to enable later future full automation on long enough timecycles.
> if you can formalize your instructions
Isn't that...code?
No. Think of all engineering disciplines that aren't software. Those all depend on human-language formal instructions.
Formal instructions paired by tables are almost as rigid as code. Btw normal engineering disciplines have a lot of strict math and formulas. Neither electrical nor mechanical engineering runs on purely instructions.
The non-software engineering disciplines I'm thinking of rely on blueprints, schematics, diagrams, HDLs, and tables much more than human language formal instructions. More so than software engineering.
Disagree, they rely on both equally, not much more on one of them. Consider the process of actually building a large structure with only a set of such diagrams. The diagrams primarily cover nouns (what, where, using what), whereas the human language formal instructions cover the verbs (how, why, when). You can't build anything with only one of the two.
And sure, the human language formal instructions often appear inside tables or diagrams, that doesn't make them anything less so.
This is based on having worked with companies that do projects in the 10 figure range.
Humans do it with access to the register-level data sheets, which are only available under NDA, and usually with access to a logic analyzer for debugging.
Usually, the problem with developing a driver isn't "writing the code," it's "finding documentation for what the code should do."
... and then figuring out where the hardware company cheapened out and created a whole unfixable mess (extra fun when you first ship your first 10k batch and things start failing after the vendor made a "simple revision"). Then finding a workaround.
> But also -- how do humans do it?
Intelligence.
Scientific method. There are many small discoveries humans make that involve forming a hypothesis, trying something out, observing the results, and coming to a conclusion that leads to more experimentation until you get to what you actually want. LLMs can’t really do that very well as the novel observations would not be in their training data.
GPL is not a patent. It covers the work and _derivatives_; it does not cover ideas or general knowledge. The chip in question has docs.
I fully expect that Claude wrote code that does not resemble that of the driver in the Linux tree. TFA is taking on some liability if it turns out that the code Claude wrote does largely resemble GPL'ed code, but if TFA is not comfortable with the code written by Claude not resembling existing GPL'ed code then they can just post their prompts and everyone who needs this driver can go through the process of getting Claude to code it.
In court TFA would be a defendant, so TFA needs to be sure enough that the code in question does not resemble GPL'ed code. Here in the court of public opinion I'd say that claims of GPL violation need to be backed up by a serious similarity analysis.
Prompts cannot possibly be considered derivatives of the GPL'ed code that Claude might mimic.
From the file headers:
SPDX-License-Identifier: ISC
Copyright (c) 2010-2022 Broadcom Corporation
Copyright (c) brcmfmac-freebsd contributors
Based on the Linux brcmfmac driver.
I'm going to ahead and say there are copyright law nightmares, right here.
That headers looks pretty reasonable to me. I don't see anything misleading or ambiguous about it. Whenever I am heavily modifying some licensed code, I always make sure to include a similar header.
I am confused. My first thought was maybe the original Linux driver was GPL'd, but it is not. It is ISC'd. Look here: https://github.com/torvalds/linux/blob/master/drivers/net/wi...It adds a contributor.
To add a contributor, you need "significant" _human_ input. The output of models has so far not been deemed copyrightable.
As it acknowledges the original source, it needs to show the human effort that allows it to be bound to the new contributors.
Except...
In this case, they didn't really work from the chip's published documentation. They instead ultimately used a sorta-kinda open-book clean-room method, wherein they generated documentation using the source code of the GPL'd Linux driver and worked from that.
That said: I don't have a dog in this race. I don't really have an opinion of whether this is quite fine or very-much not OK. I don't know if this is something worthy of intense scrutiny, or if it should instead be accepted as progress.
(It is interesting to think about, though.)
As I mentioned in another comment, the original referenced source code from the Linux kernel is ISC'd, not GPL'd. See here: https://github.com/torvalds/linux/blob/master/drivers/net/wi...
I don't work on the Linux kernel, but I do poke around the sources from time to time. I was genuinely surprised to see that some hardware drivers are not GPL'd. That is news to me, but makes commercial sense to when I think deeper about it. When these manufacturers donate a driver to Linux, I don't think GPL is a priority to them. In the case of Broadcom, they probably want their WiFi hardware to more compatible with SBCs to drive sales (of future SBCs that use their WiFi hardware and run Linux). If anything, choosing a more liberal license (ISC) increases the likelihood that their Linux driver will be ported to other operating systems. From Broadcom's commercial view, that is a win to sell more SBCs (free labour from BSDers!).
Also, if the original driver was GPL'd, I am pretty sure it is fair game (from US copyright and software license perspective) to use one LLM to first reverse engineer the GPL'd driver to write a spec. Then use a different LLM to implement a new driver for FreeBSD that is ISC'd. You can certainly do that with human engineers, and I see no reason to believe that US courts would object to separate LLMs being used in the two necessary steps above. Of course, this assumes good faith on the part of the org doing the re-write. (Any commercial org doing this would very carefully document the process, expecting a legal challenge.)
I do think this blog post introduces a genuinely (to me!) novel way to use LLMs. My favourite part of that blog post was talking about all of the attempts that did not work, and new approaches that were required. That sounds pretty similar to my experience as a software engineer. You start with preconceived notions that frequently shattered after you walk down a long and arduous path to discovering your mistakes. Then you stop, re-think things, and move in a new intellectual (design) direction. His final solution of asking LLMs to write a spec, then asking other LLMs to proof-read it is highly ingenious. I am really impressed. Please don't view that "really impressed" as my thinking that the whole world will move to vibe coding; rather I think this is a real achievement that deserves some study by us human engineers.
Repurposing NDIS drivers is a time honored tradition. No source, but oh well.
It could be given reference material like documentation/datasheets and/or just be prompted as to how it should work.
I haven't read the article but my first question was, install wifibox?
It's a bhyve VM running alpine Linux and you pass through your WiFi adaptor and get a bridge out on the freebsd host.
Literally explained in the post, that’s why you read first.
Maybe one day, but it doesn't look like we are very close yet. From the OP article, they handed it the working linux driver and asked it to just make this FreeBSD compatible, but it could not. Looks like it took OP a significant amount of work over 2 months to get something that seems to work.
What is interesting is it seems like the work resembles regular management, asking for a written specification, proof reading, etc.
> What is interesting is it seems like the work resembles regular management, asking for a written specification, proof reading, etc.
That's how I've been using the bot for years. Organize tasks, mediate between them, look for obvious-to-me problems and traps as things progress, and provide corrections where that seems useful.
It differs from regular management, I think, in that the sunk costs are never very significant.
Find a design issue that requires throwing out big chunks of work? No problem: Just change that part of the spec and run through the process for that and the stuff beneath it again. These parts cost approximately nothing to produce the first time through, and they'll still cost approximately nothing to produce the second time.
I'm not building a physical structure here, nor am I paying salaries or waiting days or weeks to refactor: If the foundation is wrong, then just nuke it and start over fresh. Clean slates are cheap.
(I don't know if that's the right way to do it, or the wrong way. But it works -- for me, at least, with the things I want to get done with a computer.)
To make these things work you do need to write a spec and figure out what unit tests will prove it actually did what you want. Even then it will take a bunch of shortcuts so it's best if you're a domain expert anyway.
Aka, the hard part.
That pesky GPL does not stop us anymore, cool.
What would the GPL have to do with this?
In the mid-2000s there was a bit of drama when Linux wireless driver code ended up in BSD (or maybe the other way around). The Internet was angry that day my friend; a bunch of nerds sperging out over licenses and which license is more "free". Ultimately the code was removed.
It sure seems like AI agents can sidestep all that by claiming ignorance on license matters.
AI written driver could be a rip off Linux driver.
If the Linux driver is GPL and he made the new driver using AI to essentially copy it then claim that the result wasn't covered by the GPL... It's an area not settled by law yet.
Still not as bad as the guy who paid for a commercial license for some Linux driver, fed it into Claude to get it to update it to the latest Linux, and then released it as GPL! That's definitely not a grey area.
https://youtu.be/xRvi3k8XV8E
Absolutely mental behaviour for a business. What were they thinking?
It's clickbait. The "driver" is actually a rather comprehensive kernel patch that modifies existing GPLv2 kernel code, so by its very nature it is at least GPLv2 (original parts may be dual licensed by the vendor if they want to, but they can't not make it GPLv2).
What this person paid $40,000 for is access to development kits for certain hardware, which with chip vendors like that usually also comes with support. The vendor cannot prevent you from exercising your GPLv2 rights after they hand you the code. In fact, if you manufacture and distribute a device that uses these kernel patches it becomes your obligation to enable your customers to exercise their GPLv2 rights. Chip manufacturers know this and (if they are somewhat reputable) usually license their code appropriately.
I do not know why people do not just add GPL license to their generated code.
Drivers can be anywhere from so trivial you can throw it together by hand in an afternoon to so complex that it requires an entire engineering team six months of concentrated effort.
> We're very close to just being about to set an AI coding agent to brute-force a driver for anything.
That sounds quite naive and it isn't that simple. Even the author expressed caution and isn't sure about how robust the driver is since he hasn't seen the code himself nor does he know if it works reliably.
Even entertaining the idea, someone would have already have replaced those closed source Nvidia drivers that have firmware blobs and other drivers that have firmware blobs to be open replacements. (Yes Nouveau exists, but at the disadvantage of not performing as well as the closed source driver)
That would be a task left to the reader.
> We're very close to just being about to set an AI coding agent to brute-force a driver for anything.
This is false. To "brute force" a driver, you'd need a feedback loop between the hardware's output and the driver's input.
While, in theory, this is possible for some analog-digital traducers (e.g WI-FI radio), if the hardware is a human-interface system (joystick, monitor, mouse, speaker, etc.) you literally need a "human in the loop" to provide feedback.
Additionally, many edge-cases in driving hardware can irrevocably destroy it and even a domain-specific agent wouldn't have any physics context for the underlying risks.
Strictly speaking, I don't think we need a human to run repetitive tests. We just need the human to help with the physical parts of the testing jig.
For instance: A microphone (optionally: a calibrated microphone; extra-optionally: in an isolated anechoic chamber) is a simple way to get feedback back into the machine about the performance of a speaker. (Or, you know: Just use a 50-cent audio transformer and electrically feed the output of the amplifier portion of the [presumably active] speaker back into the machine in acoustic silence.)
And I don't have to stray too far into the world of imagination to notice that the hairy, custom Cartesian printer in the corner of the workshop quite clearly resembles a machine that can move a mouse over a surface in rather precise ways. (The worst that can happen is probably not as bad as many of us have seen when using printers in their intended way, since at least there's no heaters and molten plastic required. So what if it disassembles itself? That's nothing new.)
Whatever the testing jig consists of, the bot can write the software part of the tests, and the tests can run as repetitiously as they need to.
I'm not so sure that Nouveau is slower than the proprietary Nvidia driver. I didn't run benchmarks on my personal use case but my subjective experience is that Nouveau might be faster. It's a Debian 11, X11, NVIDIA driver vs Debian 13, X11, Nouveau on the same laptop with a Quadro K1100mq. The desktop of the newer system seems to be faster. Of course it could be the sum of the individual improvements of kernel, GNOME, etc. I only move windows around my desktop, no games, so it's a very limited scenario.
Absolutely not. Nouveau might give you a usable desktop but the second you need to do any 3d rendering or decoding it’s atrocious.
In my experience, the proprietary driver has always blown away nouveau at 3D rendering performance and featureset.
someone would have already have replaced those closed source Nvidia drivers that have firmware blobs
This isn’t quite a fair example, these are so massively complex with code path built explicitly for so many individual applications. Nvidia cards are nearly a complete SoC.
Though then again, coding agents 1 year ago of the full autonomous sort were barely months old, and now here we are in one year. So, maybe soon this could be realistic? Hard to say. Even if code agents can do it, it still costs $ via tokens and api calls. But a year ago it would have cost me at least a few dollars and a lot more time to do things I get done now in a prompt and 10 minutes of Opus in a sandbox.
> We're very close to just being able to set an AI coding agent to brute-force a driver for anything.
Yeah, but that only works for so long as the AI doesn't brute force a command that hard-bricks the device. Say, it causes a voltage controller to give out way too high voltages by a command, burns e-fuses or erases vital EEPROM data (factory calibration presets come to my mind here).
Hardware driver bugs frequently manifest as concurrency flakiness or heisenbugs.
AI is notoriously bad at dealing with bugs that only cause problems every few weeks.
I've found ai really good at the rare problems. The code hangs 1 out of 200 times - it spends half an hour and finds a race condition and a proposed fix - something complex that is really difficult for humans to figure out. Now grated the above problem took a dozen rounds over a couple days to completly solve (and it happend more often than every two weeks), but it was able to find an answer given symptoms.
I've thought for a while now that we'll end up moving to stricter languages that have safer concurrency, etc, partly for this reason. The most prominent resistance against such languages was the learning curve, but humans like OP aren't looking at the code now.
So are people
The driver used as inspiration is fully opensource
https://github.com/torvalds/linux/tree/v6.18/drivers/net/wir...
I don't know why it has not been brought in the BSDs (maybe license), but they do are a bit more careful with what they include in the OS.
I think we're closer than most people realize, but the hard part isn't generating the code — it's testing it. Drivers need to handle edge cases that only show up under specific hardware conditions, timing issues, power states, etc. An AI can write a first draft pretty fast, but validating it still requires actual hardware in the loop. The FreeBSD case worked because brcmfmac is well-documented and the author could test on real hardware. For more obscure chipsets with no public datasheets, we're still stuck.
Tell me you've never developed a driver, without telling me you've never developed a driver.
Software is still eating the world, now even faster. I wonder how soon we will adapt to this new situation where software is vibe coded for anything and make use of this software without caution as expressed in the article.
For most people the main difference will be: Will it run and solve my problem? Soon we will see malware being put into vibe coded software - who will wants to check every commit for write-only software?
I think in the future (in 10 years?) we are going to see a lot of disposable/throwaway software. I don’t know, imagine this: I need to buy tickets for a concert. I ask my AI agent that I want tickets. The agent creates code on the fly and uses it to purchase my tickets. The code could be simple curl command, or a full app with nice ui/ux. As a user I don’t need to see the code.
If I want to buy more tickets the same day, the ai agent will likely reuse the same code. But if i buy tickets again in one year, the agent will likely rebuild the code to adjust to the new API version the ticket company now offers. Seems wasteful but it’s more dynamic. Vendors only need to provide raw APIs and your agent can create the ui experience you want. In that regard nobody but the company that owns your agent can inject malware into the software you use. Some software will last more than others (e.g., the music player your agent provided won’t probably be rebuilt unless you want a new look and feel or extra functionality). I think we’ll adopt the “cattle, not pets” approach to software too.
I don't know if this is the future or not, but it seems to serve no real purpose other than to enrich LLM company profits. There is real value in well designed code that has been battle tested and hardened over years of bugfixes and iteration. It's reliable, it's reusable, it's efficient and it's secure. The opposite of hastily written and poorly understood vibe code that may or may not even do what you want it to do, even while you think it's doing what you want it to do.
there is software and software. lots of enterprise software gets re-written every 2-5 years, some projects are in rubbish bin as soon as finished (if finished)
Aren’t we kinda realising that disposable/throwaway stuff is, like, bad? Why do we have to go down this wasteful and hyper-consumptive route AGAIN. Can we try and see the patterns here and move forwards?
Agree in general. I don’t see how making an agent create software is more wasteful than making dozens of engineers create the same thing. The latter seems more wasteful.
We have compilers creating binaries every single day. We don’t say thats wasteful.
Well ticketmaster (for example) is used by millions of people. It seems to me like spinning up millions of LLMs to produce a million different apps is way more wasteful than having a dozen developers produce one efficient app that everyone can use?
All of the major LLMs have re-useable prompts now, so once someone makes a skill [1] that does it, anyone can use it.
Even now, with OpenClaw and all of the spinoffs, it's possible to have n agent do this today.
[1]: https://claude.com/blog/equipping-agents-for-the-real-world-...
What to use? A website where you can quickly buy the stuff you want? Or an LLM where you specify how to buy the the thing you want, wait a while, then actually do the buying, and praying in the meantime, it's not throwing your money away?
Or, and hear me out here, you go to the existing site or app which sells concert tickets, press the purchase button, and then you have your tickets.
Like what are we even doing here...
I know people have done truly amazing things with AI lately, but I feel this in my bones. Almost every demo I see is like, uh, I don't need these extremely simple things in my life automated. I can just go to Delta and buy a plane ticket. I actually want to write my own email to my mom or wife. Of course a demo is just a demo, but also come on
It's easy to buy one plane ticket when a person has a specific plan -- to attend a meeting or a conference, or to match up with an airbnb timeslot or something.
It's harder to buy one plane ticket for the lowest cost amongst all the different ways that plane tickets can be bought, and harder yet to do so with a lack of specificity.
So, for instance: Maybe I don't have a firm plan. Maybe I'm very flexible.
Maybe all I want to do is say "Hey, bot. I want to go visit my friend in Florida sometime in the next couple of weeks and spend a few days there as inexpensively as I can. He's in Orlando. I can fly out of Detroit or Cleveland; all the same to me. If I drive to the airport myself, I'll need a place to keep my car at or near the airport. I also want to explore renting a car in Orlando. I pack light; personal bag only. Cattle class is OK, but I prefer a window seat. Present to me a list of the cheapest options, with itinerary."
That's all stuff that a human can sort out, but it takes time to manually fudge around dates and locations and deal with different systems and tabulate the results. And there's nuances that need covered, like parking at DTW is weird: It's all off-site, and it can be cheaper and better to rent a room for one night in a nearby hotel that includes long-term parking than to pay for parking by itself.
So the hypothetical bot does a bunch of API hits, applies its general knowledge of how things flow, and comes back with a list of verified-good options for me to review. And then I get to pick around that list, and ask questions, and mold it to best fit my ideal vision of an inexpensive trip to go spend time with a friend.
In English, and without ever dealing with any travel websites myself.
"Right. So I go to Detroit on Tuesday and check in at the hotel any time after noon, and take the free shuttle to the airport the next morning at around 0400 to the Evans terminal. Also, thanks for pointing out that this airport is like a ghost town until 0600 and I might want to bring a snack. Anyway, I get on the flight, land at Orlando, and they'll have a cheap car waiting for me at Avis. This will all cost me a total of $343, which sounds great. If that's all I need to know right now, then make it so. Pay for it and put it on my calendar."
(And yeah, this is a problem that I actually have from time to time. I'd love to have a bot that could just sort this stuff out with a few paragraphs.)
But who is really going to put together the infrastructure and harness to make all that work? My dad certainly isn't. My mother in law won't
What you describe will just end up a feature on Expedia. The highly technical builders of stuff that love to tinker vastly overestimate how much BS the general public will put up with
Indeed. I have zero desire to put such a thing together just for my own use.
I didn't address that concept at all above, but I think the notion of a million people each independently using the bot to write a million bespoke programs that each do the same things is...kind of a non-starter. It's something that can only happen in some weird reality where software isn't essentially free to copy, and where people are motivated neither by laziness, nor the size of their pocketbook.
If/when someone does put the work into getting it to happen, then I expect to find it on Github for people to lazily copy and use, or for them to make it available as a website or app for anybody to use (with even more laziness) -- and for them to monetize it.
I think it's a fallacy that if you make creating anything easier, more useful things will be created. In reality, you just end up with more useless things being created. Like with art, when it gets easier to create you don't end up with more good art. And with software - it's not like the quality of software has gone up as it's gotten easier to build, it's gotten much worse.
A related fallacy is that great things are easier to build when you can rapidly create stuff. That isn't really how great ideas are generated, it's not a slot machine where if you pull the lever 1000 times you generate a good idea and thus a successful piece of software can be made. This seems like a distinctly Silicon Valley, SFBA type mentality. Steve Jobs didn't invent the iPhone by creating 1000 different throwaway products to test the market. Etc etc.
Why would I do that if the gateway to the internet becomes these LLM interfaces? How is it not easier to ask or type 'buy me tickets for Les Mis'? In the ideal world it will just figure it out, or I frustratingly have to interact with a slightly different website to purchase tickets for each separate event I want to see.
One of the benefits that I see is as much as I love tech and writing software, I really really do not want to interface with a vast majority of the internet that has been designed to show the maximum amount of ads in the given ad space.
The internet sucks now, anything that gets me away from having ads shoved in my face constantly and surrounded by uncertainty that you could always be talking to a bot.
I'm sympathetic to this view too, but I don't think the solution is to have LLM's generate bespoke code to do it. We absolutely should be using them for more natural language interfaces tho.
> but I don't think the solution is to have LLM's generate bespoke code to do it
But if the LLM needed to write bespoke code to buy the tickets or whatever, it could just do it without needing to get you involved.
Yeah, that can also work. But I don’t see the future of software is to keep building multimillion line of code systems in a semi manual way (with or without llms). I think we will reach a phase in which we’ll have to treat code as disposable. I don’t think we are there yet, though.
We probably need higher levels of abstraction, built upon more composable building blocks and more interplay between various systems. To me that requires less disposable code though.
It's more like:
- You have to work; you can't stay online all day waiting for the tickets to go on sale
- You have your agent watch for when the tickets go on sale
- Because the agent has its own wallet, it spends the 6 hours waiting for the tickets to go on sale and buys them for you
- Your agent informs you via SMS, iMessage, email, Telegram or whatever messaging platform of your choice
Yes agentic wallets are a thing now [1].
[1]: https://x.com/CoinbaseDev/status/2023893470725947769?s=20
Personally the experience getting tickets at the moment is horrible.
Endless queues, scalpers grabbing tickets within a second. Having to wait days/weeks periodically checking to see if a ticket is available.
The only platform I’m aware of that does guarantee a ticket can be purchased if available is Dice once you join a wait list. You get given a reasonable time to purchase it in too.
So I can see why people would prefer to defer this to an agent and not care about the implementation, I personally would. In the past I’ve been able to script notifications for it for myself and can see more people benefiting from it.
It won't help, though. The scalpers have much more motivation write a better bot ("agent") than I, an occasional concertgoer, do.
seriously. I don't even wanna compile code when binaries are available in a repository. the thought of everybody preferring vibe-coding something on their own over using something that's battle-tested and available to the collective is just crazy to me.
My point is: such apps wouldn’t need to exist if agents can provide in the future the same functionality for a fraction of the cost. Sure if ticketmaster is here to stay forever and keep their app up to date, we can keep using it. But what about new products? Would companies decide to build a single fixed app that all the users have to use, instead of, well, not building it? Sure the functionality would still need to be provided by the company (e.g., like offered in the form of an api), so they keep getting profit.
It’s like we usually say: companies should focus on their core value. And typically the ui/ux is not the core value of companies.
So we burn the planet up to deploy individually craft UIs on demand? I mean, I've read your comment three times, and I just don't see it. If we end up in that future, we're doomed.
> And typically the ui/ux is not the core value of companies
Huh? The user experience is basically ALL of the core product of a company.
If it's so easy for an AI to create ticket purchasing software that people can generate it themselves, then it's also true that the company can also use AI to generate that software for users who then don't need to generate it themselves. Obviously I think neither of these things are true or likely to happen.
> Huh? The user experience is basically ALL of the core product of a company.
Thats the case now, but I think it’s because there’s no other way around it nowadays. But if agents in the future provide a better or more natural ui/ux for many use cases, then companies core value will shift more into their inner core (which in software translates typically to the domain model)
> If it's so easy for an AI to create ticket purchasing software that people can generate it themselves, then it's also true that the company can also use AI to generate that software for users who then don't need to generate it themselves.
I think the generation of software per se will be transparent to the user. Users won’t think in terms of software created but wishes their agents make true.
You can already instruct AI to navigate the existing website for you and buy the tickets... OpenClaw is one such recent tool.
This is also where I think we end up. If the behavior of the system is specified well enough, then the code itself is cheap and throwaway. Why have a static system that is brittle to external changes when you can just reconstruct the system on the fly?
Might be quite awhile before you can do this with large systems but we already see this on smaller contextual scales such as Claude Code itself
The specification for most systems _is the code_. English cannot describe business rules as succinctly as code, and most business rules end up being implied from a spec rather than directly specified, at least in my experience.
The thought of converting an app back into a spec document or list of feature requests seems crazy to me.
Why would it be? If you can describe an approximation of a system and regenerate it to be, let’s say, 98% accurate in 1% of the time that it would take to generate it by hand (and that’s being generous, it’s probably more like 0.1% in today’s day and age and that decimal is only moving left) aren’t there a giant set of use cases where the approximation of the system is totally fine? People will always bring up “but what about planes and cars and medicine and critical life or death systems”. Yeah sure, but a vast majority of the systems an end user interacts with every day do not have that level of risk tolerance
You are just validating the point that code is spec.
For your proposed system to work one must have a deterministic way of sending said spec to a system(Compiler?) and getting the same output everytime.
Input/Output is just one thing, software does a lot of 'side effect' kind of work, and has security implications. You don't leave such things to luck. Things either work or don't.
Absolutely let’s not do away with the determinism entirely. But we can decouple generation of the code from its deterministic behavior. If you are adequately able to identify the boundaries of the system and run deterministic tests to validate those boundaries that should be sufficient enough. It’s not like human written code was often treated with even that much scrutiny in the before times. I would validate human written code in the exact same way.
> If the behavior of the system is specified well enough
Then it becomes code: a precise symbolic representation of a process that can be unambiguously interpreted by a computer. If there is ambiguity, then that will be unsuitable for many systems.
The word “many” is carrying a lot of weight here. Given the probabilistic nature of AI I suspect that systems that are 98% correct will be just fine for all but the “this plane will crash” or “this person will get cancer” use cases. If the recreation of the system failed in that 2% by slightly annoying some end user, who gives a shit? If the stakes are low, and indeed they are for a large majority of software use cases, probabilistic approximation of everyone’s open source will do just fine.
If you’re worried about them achieving the 98%, worry no more, due to the probabilistic nature it will eventually converge on 9’s. Just keep sending the system through the probabilistic machine until it reaches your desired level of nines
>>If the behavior of the system is specified well enough, then the code itself is cheap and throwaway. Why have a static system that is brittle to external changes when you can just reconstruct the system on the fly?
You mean to say if the unit and functional tests cases are given the system must generate code for you? You might want to look at Prolog in that case.
>>Might be quite awhile before you can do this with large systems but we already see this on smaller contextual scales such as Claude Code itself
We have been able to do something like this reliably for like 50 years now.
eventually people will figure out what is safe to let AI build-and-run without supervision, and what level of problem do you need to actually understand what's under the hood, audit what it does, how to maintain it, etc
I need a way to inventory my vintage video games and my wife's large board game collection. I have some strong opinions, and it's very low risk so I'll probably let Claude build the whole thing, and I'll just run it
Would I do that with something that was keeping track of my finances, ensuring I paid things on time, or ensuring the safety of my house, or driving my car for me? Probably not. For those categories of software since I'm not an expert in those fields, but also it's important that they work and I trust them, I'll prefer software written and maintained by vendors with expertise and a track record in those fields
Lame! I would vibe-code a new OS that already has all the drivers!
You can be the next one! - https://github.com/kaansenol5/VibeOS
It used an existing implementation, in theory this was mostly a porting task.
GPL-wise, I don't know how much is inspiration vs "based on" would this be, it'd be interesting to compare.
This looks like my Company peers, as long as there is any existing implementation they are pretty confident they can deliver, poor suckers that do the "no one has done it before" first pass don't get any recognition.
> I didn’t write any piece of code there. There are several known issues, which I will task the agent to resolve, eventually. Meanwhile, I strongly advise against using it for anything beyond a studying exercise.
Months of effort and three separate tries to get something kind of working but which is buggy and untested and not recommended for anyone to use, but unfortunately some folks will just read the headline and proclaim that AI has solved programming. "Ubiquitous hardware support in every OS is going to be a solved problem"! Or my favourite: instead of software we will just have the LLM output bespoke code for every single computer interaction.
Actually a great article and well worth reading, just ignore the comments because it's clear a lot of people have just read the headline and are reading their own opinions into it.
The author specifically said that they did not read the code or even test the output very thoroughly. It was intentionally just a naive toy they wanted to play around with.
Nothing to do with AI, or even the capabilities of AI. The person intentionally didn't put in much effort.
> Nothing to do with AI, or even the capabilities of AI. The person intentionally didn't put in much effort.
The part to do with AI is that it was not able to drive a comprehensive and bug free driver with minimal effort from the human.
That is the point.
Why is that the metric? In my job, I get drafts from junior employees that requires major revisions, often rewriting significant parts. It’s still faster to have someone take the first pass. Why can’t AI coding be used the same way? Especially if AIs are capable of following your own style and design choices, as well as testing code against a test suite, why isn’t it easier to start from a kind of working baseline than to rebuild from a raf h.
I’m not able to provide a comprehensive bug free driver.
Seems like they did put in quite a bit of effort, but were not knowledgeable enough on wifi drivers to go further.
So hardware drivers are not a solved problem where you can just ask chatgpt for a driver and it spits one out for you.
If you could write drivers in javascript, it probably would have done just fine /s
> The author specifically said that they did not read the code or even test the output very thoroughly. It was intentionally just a naive toy they wanted to play around with.
Yes and that's what I'm pointing out, they vibe coded it and the headline is somewhat misleading, although it's not the authors fault if you don't go read the article before commenting.
But it does have to do with AI (obviously), and specifically the capabilities of AI. If you need to be knowledgable about how wifi drivers work and put in effort to get a decent result, that obviously speaks volumes about the capabilities of the vibe coding approach.
I strongly suspect that somebody with domain knowledge around Wi-Fi drivers and OS kernel drivers could prompt the llm to spit out a lot more robust code than this guy was able to. That's not a knock on him, he was just trying to see what he could do. It's impressive what he actually accomplished given how little effort he put forth and how little knowledge he had about the subject.
Someone with domain knowledge could also just write the code instead of trying to get the stochastic prediction machine to generate it. I thought the whole point was to allow people without said expertise to generate it. After all, that seems to be the promise.
> Someone with domain knowledge could also just write the code instead of trying to get the stochastic prediction machine to generate it.
Well, people with the domain knowledge exist, yet they have not yet written this driver... why not?
Because there is other code those experts want to write, and they don't have time to write it all... but what if they could just give a fairly straightforward prompt and have the LLM do it for them? And if it only took minor tweaks to the prompt to have it write drivers for all the myriad combinations of hardware and software? At that point, there might be enough time to write it all.
Just because people exist that can DO all the work doesn't mean we have enough person-hours to do ALL the work.
> Because there is other code those experts want to write, and they don't have time to write it all... but what if they could just give a fairly straightforward prompt and have the LLM do it for them?
Then pretty soon they wouldn't be the experts anymore?
Maybe? But you could make the same argument that programmers today aren't "experts" at computers because they don't know how to build CPUs.
There is no reason to believe you can't gain expertise while still using higher and higher level abstractions. Yes, you will lose some of that low level expertise, but you can still be an expert at the problem set itself.
Clearly there wasn't much appetite for someone to do that.
It will be like that at some point soon, just not now. Are you trying to make the point that because this technology is not yet perfect the fact that it can already do so much is unimpressive?
Will it happen before or after we get fusion energy? I heard that was coming soon too.
@petcat Is your nickname a description or an instruction?
> The person intentionally didn't put in much effort.
Aren't you just describing every vibe code ever?
To think about it, that is probably my main issue with AI art/books etc. They never put in any effort. In fact, even the competition is about putting least effort.
You're validly critiquing where it is now.
The hype people are excited because they're guessing where it's going.
This is notable because it's a milestone that was not previously possible: a driver that works, from someone who spent ~zero effort learning the hardware or driver programming themselves.
It's not production ready, but neither is the first working version of anything. Do you see any reason that progress will stop abruptly here?
>> Do you see any reason that progress will stop abruptly here?
I do. When someone thinks they are building next generation super software for 20$ a month using AI, they conveniently forget someone else is paying the remaining 19,980$ for them for compute power and electricity.
Not a huge fan of @sama, but he is quoted as saying: this is the worst these models will every be!
Puts all criticism in a new perspective.
That's like Bill Gates saying XP is the worst Windows will ever be
Not Windows: Operating systems. We did get more capable operating systems. The point of the quote is "this is the worst the SOTA will ever be".
If Windows XP were fully supported today I still wouldn't use it, personally, despite having respect for it in its era. The core technology of how, eg OS sandboxing, security, memory, driver etc stacks are implemented have vastly improved in newer OSes.
You're just moving the goal posts unfortunately. The point is that positive progress is never actually guaranteed.
Of course not. But I believe your Windows example was implying fundamental tech got worse.
The original "worst" quote is implying SOTA either stays the same (we keep using the same model) or gets better.
People have been predicting that progress will halt for many years now, just like the many years of Moore's law. By all indications AI labs are not running short of ideas yet (even judging purely by externally-visible papers being published and model releases this week).
We're not even throwing all of what is possible on current hardware technology at the issue (see the recent demonstration chips fabbed specifically for LLMs, rather than general purpose, doing 14k tokens/s). It's true that we may hit a fundamental limit with current architectures, but there's no indication that current architectures are at a limit yet.
Aged like milk.
That assumes he is all knowing.
People abstract upon new leaps in invention way too early though. Believing these leaps are becoming the standard. Look at cars, airplanes, phones, etc.
After we landed on the moon people were hyped for casual space living within 50 years.
The reality is it often takes much much longer as invention isn't isolated to itself. It requires integration into the real world and all the complexities it meets.
Even moreso, we may have ai models that can do anything perfectly but it will require so much compute that only the richest of the rich are able to use it and it effectively won't exist for most people.
> Do you see any reason progress will stop abruptly here?
Yeah, money and energy. And fundamental limitations of LLM's. I mean, I'm obviously guessing as well because I'm not an expert, but it's a view shared by some of the biggest experts in the field ¯\_(ツ)_/¯
I just don't really buy the idea that we're going to have near-infinite linear or exponential progress until we reach AGI. Reality rarely works like that.
So far the people who bet against scaling laws have all lost money. That does not mean that their luck won’t change, but we should at least admit the winning streak.
You mean Moore's law? Which is now dead?
No I don't mean that. I mean the LLM parameter scaling laws. More importantly, it doesn't matter if I mean that or Moore's law or anything else, because I'm not making a forward looking prediction.
Read what I wrote.
I'm saying is if you bet AGAINST [LLM] scaling laws--meaning you bet that the output would peter out naturally somehow--you've lost 100% so far.
100%
Tomorrow could be your lucky day.
Or not.
This weekend I had 100% success at the blackjack table, until I didn't and lost.
I guess we'll see :)
You gonna go read up on some 0% success rate strategies on the way?
What I’m saying is that we act as though claims about these scaling laws have never been tested. People feel free to just assert that any minute now the train will stop. They have been saying that since the Stochastic parrots.
It has not come true yet.
Tomorrow could be it. Maybe the day after. But it would then be the first victory.
it's not dead. it's enough to look at GB200/GB300 vs Vera Rubin specs.
At the very least, computers are still getting faster. Models will get faster and cheaper to run over time, allowing them more time to "think", and we know that helps. Might be slow progress, but it seems inevitable.
I do agree that exponential progress to AGI is speculation.
You think all AI companies will never release a better model days after they all release better models?
That is a position to take.
I know some proponents have AGI as their target, but to me it seems to be unrelated to the steadily increasing effectiveness of using LLMs to write computer code.
I think of it as just another leap in human-computer interface for programming, and a welcome one at that.
If you imagine it just keeps improving, the end point would be some sort of AGI though. Logically, once you have something better at making software than humans, you can ask it to make a better AI than we were able to make.
I don’t get this response. This is amazing! What percentage of programmers can even write a buggy FreeBSD kernel driver? If you were tasked at developing this yourself, wouldn’t it be a huge help to have something that already kind of works to get things started?
Fairly high could - but some could start today some need a few months of study before they know how to start (and then take 10x long than the first person to get it working)
Programmers have always been in search of an additional layer of abstraction. LLM coding feeds exactly into this impulse.
> instead of software we will just have the LLM output bespoke code for every single computer interaction.
That's sort of the idea behind GPU upscaling: You increase gaming performance and visual sharpness by rendering games at lower resolutions and use algorithms to upscale to the monitor's native resolution. Somehow cheaper than actually rendering at high resolution: Let the GPU hallucinate the difference at a lower cost.
It'd be nice to have drivers for newer Mac's for a better Asahi Linux experience. Good use of AI imo.
We don't use AI to help write code due to copyright concerns, it's against our policy. We obviously need to be very careful with what we're doing, and we can't be sure it hasn't seen Apple docs or RE'ed Apple binaries etc (which we have very careful clean-room policies on) in its training data. It also can't be guaranteed that the generated code is GPL+MIT compatible (as it may draw inspiration from other GPL only drivers in the same subsystems) but we wish to use GPL+MIT to enable BSD to take inspiration from the drivers.
Given that literally no one is enforcing this it seems like a moral rather than a business decision here no? Isn’t the risk here that your competitors, who have no such moral qualms, are just going to commit all sorts of blatant copyright infringement but it really doesn’t matter because no one is enforcing it?
I don't see open source as having "competitors". If someone wants to make a fork and use AI to write code (which I also think wouldn't be very useful, as there's no public documentation and everything needs to traced and RE-ed), they are welcome to. We're interested in upstreaming though, which means we need to make sure the origin of code and licence is all compatible and acceptable for mainline, and don't want to infringe on Apple's copyright (which they may enforce on a fork with less strict rules than ours).
I get “fear of being sued or decoupled from the upstream project” for sure. It definitely speaks to the sad state of affairs currently when companies at Apple’s scale simply operate with complete impunity at copyright law when it comes to using AI (you think Apple isn’t using stuff like Claude internally? I can 100% guarantee you they are) but are able to turn around and bully people who might dare to do the same
Who is a competitor for Asahi? What would that even entail?
> Given that literally no one is enforcing this
Presumably Apple's lawyers would enforce it.
I’ll believe it when I see a court case of them going after someone for some ai generated slop and they win. Don’t see much evidence of that happening right now, or really ever since the advent of these things
Why would any serious project want to risk being the legal guinea pig for that experiment? And to what end? Everyone is pretty much in agreement that reusing code you're not licensed to use is bad for open source and just an all around shitty thing to do.
Morals seem like a very good reason to not join those infringers.
AI wouldn't work here. The OP task was converting one open source driver in to another one for FreeBSD. Since Mac doesn't have open source drivers to start with, a person still has to do the ground research. At least until you can somehow give the AI the ability to fully interact with the computer at the lowest levels and observe hardware connected to it.
This is like complaining Delorean didn't make spare parts for your homemade time machine.
To be honest, I find this more impressive, than Claude writing a browser from scratch.
I know this is me coming from my spoiled perspective of Linux and macOS, but the advice of running a VM that manages the WiFi hardware and passing it back to the OS seems insane to me
If an OS is designed to do this from the ground up, it can be incredibly efficient. (See: SeL4). Each process on linux is essentially its own isolated virtual machine already. Linux processes just have all sorts of ambient authority - for example, to access the filesystem and network on behalf of the user which started the process. Restricting what a process can do (sandboxing it) shouldn't have any bearing on performance.
Qubes OS is the Linux version of this concept. Hardware and their drivers get VMs for security boundary isolation.
In my experience, AI is really good at creating bloatware, which makes it doubly frustrating that it is eating up all the RAM.
Bloatware existed as soon as JavaScript became good enough to write apps in it.
Text boxes are now drawn with nested DIV hells created by polyfills and layers of React crepe cake and not a simple drawRect call to draw the text box
Architecturally it makes a kind of sense given the way firmware operates (a lot of your peripherals are mini-computers inside your computer)
Yup. The smartnic's we used in a previous gpu sku is now repurposed as the head node for another storage based sku.
Computers are so complicated right now that they're literally a network of computers. When you consider the closed firmware issue, using a VM is like having a small router you connect with ethernet. And I believe you could run such VM with 64MB of RAM.
seems pretty solid from a security perspective actually
Honestly it's not spoiled to want to use the hardware you paid for
Even bigger accomplishment is ai finally figured out how to configure my samba share for guest access! Lol
Do postfix/dovecot next. It still struggles with that.
Your LICENSE file reminds me that the copyright status of LLM-generated code remains absolutely uncharted waters and it's not clear that you can in fact legally license this under ISC
We'll reverse engineer our way out of planned obsolescence
very neat, setting codex on the task of building a mac-compatible app for my Pharos Microsoft GPS-360 Receiver... we'll see how it goes!
https://github.com/lrehmann/gps360-viewer
cool result from this otherwise defunct hardware!
Omg!!. Similarly, Do you know a way to interface with BIOS so that it can change the parameters?
> The person intentionally didn't put in much effort.
And it's incredible that they got a somewhat working wifi driver given just how little effort they put in.
I have no doubt that a motivated person with domain knowledge trying to make a robust community driver for unsupported hardware could absolutely accomplish this in a fraction of the time and would be good quality.
This used to be more common right? Back in the winmodem days?
This is exciting! This sounds like a great application because it’s mostly tedious work to adjust an existing driver to another device.
AI didn't write a driver for him. He ported the Linux driver to FreeBSD with some assistance from an LLM.
What's more interesting to me is the licensing situation when this is done. Does the use of an LLM complicate it? Or is it just a derivative work which can be published under the ISC license [1] as well?
[1] : https://en.wikipedia.org/wiki/ISC_license
It wasn't a straight port, he had an LLM write a spec by reviewing the code, and then in another session another LLM did the development. That is basically a Clean-room approach. It would be unlikely there would be much - if any - code that is exactly the same so showing copyright infringement seems very unlikely.
That AI was trained on the GPLv2 Linux source code, which does have a driver for your Wi-Fi.
How is this not copyright laundering?
the spec-first approach is actually the historical clean-room technique, same way Phoenix BIOS was legally written without copyright exposure in the 80s -- one team writes spec from observation, completely separate team codes from spec only, no shared authors. here it's AI doing both passes but in different sessions with no shared context, which approximates the same separation. probably good enough legally but definitely interesting that the same old trick applies.
You haven't addressed the parent's concern at all, which is that what the LLM was trained on, not what was fed into its context window. The Linux driver is almost certainly in the LLM's training data.
Also, the "spec" that the LLM wrote to simulate the "clean-room" technique is full of C code from the Linux driver.
This is speculation, but I suspect the training data argument is going to be a real loser in the courtroom. We’re getting out of the region where memorization is a big failure mode for frontier models. They are also increasingly trained on synthetic text, whose copyright is very difficult to determine.
We also so far have yet to see anyone successfully sue over software copyright with LLMs—-this is a bit redundant, but we’ve also not seen a user of one of these models be sued for output.
Maybe we converge on the view of the US copyright office which is that none of this can be protected.
I kind of like that one as a future for software engineers, because it forces them all at long last to become rules lawyers. If we disallow all copyright protection for machine generated code, there might be a cottage industry of folks who provide a reliably human layer that is copyrightable. Like Boeing, they will have to write to the regulator and not to the spec. I feel that’s a suitable destination for a discipline. That’s had it too good for too long.
Okay, so will companies now vibe-code a Linux-like license-washed kernel, to get rid of the GPL?
> The Linux driver is almost certainly in the LLM's training data.
Yes, and? Isn't Stallmans first freedom the "freedom to study the source code" (FSF Freedom I)? Where does it say I have to be a human to study it? If you argue "oh but you may only read / train on the source code if you are intending to write / generate GPL code", then you're admitting that the GPL effectively is only meant for "libre" programmers in their "libre" universe and it might as well be closed-source. If a human may study the code to extract the logic (the "idea") without infringing on the expression, why is it called "laundering" if a machine does it?
Let's say I look (as a human) at some GPL source code. And then I close the browser tab and roughly re-implement from memory what I saw. Am I now required to release my own code as GPL? More extreme: If I read some GPL code and a year later I implement a program that roughly resembles what I saw back then, then I can, in your universe, be sued because only "libre programmers" may read "libre source code".
In German copyright law, there is a concept of a "fading formula": if the creative features of the original work "fade away" behind the independent content of the new work to the point of being unrecognizable, it constitutes a new work, not a derivative, so the input license doesn't matter. So, for LLMs, even if the input is GPL, proprietary, whatever: if the output is unrecognizable from the input, it does not matter.
fair point, I glossed over that distinction. context separation \!= training data separation. if the driver was in training data, the "spec from observation" pass is already contaminated before the coding pass begins. the phoenix bios parallel actually required strict information separation at every stage -- here that's not achievable since you can't retrain the model. so the legal protection is much weaker than I implied.
We'll know once these 51 cases have worked their way through the courts: https://chatgptiseatingtheworld.com/2025/10/08/status-of-all...
The general question is worth asking, but in this particular case, the article says
> Brcmfmac is a Linux driver (ISC licence) for set of FullMAC chips from Broadcom
Prove the new code is similar to the corresponding driver in Linux. If you can then you can get the authors of the latter to file suit against TFA.
A very, very good point
*built
Now we can have operating systems that write the drivers they need at boot.
An impressively softwarey alternative to simply pulling out the wifi module and replacing it with an AliExpress Apple wifi module adapter board and a compact M.2 WiFi module with a supported chipset :)
Dude is at Grafana, this port is an advertisement stunt:
https://grafana.com/blog/generative-ai-at-grafana-labs-whats...
Don't use it and don't use Grafana.
This is really neat, I'm glad it worked.
This is atrocious C code.
Looks fairly idiomatic. What specifically do you dislike about it?
Got a sample you think is particularly bad?
Throwing myself to the sharks here, but sure.
pcie.c
Is sc null? Who knows! Was it memset anywhere? No! Were any structs memset anywhere? Barely! Does this codebase check for null? Maybe in 3% of the places it should!All throughout this codebase variables are declared and not initialized. Magic numbers are everywhere AND constants are defined everywhere. Constants are a mix of hex and int for what seem to be completely arbitrary reasons. Error handling is completely inconsistent, sometimes a function will return 5 places, sometimes a function will set an error code and jump to a label, and sometimes do both in the same function depending on which branch it hits.
All of this is the kind of code smell I would ask someone to justify and most likely rework.
Or I'm just a dumbass, I suppose I'll find out shortly.
I'm no expert either and I have not done kernel development, but I've done some embedded stuff in C and I think this is not unreasonable. brcmf_reg_read is only called in one place and the call chain is straightforward (starts in pcie.c brcmf_pcie_attach). Its always initialized by device_get_softc (https://man.freebsd.org/cgi/man.cgi?query=device_get_softc&s...) so as long as the device is attached its initialized. Likely something fails much earlier if it is not attached. I think this is pretty typical for low-level C, it would definitely not be idiomatic for every function in this call chain to check if sc was initialized - I don't know if there is a need to check it after calling device_get_softc but that would probably be reasonable just so people reviewing it don't have to check.
Some application code bases I've worked in would have asserts in every function since they get removed in release builds but I don't know that debug builds are even a thing in kernel devices.
Plus zig!
https://github.com/narqo/freebsd-brcmfmac/blob/be9b49c1bf942...The DNS name has both Russian and Indian in it, and its about vibe coding and AI to make system level software which can access the plaintext of my app comms: nope, nope, nope, nope and oh hell no.
The interesting part is not that it built a driver, it is that it built one for a specific chip on a specific OS with no existing example to copy. That is not autocomplete. That is reasoning about hardware registers, kernel interfaces, and driver architecture from documentation and first principles. A year ago this would have been a strong counterexample to AI coding claims. Now it is a blog post.
What? No. An LLM cannot reason, at least not what we think of when we say a human can reason. (There are models called "reasoning" models as a marketing gimmick.)
TFA describes a port of a Linux driver that was literally "an existing example to copy".