4 ms·
> Things like the linux kernel, all the GNU utils, emacs, vim, apache, nginx, postgres. The list goes on. We know how to write software that lasts for decades,
by turminal 4y ago
> Things like the linux kernel, all the GNU utils, emacs, vim, apache, nginx, postgres. The list goes on. We know how to write software that lasts for decades, continuously improves, and doesn't need constant re-writes.
At least half of the items on that list are still here purely on momentum and reputation from the time there were no alternatives, not because they were really that marvelous.
I use and even enjoy some of them, but they're far from great engineering.
- DoneWithAllThat 4y agoI would disagree with that sentiment for every single item on that list. All those tools are amazing and have improved steadily over decades and I would absolutely put them in the “great engineering” category.
- throw10920 4y agoGNU utils are incredibly primitive and their text-driven APIs are fragile and cause tons of issues in shell scripting. I love Emacs, but it's a slow, crufty mess. Vim is a huge pile of code with a lot of complexity in its codebase and hilariously bad design decisions like VimScript. Apache is a mess from a security perspective (1.7k listed CVEs[1]), and still slower than Nginx. Want to guess at the amount of lost productivity due to Apache vulnerabilities? [1] https://www.cvedetails.com/vulnerability-list/vendor_id-45/Apache.html https://www.cvedetails.com/vulnerability-list/vendor_id-45/A...
- froh 4y agoWhat would be counterexamples to that, i.e. great engineering? FOSS possibly?
- nextos 4y agoseL4. Simple and formally verified. I think it's time to pour VC money on a fully verified stack. Perhaps not everything needs to be proven, integrity for some components can be ensured more informally with e.g. refinement types. Lots of governments and organizations need more robust software.
- turminal 4y agoseL4 is great in theory, and formal verification is awesome, but I read some of their code recently the implementation leaves something to be desired.
- sbierwagen 4y ago>I think it's time to pour VC money on a fully verified stack. While it's true that VCs spend lots of money, you do actually need some plausible-ish excuse for how you could make money on it at some point in the future. It's not like VCs are out here funding public parks or charity hospitals. They fund for-profit businesses. People did sell operating systems in the 1990s, but I'm not sure if that's a strong market in the 2020s. How are you going to 10x a VC investment in basic software tools?
- nextos 4y agoI guess selling secure and verified devices. AdaCore is doing it. My point is that it can be a very profitable niche, not that VCs fund it pro bono.
- turminal 4y agoPostgres is some awesome engineering imo
- froh 4y agoFossy and SQLite are engineering marvels.
- throw10920 4y agoOh, there are lots of great FOSS counterexamples - the Linux kernel, Postgres, and SQLite are three easy ones. I'm not claiming that good engineering doesn't exist or that there aren't amazing FOSS tools, I just take issue with that ideas that either (a) all FOSS tools are great or (b) the FOSS model is somehow able to produce quality tools in a way that the proprietary model is not (or substitute "bazaar" and "cathedral" models if you wish). The vast majority of software sucks, and I'm not sure that FOSS software even sucks less on average.
- pclmulqdq 4y agoAlso, most of them have gotten a rewrite worth of upgrades during their life. The Linux kernel is a good example: most of the code you use today didn't exist in the kernel 15 years ago. A lot of code from back then still exists for compatibility purposes, but is rarely used in modern systems.
- regularfry 4y agoBut that's an interesting facet in itself. The more common refrain you hear in corporate settings is "we need a ground-up rewrite" - how did these projects manage not to need that? I have my suspicions, but it's a very interesting question nonetheless.
- pclmulqdq 4y agoAs a big fan of rewrites (but not as big a fan as some), I think Linux has avoided needing big rewrites with a lot of very clever modularity in its design. Many corporate software programs do not have that level of modularity. Modularity has performance costs, is slower to develop, and "looks ugly" on a block diagram, but it pays dividends for open source projects and projects that need upgrades over time. Individual parts of Linux go through relatively frequent rewrites (eg filesystems), but not the overall framework.
- analognoise 4y agoLinux IS corporate. It has been corporate for a long time - the heaviest commits come from paid, professional developers.
- regularfry 4y agoNot, I think, in the sense meant here. You're right, of course, but the distinguishing factor is that "corporate software" typically only involves a single corporation. There's no (or little) balancing of interests.
- int0x80 4y ago