4 ms·
> I realized not too long ago that the biggest thing holding back the advancement of computing is software developers. They can't imagine novel ideas. Hey - So
by josephg 4y ago
> I realized not too long ago that the biggest thing holding back the advancement of computing is software developers. They can't imagine novel ideas.
Hey - Software engineers can imagine novel ideas. The problem is that every year, there's more code in the OS, and there's more code in web browsers, and there's more applications which depend on all that stuff. Chrome has 25 million lines. At that size, its really hard to innovate on how the browser works.
And that matters because some solutions require changing the operating environment. For example, I'd love to replace the filesystem with an append-only log, and replace files with CRDT based datasets. That would solve all sorts of problems. But doing so would require changing linux, and changing most existing software. Every year that passes, that gets harder and harder to do.
I don't know what the answer is here. Lots of people "solve this" by building further and further up the stack. Linux binaries not feature rich enough for you? We could fix them, but lets use Docker instead. Oh, you want to make a desktop app? You could use the native APIs for that; but who can be bothered learning the native UI APIs? Its much easier to write web app and ship a copy of Chrome on every platform.
We have to find a better answer than going "up the stack" every few years. But so long as people find it easier to write software than read software, its be hard to imagine the system getting simpler over time.
- mort96 4y ago> I'd love to replace the filesystem with an append-only log How would you solve the problem of, "I have a finite amount of storage and my drive is full and I need to delete something to make space for this new thing I want"?
- josephg 4y agoI'd make it be an append-only log + some sort of kafka style compaction. So for example you can tell it to compact all the parts of the log involving that file you've deleted. Create + Delete compacts to a no-op.
- solardev 4y agoSome sort of smart FIFO system that combines old entries and then culls them? Time Machine (apple's automated backup thing) does something similar, at a simpler level
- compsciphd 4y ago1) there are file systems that are append only logs (to an extent) - a decade ago I played around with nilf/nilfs2 2) the way finite storage is handled is that "deleted" content can be garbage collected, and you will then be able to loop around and write to those garbage collected areas. not fundamentally different than an SSD which many times has such a log file system at the hardware level.
- svnt 4y agoEventually it becomes overconstrained, too top-heavy and a new simpler set of abstractions are adopted. It feels like we are probably close to this happening now. The Structure of Scientific Revolutions by Thomas Kuhn is a view of what I’m talking about but in the world of academic theory instead of technology architecture.
- rileyphone 4y agoBrad Cox wrote “Planning the software industrial revolution” 30 years ago but now just might finally be the time. Won’t happen all at once but the complexity of the modern stack is clearly unsustainable. Exciting possibilities!