4 ms·
6. Bring Back Moore's Law hmmm, maybe developer cycles are more valuable than machine cycles really is getting out of sync with current conditions? I didn't c
by 6ren 15y ago
6. Bring Back Moore's Law
hmmm, maybe developer cycles are more valuable than machine cycles really is getting out of sync with current conditions?
I didn't connect stalled clock-speeds to the web being slow til reading this. One reason is that web-serving is usually embarrassingly parallel, as each client is independent. Some other causes are increased client-side JS; assembling many services (eg. amazon); increased usage with resources not keeping pace. But pg's point is surely a factor too.
Bloated frameworks, and software with many layers (some quite unnecessary) were facilitated by increasing clock-speeds - but at least it's possible to get rid of them. Also, work has been done on JS JIT compilation. Server languages are getting faster too.
This may seem like a tangent, but bear with me: Clayton Christensen (who coined disruption) makes an interesting point about "integrated" (closely-coupled, interdependent) vs. "modular" (clean interfaces enabling mix-and-match) architecture.
The advantage of integration is you can make it perform fast - you can optimize "performance" according to a variety of definitions (e.g. smaller, lighter, more memory, less battery power etc). This wins when customers value increased performance - Christensen describes this willing to pay more for performance as it "not being good enough" because once it's good enough, they won't pay for more of it.
The economic advantage of modularity is you can develop fast, you can create and customize more quickly. Part of this is reusing components (e.g. buy off-the-shelf or open source, or reuse internally) - this wins when customers value that over performance. This usually doesn't happen until performance is "good enough": if it's too slow to use, who cares how configurable it is?
An example is iPhone/iPad (integrated) vs. Android (modular). The iPhone/iPad is fast, light, slim, long battery-life, better resolution, smoother animation etc. In contrast, there are many different Android devices, with different prices, displays, shapes etc, and many have customized UIs.
Christensen's fascinating point is not that one approach is better than the other, but that they change over time, cycling back and forth. It depends on what the market wants at the moment: what will customers pay for more of?
Following the example, once smart-phones become "good enough" in performance, customers will start to buy on other factors, such as price. This seems to be starting to happen for smart-phones; but not yet for tablets.
In relation to pg's observation of server slowness, it seems that formerly, performance was good enough, and so the developers that were most successful favoured mix-and-match layers, because they were faster to develop and easier to customize. But now, performance is a problem... which may mean that developers who favour integration will be most successful. It's not black and white, but an interesting perspective.
- stcredzero 15y agoBloated frameworks, and software with many layers (some quite unnecessary) were facilitated by increasing clock-speeds - but at least it's possible to get rid of them. Also, work has been done on JS JIT compilation. Server languages are getting faster too. It's instructive to note how much more compact alternative operating systems have been made compared to the mainstream ones. Full fledged BeOS systems used to weigh in at just a couple of hundred megabytes, with feature sets comparable to OS distributions taking several gigabytes. Also note that users of Symbolics Lisp machines used to be under the impression that the company had hundreds of programmers, and were amazed to learn that there were just 8. A bit of bringing back Moore's Law could be done by getting rid of bloat. Perhaps the advent of the Raspberry Pi will allow this to happen.
- tomjen3 15y agoToday the OS has to support way, way more different hardware than BeOS and Symbolics ever had to. BeOS made their own boxes right? Symbolics certainly did and I doubt they had a TCP/IP stack build in....
- jarek 15y agoBe did initially make BeBoxes, but BeOS later ran on off-the-shelf x86 hardware (provided it had drivers, of course, but basic graphics worked on pretty much anything of the era). BeOS R5 at least also had a TCP/IP stack, and while it wasn't highly regarded (Be was rewriting it when it went under) it more or less worked. By this argument, OS X should be a lot lighter than Windows, which it isn't.
- jodrellblank 15y agoRPi is the antitheses of bloat removal, it is desired because it brings enough horsepower to shift "what you want"+"the everyday bloat that needs", in a small package. Things like ddwrt on a netgear router are anti-bloat. Usable networked Linux in a 4MB image with 8MB RAM.
- stcredzero 15y ago