Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

>I feel like we would have a hindsight to design it better, faster, and cheaper.

Maybe I'm just pessimistic but I suspect the opposite would occur. It would be buggier, slower and more expensive once you started trying to operate at any kind of scale. The reason being that hidden within all the accumulated layers of cruft are a million fixes for specific security, reliability and performance issues discovered through real world usage.



I think that's the interesting word: "hidden"

That's a pity. Wouldn't it be nice if we somehow could separate the cruft from the craft?

What if some computational deity sifted through our collective codebase and distilled the essence, the minimal, purest kernel? Such minimangel's task would be daunting and probably useless, since the moment we'd throw some new use cases and requirements, NIH and patents, POCs and MVPs and we're back to the simmering mess in no time.


Those hidden snippets are not the cruft. Every ugly hack we would find is likely a required use case and the whole mess is the craft. Maybe we should stop calling it a mess and accept that non-trivial software with on-demand requirements always take this form...

So lets call it detail instead. You cannot separate detail from the craft.


I meant that the hidden things were the "craft" hidden among tons of cruft


I think you'll rather find that there's tons of craft, and relatively little cruft.


ok but let's distinguish smart things that were done to workaround past blunders from smart things that you would have done anyways.

Both are "craft", but only the latter is "necessary" and would thus survive the "total rewrite" posited in this "thought experiment".

For example, the x86 is fully of crap; layer upon layer of smarts have been added to deal with design flaws that it was impossible to fix without breaking backward compatibility.

Backward compatibility was practically important, because of network effect (and indeed competitors lose the battle because they were not compatible with x86, or even with their past selves). This practical constrain caused smart people to build smart tricks on top of that foundation.

Sure, it required a lot of smarts to do etc etc but how'd you call it when you end up tunnelling a SCSI command inside an ATA packet wrapped in another SCSI command?




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: