4 ms·
>They tested seven commercial Unix systems as well as GNU. By subjecting them to a random input stream, they could “crash (with core dump) or hang (infinite loo
by john_moscow 6y ago
>They tested seven commercial Unix systems as well as GNU. By subjecting them to a random input stream, they could “crash (with core dump) or hang (infinite loop) over 40% (in the worst case) of the basic utility programs…”
As an end user, the least thing I care about is how the program behaves under some synthetic circumstances that I will very likely never encounter.
The thing I care the most is how much effort (physical time and also distraction) does it take to solve my typical workday problems with certain software. And, based on my experience, GNU tools very rarely excel at this metric.
I even have a fairly good assumption on why this is the case. Making software that works intuitively for most of your end users is a painstaking process. You need to research your market, document and prioritize use cases, run tests, update documentation, listen to feedback, quantify and prioritize it, provide support to your users. Then a thing or two changes about the "typical" workflow, or another OS version comes out, or some library you have been using gets broken, and you're out of tens of hours to fix it. And after you're done, the end user will install an update and think "nah, nothing changed, why did I bother updating?". You've freed your end users from mind-numbing grind by grinding it yourself for them.
You're not gonna be doing that unless that software is bringing in enough money to justify the hassle. There are numerous much more pleasant things to do in one's free time.
What free software is good at is proof-of-concept solutions. Someone looked at a tough problem and spent some evenings making an elegant solution. Or got some cool idea that might work and demonstrated that it does under one set of circumstances. Or implemented a cool algorithm from a research paper. It is a mentally rewarding thing and many people would do it for fun. But in most of the cases it's not enough to make a great end-user product.
- gumby 6y ago> What free software is good at is proof-of-concept solutions. Someone looked at a tough problem and spent some evenings making an elegant solution. That's pretty dismissive of gcc, clang, linux, apache etc. "some evenings", eh? By 2000 I'd put probably $60M into gcc alone. > The thing I care the most is how much effort (physical time and also distraction) does it take to solve my typical workday problems with certain software. And, based on my experience, GNU tools very rarely excel at this metric. Whereas based on my experience it excels, in particular over software that only, or primarily works with a GUI. The GNU tools in particular are optimized for their target end-user base. You may happen not to be in it. Nothing bad or good about that; there's plenty of stuff for which I am not in the target user base. It just seems odd you are so casually dismissive. > As an end user, the least thing I care about is how the program behaves under some synthetic circumstances [fuzz test] that I will very likely never encounter. Actually you care a lot that your program is robust against fizz tests like these, for security and accident reasons... or you will care if it has not been subject to such tests. Just as you care that your car has been crash tested "under some synthetic circumstances"
- bitwize 6y ago> The GNU tools in particular are optimized for their target end-user base. Yeah, I'm thinking maybe you didn't use MetroWerks CodeWarrior or Borland C++ back in the day. Those IDEs could scream through compiling a C++ code base, and provided superb integration between the compiler, editor, and debugger. Gcc by comparison is slow, and the tooling is still stone knives and bearskins compared to what Windows and Mac users had in the 90s. So either the target end user base is people who don't mind slow compilers and poorly integrated tools (maybe understandable in the embedded world where it's that or nothing for some arcane CPU architecture), or the GNU tools are poorly optimized.
- yjftsjthsd-h 6y agoYou're not comparing apples to apples. Compare gcc or clang to Microsoft's C++ compiler from 2020, and you'll find that they're doing just fine. What's changed is that rather than a compiler that takes C++ in and produces x86 executable output, we have compiler suites that take input from C/C++/Fortran/whatever, runs it through a few decades' worth of optimizations, and then target the result at Linux/*BSD/NT/Darwin on ARM/x86/POWER/RISC-V/SPARC/MIPS. And optimizations are expensive.
- john_moscow 6y ago>That's pretty dismissive of gcc, clang, linux, apache etc. "some evenings", eh? By 2000 I'd put probably $60M into gcc alone. You mean the tools that are maintained by huge teams in large companies, because the they are critical to the paid products or services sold by these companies? Sure, technically it's free software, but de-facto they are decentralized loss leaders behind fairly solid business models. >It just seems odd you are so casually dismissive. I'm just talking about my own expectations and experience. Aside from a few notable exceptions like the ones you mentioned, my experience with free software very often starts with googling why it doesn't work out-of-the-box (or does something completely unintended) and where to find some obscure setting to change this. > Just as you care that your car has been crash tested "under some synthetic circumstances" I care that my car has been crash tested, but I don't care if my coffee mug wasn't. There are many solid cases where security is a priority, and many others where it isn't.