First time I see his picture, and it’s a bit like someone’s revealed the identity of Satoshi Nakamoto when it’s clear they are going out of their way to protect their privacy and stay out of the limelight.
My impression is the guy had always better things to do than engage with the greater internet, like thinking real hard and solving difficult problems. Much respect to his work, but even more respect to his work ethic. When you have a strong vision, you need the ivory tower style of development rather than spending your days arguing and defending your choices with internet strangers.
Mozart doesn’t feel right. The code isn’t beautiful and elegant. It’s not built to last (at least for ffmpeg) or be some kind of masterpiece. He writes code to get a job done or tickle some intellectual curiosity. It’s not beautiful but that’s OK.
I think Unicorn illustrates one of the issues with his style. It wouldn’t have needed to exist of the QEMU code was architected into neat components. But then writing spaghetti code that gets the job done is why he’s so fast and effective. It’s a trade off
I think there’s actually a sharp contrast with John Carmack here. Fabrice might be smarter and faster but Carmack is perhaps a better software engineer. You can really see the development of his style from Doom and Quake source code, where Quake 3 source is like a beautiful gem of a code base.
I think developers sometimes get too obsessed with code quality thinking that smarter code makes them a better developer. In fact I’ve seen developers fall into the trap of mistaking their code as the product and thus spend so much time beautifying it that that fail to ever release anything.
Then you have the other end of the spectrum where people are too focused on hacking stuff together that the end result is unmaintainable.
The reality is there needs to be a bit of both to be a good developer.
For example, if you’re building a proof of concept (POC), then it’s more important to prove the idea than it is to define the architecture. And the reason for that is because you don’t always understand how the final product (whether it’s commercial software or a FOSS library) is best architected until you’ve gone through a few drafts of the idea. So spaghetti code isn’t necessarily a bad thing.
But then when you know your idea works and you need to flesh it out into something more durable, you start to refactor the spaghetti into something more maintainable.
Fabrice mainly releases POCs while Carmack mainly releases finished products. So it’s unsurprising you’ll see a difference in the style of architecting in their code.
I used to be someone who focused on beautiful code for my POCs too. And used to fail to release any personal projects. Then one day I learned to embrace the chaos of POCs and realised that you can getting something built and tarting it up afterwards was better than failing to build anything at all.
But the code quality is speed. And reach. You can not advance, unless you can read the code, you can understand the model, you can not scale beyond a certain point. The beauty of the architecture is the ability to build a spaceship compared to a train of kerosene tankers. Physically similar, but in capability radical different.
I find this very scary. Somebody unable to perceive capabilities and tech-debt. If you can not perceive that- you should not be let near executive decisions or code-base evaluation. This is literally the difference between rocket-science and exploding failed projects. Everyone can pile up explosives, not everyone can go to space today.
Its a great interview topic to filter this kind of candidate out of companies.
.. is very, very important in the context of milliseconds, hours, days, weeks, months and years. And decades.
Today, you might say that John/Fabrice’ code is readable/unreadable, but will that also be true in 5 years time, in a different cultural/technological era?
Obviously yes in the case of these individuals - because the ecosystem their products have created is self-sustaining at a mass (consumer/social) level.
I’ve built software which has shipped and effected the lives of millions, too. Many of us have.
But I have not built a massive ecosystem by working on the right software which was adopted by millions of developers who read my code, was inspired by it, and used it for something in their own products - thus creating sub-ecosystems upon sub-ecosystems, a big sprawling tree of economy which spreads out into the mass of humanity who use technology.
In this story we have two cases of individuals who have accomplished an extraordinary reach of software, in their own uniquely flavored ways - and this demonstrates that there are no absolute requirements to strip personality from the code - as long as its damn good code in the first place.
>filter candidates out of companies
It’s a great way to decide not to work at a company which managers do not understand the importance of architecture at various scales, milliseconds, seconds, hours, days, weeks ..
It's the opposite, better-factored code makes me, a mediocre developer, capable of making progress instead of hitting a complexity wall.
It's separate from striving for "beautiful" code, beauty within well-factored boundaries yields dimishing returns compared to just having the boundaries.
>Mozart doesn’t feel right. The code isn’t beautiful and elegant. It’s not built to last (at least for ffmpeg) or be some kind of masterpiece.
Pedantic much? It's not about him writing elegant code like someone would write elegant music. It's a comparison about the skill level achieved, Mozart-level vs Salieri-level (and in the sense of their Amadeus movie rivalry, not real world).
His code tackles very complex subjects, succesfully, with huge technical skill, and has been reliable and relied upon by millions...
> I think there’s actually a sharp contrast with John Carmack here. Fabrice might be smarter and faster but Carmack is perhaps a better software engineer.
There’s few things I find more pathetic than trying really hard to show who’s best and ranking things that have no business being ranked.
You will find humans are n-dimensional and elude these simplistic categories.
Honestly, two mythologized figures (Carmack and Bellard).
They're good (like, quite good), but as soon as their names come up people start talking about some weird expectation of what they are supposed to think rather than the actual things they did.
Somehow, that mythologizing diminishes their accomplishments.
Telling stories, looking for gods that don't have our limitations and telling stories about those gods is pretty much in our nature irrespective of the era.
Oh, this is human nature and you will find it impossible to avoid this framing of cult figures, because they are indeed cult figures - albeit positively perceived ones, since they appear to not just be doing it for themselves, but altruistically every wonder they produce is for their users - and thus their works have effectively and productively impacted the lives of millions of other people, at economies of scale most of us here on HN aspire to.
And it is that aspiration you’re degrading with the rush to de-mythologize, as if it weren’t inevitable, under the crushing rush of time, that we in the hacker world had heroes.
Humanity has some 300.000 years of existing, and we can only trace back the prevalence of cult figures a few thousand years back.
For all we know, it could be a temporary fluke and we'll snap back to something else. We could be beings with no default to snap back to, ever changing, destined to dissolve the prevalence of cult figures into something else in the following eras.
In a few thousand years we could totally see this practice as some distant-past thing like making clay pots or carrying Roman dodecahedrons.
The new cultural trend could become jumping off cliffs, and someone would be arguing that it's inevitable human nature.
By the way, no rush to de-mythologize. I'm not fighting any dragon here, you do you.
I imagined him with wild, long hair; possibly tattoos, huge and heavy set. The picture destroyed my imagination - and now I want my imagination back. :(
In my personal experience, uber French nerds don't really fit the Simpsons "Comic Book Guy" appearance stereotype. Anyone else reading this, feel free to disagree.
He has always replied to me, and has always been gracious, even when I felt a little too argumentative.
It’s hard being an hotheaded internet keyboard warrior like me when the moderators are going out of their way to remain polite and courteous when disagreeing.
This is why I share my email on my website and on my HN profile: it’s so much easier to see the human in 1:1 conversation.
> LinkedIn offers no way for $company to disavow users who claim to work for $company - they will appear on the official company page as long as it's in their profile.
I had the opposite problem: my company name was equivalent to the owner of an online casino. It took me a year to figure out that the enormous amount of spam I was getting about ‘guest post placement’, and people contacting me about deals was because Linkedin put me among the list of the casino employees. As I was Director of my company, I was the most valuable prey for business spam.
I fixed the problem by deleting my account, but now I’m in all the shittiest of spam lists for eternity. I don’t know how do they even harvest emails from Linkedin.
this is from 2016. at time they had ~400 million users,and the breach is 164 million, Now it's close to 1.5 B.
People these days use aggregators like Apollo, signal hire, apify. There are 1000s of such tools.
The risk of bit flips is a percentage. The more RAM you have, the greater the likelihood. I have experienced heisenbugs on my 64 GB desktop that I bet were because of random bit flips
I work on a desktop, but as a backup I have bought a refurbished Dell Latitude, there are a lot of decent ones for €250 on eBay. Put Linux on it, it’s good enough for most workloads.
I just hope my top shelf 2020-era desktop doesn’t die on me because it would get very expensive to get a new build these days.
> I just hope my top shelf 2020-era desktop doesn’t die on me because it would get very expensive to get a new build these days.
I could probably sell my gaming rig (12900K, 64GB of DDR5, 4TB NVME, RTX 3090) for more today than what I built it for about 4 years ago, it's absurd. I won't, of course, because it's still glorious for 4K gaming even today. In retrospect, $5000 very well spent.
I have a similar rig, but a 10th gen i7, 128GB of DDR4, 2TB NVMe, and dual RTX 3090s. Built it in 2021 for crypto mining, it ended up paying itself off just before Eth went PoW. I kept it mining even after profitability, because it ran warm enough to heat my apartment leaving my HVAC on fan-only to circulate the heat around.
After winter, I started playing with various other GPU loads until LLMs and SD became easy enough to use. Now it's my experimentation machine.
It's already paid for itself, so anything I sell it for would be profit, but it is still super nice for running local LLMs that power various projects "for free".
I won't sell my 3090. It's still one of the best cards for a local AI and gaming mixed use. I put a waterblock on it and it just purrs along at 50C no matter what I throw at it.
I did exactly this and suggest it. Used Dell Latitude (the one I got is one from 2019 - model 5300). I put Linux Mint Debian Edition (https://linuxmint.com/download_lmde.php) on it. Works absolutely great.
Small Dell Optiplexes are good for desktop computers.
The original sin is earlier, when people with a dream and a million dollars were dubbed Hackers. And then articles like these calls these Stanford and Harvard guys nerds. Have they ever seen a true computer nerd, you know, the type of people that can actually write code and are not just paying other people to?
The evidence of younger code being better than old one doesn’t pass the smell test, and it’s hard to prove in a nascent field of technology where the oldest piece of software in continuous use has barely reached middle age.
You just cannot compare software robustness to human lifespan. Does software need 3 years at the bare minimum to be self-sufficient? Does it become argumentative and crashes a lot after 13-14 years?
Neovim suffers from the Javascript kids mode of development. Constant change, constant churn, the mirage of stability always behind the corner, you always require third-party packages for functionality that should be core, completely erasing the Lindy effect of vim proper.
It’s a bit sad Neovim has stolen the thunder from the original work of Moolenaar & co. My guess is that neovim will splinter itself down the line further again once lua stops being attractive, while vim & Emacs will keep chugging along for another half century.
When did you last look at the neovim ecosystem? Because what you describe is the opposite of what's happened recently. The core has been getting more stable over time, with fewer breakages, and more essential functionality has been added, such as LSP support, completion, and a package manager, with plans to add more.
reply