5 ms·
I think you underestimate how many smart people proceeded you. Yes, in some cases there are new technologies that transform how we build things and using those
by throwaway9870 6y ago
I think you underestimate how many smart people proceeded you. Yes, in some cases there are new technologies that transform how we build things and using those from the start might put you in a better place. But in-between those inventions is a lot of hard work by really smart people that would be incredibly hard to match let alone exceed.
To build a system, you would have to start at the bottom layers and then build up. To think you could design any of those layers (protocols, languages, tools, etc.) without making mistakes is naive and I think you would end up with a system that is layered just like current systems, but each layer being much less thought out. Yes, that is even with complete hindsight. I have watched many experienced teams fail on gen 2 of systems.
Don't get me wrong, there are many things I dislike in computers, starting with autotools :) But things like autotools are a lot easier to replace in Hacker News comments than in real life.
- systemvoltage 6y agoI had no intention to belittle the complexity, monumental effort and almost impossible to imagine amount of man hours that would go into this - it was purely a thought experiment. Do you really think that it would be less thought out if we have lots of resources and smart people? I feel optimistic that we can bake in the lessons from the past and improve on existing layers/stack/protocols.
- oh_sigh 6y agoI think the problem is that, even if you end up getting a proof of concept that attracts others, and they end up being 100x as productive as people using the Old Way, you will still be outpaced because the Old Way has 100,000x as many people working on it as there are on the New Way.
- divbzero 6y agoThe odds are stacked against any specific New Way from taking hold. But we can also invert our perspective and ask: Will there a dramatic shift to a New Way in the next half century? Since 1970 there have been at least 3 major transitions in how people work with technology, it’s easy to imagine more will come before 2070.
- random314 6y agowhat are the 3 major transitions?
- divbzero 6y agoThe three I would pick are: 1. 1980s – 1990s Mainframe to PC 2. 1990s – 2000s PC to Web 3. 2000s – 2010s Web to Mobile In each of these transitions the software written for the Old Way was incompatible with the New Way. (There have also been shifts in data storage and network protocols that others might point to as major transitions.)
- loopz 6y agoAs long as it's all Node.js, we'll be safe! ;)
- pfarrell 6y agoIt's a good thought experiment, for sure. Do you have ideas of different directions for something fundamental? Outside the design of the computer system, I'm thinking about the problems we currently face with identity and trust. Maybe that's something that gets baked into a ground up reimplementation of TCP/IP.
- systemvoltage 6y agoI have. I think about UI a lot. I would love to see flat UI, not "flat" in aesthetic sense, but flat in hierarchical sense. Like photoshop menus, fighter jet cockpits, control panels and 90's porsche dashboards - give me a dedicated button exposed upfront. Laid out in logical fashion spatially - a tool bar group for all things audio, another one for display, and yet another one for devices. Ofcourse when number of items are dynamic, dropdowns are ok or another popup window is fine. No icons. Only text (sometimes abbreviated like CTRL PANEL). IMO hierarchical deep menus are logical but they take up precious time when you need to do that action 80 times a day. Same benefits can be obtained by well designed layout (with borders, background colors and proper labels). Most people would find that dauting. I think hiding stuff behind menus is not a good idea even though on surface it might feel like making it less complex. In fact, the complexity is the same, just visual clutter is reduced. I argue that we're really good at looking at visual clutter, my professor's desk is a good example of that.
- divbzero 6y agoYes, it’s the classic “Should we do a complete rewrite?” question blown up to an epic scale. The answer is usually “no” or “rewrite one layer” but their are times when things aren’t modular enough or the fundamental architecture is lacking.
- thu2111 6y agoThere's a lot of scope to simplify the developer stack. The web was never meant to be used for apps and it shows, badly. For the operating system layers, if you build a machine that doesn't expose an ISA, in which all code is run via a polyglot VM like the GraalVM/JVM, then you can more easily design a competitive CPU because suddenly you can use flat, direct physical address space mappings with an ISA that is throwing out old instructions whenever you need to. No need for an MMU, TLBs and all the other page table walking logic, IPC can be drastically simplified. Singularity / Midori was the most complete exploration of this concept, by Microsoft Research. Unfortunately they kind of went down a few bad R&D paths, in particular, by trying to match the performance of C++ code and relying too much on formal methods - i.e. all stuff interesting to implementors - instead of researching things interesting to developers. That's why the right way to re-invent computing is top down, not bottom up. Take an existing Linux distro and start to replace bits one step at a time, starting with the desktop environment, the app and data models, network protocols etc. But all the drivers and filesystem goop remains the same - limited potential for innovation there. That said, if you want to, these days you can reimplement drivers in userspace using whatever framework you like, reducing Linux to basically a fat microkernel.
- prerok 6y agoI think it is a nice thought experiment but exactly Oberon project shows that even a few smart people really can't be expected to create useful solutions. Have you seen the filesystem? It's been a really long time for me when I looked at it but as far as I recall you had to create a partition for each directory, essentially forcing you to anticipate the size of each directory you create. So, yes, it's a nice system to run in a virtual machine, you can learn a lot about how an OS is built. As for useful... not really. If we had lots and lots of really smart people working on a new version of everything, though, my guess is that we would end up with pretty much the same stuff we have today. As another commenter said, a lot of software projects doing next gen rewrites from scratch fail. The reason is simple: they focus on solving painpoints and forget about the areas that were neatly addressed by the previous architecture. The best approach IMO is to address the painpoints by refactoring them properly into the architecture. That is often very complex on its own but still has the best chance of succeeding.