Hacker News new | past | comments | ask | show | jobs | submit login

The Innovator's Dilemma guy also talks about integrated vs. modular architectures. By integrated, he means made in one elegant piece, meshing together just so; by modular he means you can mix-and-match (eg. from different suppliers, or to customize attributes easily), with clearly defined standard interfaces. Maybe it sounds like modular is always better; while it is more customizable and cheaper, integrated can always outperform it. Which one wins in a market depends on what that market most demands at that time, with respect to where the technology is at that moment. Is it fast enough? Does it have enough functions? Is it flexible enough? Is it cheap enough? Markets tend to move back and forth between them, as they evolve over a period of years.

For smartphones, performance is still an issue (and will be for 2-3 years I'd guess, by Moore's law), and so integrated platforms do the best job at this. This is Apple's forte - but they have limited time to make hay and get as firmly established as possible.

It's limited, because once the market's demand for performance is sated ("fast enough"), the market will base decisions on other issues - such as price. And that is not Apple's forte, nor does Apple want it to be. Thus, Apple already has the iPad lined up. After that, there'll be in another market at a stage where Apple's extraordinary ability to integrate can shine.

To be clear: Android is modular.




When were computers fast enough? Each computer I've gotten is exactly as fast as the previous one, from the 100 MHz pentium I had in 97 to the quad core I have now. Programs do more things, but that's why the speed has remained the same.

My only hope that this will change is with SSDs. I swapped my laptop's SSD for a HDD and now it's a dog, which reminded me how big the difference in performance is.


My anecdotal experience is different from yours. In the early 2000s I finally reached a point where I generally didn't care if my computer was the newest/fastest kid on the block. But of course Your mileage and usage may vary


I agree with your overall point, but I think your memory might be tricking you a bit. Mostly because the improvements have been gradual, and you've come to assume them.

Your subjective impression of speed probably hasn't changed, but I bet if you dig out your '97 Pentium and fire up Windows 95, you'll be surprised at how it compares to your memories of using it.


Allow me to answer in terms of integrated vs. modular architectures: they were fast enough when Java's virtual machine became viable, when .Net's virtual machine became viable, when interpreted scripting languages (Javascript, Python, Ruby) became viable.

Basically, whenever an extra layer that soaked up performance in return for other benefits (such faster development time, better error checking, more flexibility, easier, more intuitive) was actually adopted by real people, it meant that the computer was fast enough in their opinion to trade some of that fastness for other benefits.

relevant: http://xkcd.com/676/


Garbage collection (mentioned in the article) is also a great example of integrated vs modular, with the same tradeoffs: when you handle it manually, it is integrated with the code - and it's possible to optimize/customize its performance much better than an automatic garbage collector.

An automatic garbage collector is a separate module: the details are separated from your code; different garbage collectors (with different strategies/tradeoffs) can be used without affecting your code; and development is cheaper.


The average programmer skills probably stay constant but the average line of code is dependent on how many programs have versus how many lines of code they accumulated so far. However, you can bet older products will have more features by the virtue of code accumulation. With carelessness of some programming team, they become slower. Others, being more careful, will remain the same. Still others, gain in performance with practices that allow them reliable improvement in code quality.

Programs might have done more stuff, or not depending on what software you're looking at. Browsers on the whole do more stuff, but they also do it fast and efficient.

The evolution of software is much more dynamic and tricky to figure out. They are like corporations. Some corporation accumulate bureaucracy, others remain so-so, and others shed accuracy as a matter of survival.




Consider applying for YC's Spring batch! Applications are open till Feb 11.

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

Search: