Low-end does not equal Low-end Disruption

Clayton Christensen outlines several rules as a litmus test to check whether certain strategies qualify as low-end disruptions. These are described together with some examples in his book “The Innovator’s Solution: Creating and Sustaining Successful Growth”, which is viewable on Google Books (although I highly recommend purchasing the book).

Although many people are aware that low-end disruptions can occur when the performance of the current technology is overshooting the mainstream, that is hardly sufficient. There are several more important tests which are just as important, but are often left out.

Here I want to review those which I think are critical.

  1. If it is to be a low-end disruption, customers in the low-end of the current market must be over-served.
  2. The disruptor must be able to earn attractive returns at the low-end prices.
  3. If it is to be a new-market disruption, it has to compete against non-consumption. That means that a large untapped market exists which can be targeted with the new product.
  4. The disruption must be so that the incumbents are motivated to flee upmarket.

In my discussion on Chromebooks, I argue that Chromebooks cannot be a low-end disruption nor new-market disruption;

  1. Low-end Wintel laptops are virtually identical hardware-wise to Chromebooks except for storage (HD vs. SSD). The firms that produce the hardware are also the same. Hence Chromebooks do not allow attractive returns compared to Wintel (price differences simply reflect the OS price). Additionally, price wars have already begun making profits elusive.
  2. The price difference or simplicity difference of Chromebooks compared to Wintel is not very significant. Certainly not significant enough to tap non-consumption, except in the most price-conscious markets.
  3. Microsoft has traditionally aggressively pursued the low-end. Intel similarly targets the low-end with Atom and Celeron. It is unlikely that they will be motivated to flee upmarket.

In my discussion of Windows phone, I argue that Windows phone could be a low-end/new-market disruption because apparently Windows phone can run better on low-end hardware compared to Android, thus giving Windows phone the possibility to earn attractive returns at lower prices.

Android 4.4 KitKat has been reengineered to work better on low-spec phones to address this vulnerability, but until Samsung comes out with a low-end KitKat phone, low-end Windows phones will continue to thrive. The success of Windows phone largely rests on whether or not Google has really managed to get KitKat to work well on low-end phones. Given that Android up till now has always required more resources than iOS, even with Googles technical prowess, I don’t really know the answer.

Additionally, looking at MS-Office vs. Google Docs, it is evident that Google Docs is trying to be a low-end disruptor. The issue is that MS-Office is very much a standard file-format, and hence even low-end users require MS-Office. Unless the user is technically skilled enough to be comfortable with fixing format incompatibilities, they will take the safe route which is staying with MS-Office. The issue is not whether the low-end of the current market is over-served by MS-Office features. Instead, we should look at file-format compatibility. 100% file-format compatibility is something that most corporate customers require, and it is hence not over-serving in any way.

It is important to note that Microsoft is willing to bundle MS-Office at a low price for Windows 8. They really don’t like giving up the low-end.

To summarize, I have described why I think that a lot of the potential low-end disruptions that are being discussed on the web simply do not pass the litmus-test as described by Clayton Christensen. Windows phone might have a chance, not because Google is fleeing upmarket, but because it might take too much time until Android KitKat is ready for low-end phones.

Network Usage Between Devices and Carrier Networks

An article by Stephen Shankland summarized data from Actix that examined communications between mobile devices and carrier’ mobile networks.

Compare to web-usage statistics based on analytics data from a subset of websites (StatCounter and NetMarketShare), this analysis is likely to be more representative of usage. This is because it counts activity from apps (not just browsers) and because websites that install StatCounter and NetMarketShare analytics software are not necessarily representative of the web as a whole.


Several things that caught my eye;

  1. iPhones are really, really strong. People love using their iPhones.
  2. Old iPhones (which happen to even run iOS 7, the most recent iOS) are still going strong.
  3. Non-Samsung Android smartphones are really, really, really scarce.

On the Future of MS-Office, or Actually How MS-Office Affects the Future

There’s was this interesting conversation on the future of MS-Office on Twitter, and Umang Jaipuria collected the tweets to make a very interesting read.

Matt Rosoff also wrote an informative article inspired by this discussion “Why Microsoft Office can’t be uprooted so easily”.

This is also something that I have been thinking about and I just want to add a few comments to clarify my thoughts.

Bendict Evans:

The future & importance of MS Office is a key to understanding a lot of the next few years. Often seems like a blind spot in the Valley

Bendict Evans:

Hence my original tweet: the way Office evolves or its use cases get reimagined is a big trend, which also affects tablets & PCs

This is a very important point which unfortunately seems to have been lost as the discussion turned into an MS-Office vs. Google Docs argument. What I think Ben Evans meant to say is that if MS-Office remains as important and relevant as it currently is, then the platforms that work well with it will be at a strong advantage.

I understand this to mean that what Microsoft chooses to do, and actually manages to implement with MS-Office, will strongly affect which platforms will win in the tablet market, and the extent to which laptops will be replaced by tablets.

Marc Andreessen

Plus Google Docs and its peers way better for online collaboration–automatic, seamless, all devices/OSs — new requirement.

Benedict Evans

Shared doc editing is a feature and not a universal core case. And isn’t a collaboration platform a better approach?

Here Marc Andreessen argues that the collaboration features of Google Docs are the core appeal. Benedict Evans on the other hand disagrees.

If I understand correctly, Benedict Evans views Google Docs as an inferior replacement for MS-Office whereas Marc Andreessen thinks that Google Docs is a collaboration platform more akin to a Wiki.

My opinion leans towards Benedict Evans. For one thing, the design of Google Docs simply resembles a folder with some Word, Excel or Powerpoint documents. Even the icon colors try to associate themselves with the color-coding for MS-Office; blue for a word processor, green for a spreadsheet, and orange for presentations. Inside the app, the user-interface strongly resembles pre-ribbon MS-Office interfaces. There are a couple of buttons for collaboration features, but that’s it. The design suggests that sharing is an addition to the core case (low-cost imitation of MS-Office) and not the other way around.

What this means is that Google Docs is probably targeted towards users who primarily want to edit a document.

Benedict Evans:

Excel is a platform. And an IDE

Benedict Evans:

Office is very feature rich but task-agnostic (Lawyers & admen use same apps). SAAS tends to be the other way around?

Chris Dixon:

yes, SaaS tends to be focused on jobs to be done. Part of is it “bottoms up” (division level) sales model.

Marc Andreessen

And it seems that because of that SAAS will end up being much bigger/diverse than we all thought 5-10 yrs ago.

There is good agreement here in what MS-Office is, and what the new SaaS products that Marc Andreessen and others foresee will replace it are.

Marc Andreessen appears to think that SaaS will diversify and evolve to the point where, for most custom solutions that can be imagined in Excel, there will be a SaaS solution for it. I find this hard to believe.

Whenever we adopt a SaaS solution, we are forced to adjust to it. There is very rarely a pre-configured product that fits what we need to do exactly. In addition to a learning curve, there is an adoption curve where we change our workflow to fit better with the fixed SaaS solution. What’s more troublesome is that we don’t really know before we embark on our learning, whether or not the fit will be good. Unless the application requires a lot of collaboration and simultaneous access, forgoing a SaaS and instead creating a simple solution in Excel is often by far the quickest and the most effective.

My view

Google Docs is an attempt to commoditize MS-Office. It imitated the design and functionality of MS-Office and is offered free-of-charge to maximize adoption. However, MS-Office is still very much the standard in corporate and professional environments.

Importantly, MS-Office is not just content-creation software. It is often used as viewing software. It is the equivalent of Adobe Illustrator, Adobe InDesign and Adobe Acrobat for the creator, but also the equivalent of Adobe Acrobat Viewer for the reader. The availability of MS-Office does not only affect the content-creation side, but is essential for the consumption side as well.

As Benedict Evans states, the evolution of MS-Office and how corporations use software will greatly affect tablets & PCs. This is a very strong card that Microsoft still holds, and which can sway the game to its favor. Its strength is very often underestimated.

There are a lot of unknowns and also technical obstacles.

Apple recently introduced new versions of its programs in the iWorks suite. The reviews were not pretty. In order to bring file-format and user-interface parity between the iOS versions and the Mac versions, many features of the Mac version were at least temporarily removed. Given that the PC versions of MS-Office have much more features than iWorks ever did, achieving file-format and feature parity between mobile and PC versions of MS-Office is likely to remain a huge challenge for many more years. However, Atom-based Windows tablets running regular Windows 8 will have no problem running the PC version of MS-Office, although the UI may be awkward.

It will be interesting to see how Microsoft plays its cards.

Why the Chromebook is not a Low-End Disruption

Do Chromebooks fill the criteria for a low-end disruption? Can we expect the Chromebooks to eventually move upmarket and disrupt the PC industry? Since we have seen Chromebooks make some success in some markets, these are valid questions to ask.

First of all, there is no denying that Chromebooks are low-end. They are typically priced lower than Windows laptops (although the price difference is not very large), and the cheaper Chromebooks have lower specs. However, low-price alone does not qualify a product as a low-end disruption.

Let’s look at a few more attributes that we should find in a product that causes low-end disruption.

Is the current market overshooting?

In terms of performance, Chromebooks and low-end Wintel laptops both use Intel Celeron processors. There are some exceptions that use an ARM, but these are mostly coming from Samsung which makes their own ARM-based CPUs. They also have 2GB of RAM which is the same as a low-end Windows laptop. The main difference seems to be whether they use a HD with hundreds of Gigabytes of storage, or whether they use a fast SSD with only tens of Gigabytes of storage. Storage seems to be the only area where Chromebooks can skimp on hardware relative to Wintel machines.

Given that the hardware specifications of a Chromebook and a low-end Wintel laptop are almost identical, it is hard to argue that the Chromebooks are targeting a market that is over-served by Wintel. You could argue that Chromebooks are faster than Wintel due to the use of SSD, and that probably is very true. This would however suggest that Chromebooks are “sustaining innovations” relative to Wintel that are playing in the low-end market segment.

Is the price differential large enough to attract new customers?

Although the cost for an OEM to install Windows on a computer is confidential, it is probably not large enough to make a free operating system like Chrome OS a game changer. For example, the cheapest Chromebook on Amazon.com is the Acer C720 for $199 with a Intel Celeron 2955U 1.4 GHz CPU and 2GB of RAM. On the Windows side, you can get an ASUS 1015E laptop with an Intel Celeron 847 1.1 GHz CPU and 2GB of RAM for $299 or a ASUS VivoBook X200CA with an Intel Celeron 1007U 1.5GHz CPU and 2GB of RAM for $300.

The price difference of $100 is substantial at this low price, but it is not large enough to expand the market. I doubt that people willing to pay $200 will find $300 abominable. Hence people looking at Chromebooks will also be interested in Windows. Chromebooks are not creating a new market for consumers who couldn’t previously afford a laptop. They are simply marketed to the same customers as a cheaper alternative.

Therefore Chromebooks are not competing with non-consumption. Instead they are competing head-on with the incumbent, and that is always difficult.

Is the simplicity enough to attract new customers?

Some people argue that Chromebooks are much simpler than Wintel computers or Macs. That may or may not be the case, depending on the tasks that you need to get done. This is not however the question that should be asked.

What needs to be addressed is whether or not the increased simplicity is enough to target non-consumption. In other words, will those people who previously did not buy laptops due to the complexity, buy Chromebooks by virtue of the improved simplicity. Will the increased simplicity create a new market which Chromebooks can uniquely target?

That was certainly the case for the iPad. Small children and seniors are very comfortable with the iPad. Significant numbers of people who didn’t use personal computers before can now use iPads because of the much improved simplicity.

Now, is this the case with Chromebooks? I strongly doubt it.

What are the jobs-to-be-done?

When you compare the jobs-to-be-done of Chromebooks and Wintel laptops, Chromebooks are simply a subset.

Both require you to be sitting at your desk or at least have your computer on your lap. This is very different from iPads and smartphones which can be used comfortably even when you are standing up, lying down or reclining on the sofa. Hence Chromebooks will be used when you are at work or studying. Not when you are relaxing or only have a couple of minutes of free time. They won’t be used much for reading e-books, watching videos, etc. You can easily see that the usage scenarios for Chromebooks completely overlap with Wintel laptops.

Hence Chromebooks are competing directly with Wintel for the same jobs-to-be-done. Here again, they are fighting the incumbent head on.


In summary, Chromebooks are unlikely to succeed as a low-end disruption because they are competing head on against the incumbent in almost every way. Although the incumbent (Wintel) is weakened compared to its heyday, they successfully deflected the Netbook-Linux threat and are still formidable competitors. Wintel has also always addressed the low-end, and has never fled up-market. Chromebooks are not significantly more low-end than the market Wintel is already competing in so we can expect Wintel to quickly address any threats. I find it unlikely that Chromebooks are enough to disrupt.

What the Tablet Market isn’t

The common narrative on tablets is that they are replacing PCs. Tablets indeed look like a typical “low-end disruption” as discussed in “The Innovator’s Dilemma” by Clayton Christensen. “Low-end disruption” frequently involves products that are less powerful then the mainstream but simpler to use. Price is often cheaper as well.

Tablets fit this description almost perfectly. They are not as powerful as PCs and are difficult to use for many of the complicated tasks that power users regularly perform. On the other hand, they are inexpensive and easy to use. Even kindergarten children can use them quite effectively.

Looking at shipment data from places like Garner and IDC, it seems clear that tablets are replacing PCs as the former sales rise and the later sales are tanking.

The story however, is not so simple. If you take a look under the hood, as Ben Bajarin has been doing in his excellent Techpinions website, there is data that does not fit a “low-end disruption” trajectory.

Here, I would like to take a look at his article “The State of Tablets in 2013” ( It is behind a paywall, but if you frequently search the web for tech information, then the price is well worth it. A lot of the information that you get cannot be found on the “free” web. )

In this article, Ben Bajarin give us some interesting data points;

  1. The vast majority of tablet sales are to existing PC owners.
  2. People who bought “cheap” tablets have buyers’ remorse and intend to spend more on their next purchase.
  3. The majority of “branded” Android tablets are being sold by Samsung. Nexus 7 (Asus) sales are weak. Amazon Kindles are only selling well during the holidays. Samsung tablet sales may be mainly due to these being offered cheaply or as a gift together with a purchase of a Samsung smartphone.
  4. A lot of the cheap tablets aren’t being used. Even usage statistics for the “branded” tablets from Samsung are disproportionately low.

Compare the situation with what we would normally expect from a “low-end disruption”;

  1. “Low-end disruption” succeeds when the pre-existing product is too powerful, and a less powerful product would satisfy most customers’ needs. The “low-end” product enables those who would otherwise have been non-consumers to make a purchase, thereby increasing the addressable market. These non-consumers would be satisfied with their purchase because the alternative would be no purchase at all. Since tablets are selling to existing PC owners, and they seem to regret their purchase, this does not seem to be the case. (iPad users seem to be satisfied with their purchase, so iPads actually qualify in this aspect.)
  2. “Low-end disruption” products should be cheaper than pre-existing products. However, low prices should be attained by virtue of the product being simpler to produce and support. They should not be cheap because the vendor is willing to reduce margins, or to lose money. That is not a “low-end disruption” but instead it simply is a price war; a vain attempt to gain market-share in a strategic market. (iPads have a reasonable margin, so they uniquely qualify here again.)
  3. “Low-end disruption” products subsequently improve in quality, performance and features so that they can more fully replace the pre-existing product. If innovation is simply being used to lower prices rather than improve capabilities, then the disruption will not work its way up the ladder.

I see the current situation more resembling a “new market disruption”. In a “new market disruption”, the new product fits a market that is not being served by pre-existing products. Ben Bajarin’s report in combination with other reports I have seen, seem to indicate the following market.

  1. The market for kids’ computers.
  2. The market for portable video players, which importantly are capable of playing pirated content.
  3. The market for computers that you want to use on the sofa or in bed or standing up.

You may well ask, “well what’s the difference between a low-end disruption and a new-market disruption”. My answer is that if tablets are a “low-end disruption” of PCs, then we can predict that the market (counted in units) will be larger than that of current PCs. On the other hand, if it is a “new-market disruption”, then we can’t accurately predict the size of the market. It may be much smaller.

Let’s take a look at the adoption curve of tablets to see if it the growth trajectory can give us a clue about the potential market size. We’ll first look at web usage statistics from StatCounter.

StatCounter comparison US quarterly 20121 20141

In my eyes, the growth trajectory of tablet Internet usage is extremely gradual. This is also mirrored in other statistics. Horace Dediu of Asymco attributes the slowing tablet growth to the lack of new iPad introductions. I am however unconvinced. I think there is a strong possibility that the addressable market of the current tablets is actually quite small.

Just to clarify, when we are talking about tablet sales, we have to be careful to exclude the tablets that are being sold and used as portable video players. Most of the unbranded Android tablets that are unactivated are likely to be in this category. It is also likely that a significant portion of branded Android tablets are included, although it is difficult to determine how many. For example, Panasonic, a huge Japanese consumer electronics company is selling a “Home Smartphone VS-HSP200S” which is actually a 7-inch tablet-ish device running Android 2.3 and which is WiFi only but connects to Google Play. It is mainly marketed as a Skype and electronic Fax machine as is evident from the product name. Also Toshiba in Japan is selling their tablets under the REGZA brand (their TV brand), not their Dynabook (laptop) brand.

So what I sense is the possibility that tablets (as computing devices) may have hit a roadblock in adoption, and this is due to the potential market being actually much smaller than envisioned. Much smaller than the PC market.

If this is the case, then what should be done about it? Or even, is it worth trying? Are we trying to artificially enlarge a market that is actually rather small?

These are questions that may be answered in the next iteration of iPads from Apple. Remember that “low-end disruptions” are at first not very capable, but they eventually move up-market through innovations that enable them to compete with high-end products but retain their simplicity. I strongly doubt that huge tablets or 2-in-1s qualify as this kind of innovation. Apple (and most likely only Apple) may have the answer in one of its labs.

iPads vs. Chromebooks Illustrates how Apple and Google are Different

There is a lot of talk on the web about how successful the Chromebooks are starting to be (or if they are successful at all). I have discussed this at length in this blog (although mainly in Japanese), and my conclusion as of now is that success is limited to education. As Ben Bajarin informed me via Twitter, most Chromebooks are being used as digital textbooks, so to speak.

Searching the web, the main allure of Chromebooks in an educational environment seem to be;

  1. Price of device.
  2. Ease of administration.
  3. Availability of a keyboard (compared to iPads).

In other metrics like the number of educational applications, Chromebooks fall behind Windows.

Given the above situation, the innovation in Chromebooks can be summarized as follows;

  1. Chromebooks are an “efficiency” innovation. They aim to reduce the price of personal computers (including cost of administration) in education.
  2. Chromebooks are targeting the “low-end”, trading off features for price. The assumption is that the capability of current day computers are overshooting educational requirements and that Chromebooks are “good-enough”. Whether Chromebooks can succeed as a “low-end disruption” is dependent on whether this assumption is true.

This approach is very similar to how Google approached office software suites with Google Docs and even Android.

In both cases, Google has simply done the following;

  1. Imitate the incumbent.
  2. Reduce the price.

Chromebooks are simply normal laptops with a browser focus. Removal of baggage has improved the experience for some tasks, but for the most part, Chromebooks are just another laptop. They are hardly the re-think of computing that iPads were.

Google Docs is essentially an underpowered Office suite. The user interface closely mimics MS-Office but a lot of the features aren’t there. There are also some collaborative features which are an improvement on what MS-Office already provided, but the main appeal is indisputably the price.

Contrast this to what iPads have enabled in education. There are many examples, but I will refer to an article that I came by this morning which discusses the many hurdles for adopting technology in the classroom (which clearly shows that computers in education are hardly “good enough”), but also illustrates the benefits.

iPads in the classroom: Not a bust, but not yet a boon

In the meantime, Cisneros notices how iPads help students new to the English language open up. She listened to a recording they did as they told stories about illustrations that were uploaded to their tablets.

“These students never speak in class,” Cisneros says. “But I hear them in the recording, telling these stories and providing all these elaborate details.”

Cisneros also uses the iPad to transport them to different places. Recently, she arranged for her students to meet first-graders in a special education class at Esplanade Elementary in Orange, Calif., via the iPad. One student used Braille to read a story to Cisneros’ class.

“My students were mesmerized, watching her hands move over the pages,” Cisneros said. “I got chills.”

This is “empowering” innovation.

Google’s hope is that by imitating current technology and making it free, more people will use it. The assumption is that price is the major barrier. They overcome this barrier by either subsidizing the price with their profits from the search business, or apply “efficiency” innovations.

Apple’s approach is that price is not the major barrier. They assume the barrier is simplicity. To overcome this barrier, they rethink and remake the product to make it simple. This result is an “empowering” innovation.

If Google had existed around the time Apple created the Apple I, I imagine Google would have worked to reduce its price by sacrificing margins. Their target would be hardware hobbyists who were short of money. What Apple did was to create the Apple II, thereby empowering people whom were not hardware hobbyists to experience personal computing.

Good is the enemy of Great for the iPad

While probably not the first person to say it, Jonathan Ive has been quoted as saying “Good is the enemy of great”, and this is likely one of the mantras at Apple. Apple has often resisted the urge to create “good” products, and waited until they could release a “great” product.

In my view, this is probably how Apple is tackling issues with the iPad right now.

Some examples of Apple not releasing “good” products;

  1. Apple did not release a two-button mouse. They waited until they came up with the idea to use sensors on the surface of the mouse, which would ultimately result in multi-touch mice. Hence the transition from a one-button mouse to the “mighty mouse” and then the “magic mouse”. What Apple did was to forgo the “good” solution (two-button) and wait for the “great” one.
  2. From the original Mac Pro (2006) to the newly released cylindrical 2nd generation Mac Pro (2013), Apple waited a full 7 years. No doubt they could have made “good” minor changes in the design somewhere in the middle. However, they focused on the “great”.
  3. Apple did not include copy-and-paste on the original iPhone. Apple waited until iPhone OS 3.0 for that. They were waiting to make their implementation “great”. Android rushed, as always, and their implementation was only “good”.
  4. Apple did not allow multi-tasking on the original iPhone. In fact, multitasking was only allowed starting on iOS 4.0. The reasons are straightforward; Apple was waiting until iOS could multitask without draining battery-life. They were forgoing the “good” solution until they had a “great” one.

Given Apple’s history of resisting “good” solutions, it is unlikely we will be seeing the suggested evolutionary changes that are being discussed on the web. In that article, they mention a slotted clipboard among other suggestions.

In the link above, former Apple executive Jean-Louis Gassée states his view why Apple won’t create a “Hybrid” tablet. His reason is simply because the iPad and the MacBook have high customer satisfaction, so there is no reason to ruin it. He also relies on the hindsight that Microsoft’s Surface was a flop.

That kind of reasoning is what makes me happy that Jean-Louis Gassée is not at Apple anymore. There is very little logic to his statements and no underlying understanding of what is making Apple successful.

If you consider that Apple is not about making “good” products but making “great” products, then the logic flows naturally.

Jean-Louis Gassée makes the statement;

Still, preparing a mixed media document, even a moderately complex one, irresistibly throws most users back to a conventional PC or laptop. With multiple windows and folders, the Mac lets us accumulate text, web pages, spreadsheets and graphics to be distilled, cut and pasted into the intended document.

and suggests the slotted clipboard as a possible solution.

This is the wrong approach. What he is discussing is how can we make it possible to do on iPads what we were doing on PCs. He is trying to find a way to bring iPads closer to PCs. This is the “good” approach.

The “great” approach would be to find a way to make creating mixed media documents easier on an iPad than it is on a Mac. Maybe not easier for people who have been downloading and storing files in folders for 20 years, but for those who have found that overwhelming and complicated.

In fact, Apple has been doing just this for photos and videos. Consider how you would attach a photo to a Twitter post on a Mac. You would drag-and-drop the file. Compare that to how you do it on iOS. In iOS, you click a “photo” button inside the Twitter app, and you are presented with your photo library. Simply chose the photo you want, and it will be inserted in your tweet. No need for a clipboard of any kind.

Apple hasn’t done anything similar yet for other kinds of content like text snippets. It is more likely however, that they will pursue this path rather than a slotted clipboard approach. Why? Because it is simpler.

In summary, trying to get iPad to do what Macs are currently capable of is only the “good” approach. Given Apple’s track record, this is not the path they will take. Apple is most likely taking its time to come up with a “great” solution. A “great” solution that will make the same task much easier on an iPad than on a Mac.

Javascript Callback Hell and how I cope

I’m not a heavy Javascript coder, but I have already experienced “Callback Hell” more that I would like.

“Callback Hell” is well describe in this website, and they provide some ways to remedy. I however have some issues with this approach.

I’ve copied their example for “Keep your code shallow”, which I understand is the most generic solution (meaning the solution that doesn’t depend on external libraries).

function formSubmit(submitEvent) {
var name = document.querySelector(‘input’).value
uri: “http://example.com/upload”,
body: name,
method: “POST”
}, postResponse)
function postResponse(err, response, body) {
var statusMessage = document.querySelector(‘.status’)
if (err) return statusMessage.value = err
statusMessage.value = body
document.querySelector(‘form’).onsubmit = formSubmit

The issue that I have with this code is that there is no central function that gives me an outline of the program flow. For example, if you wanted to know how error messages are displayed, you would have to first go into formSubmit. There you notice that the callback for the request is postResponse so you read the postResponse function. There you finally find how the error messages are handled.

Having the program flow scattered all over the place makes my head hurt. I need to know how the functions in my code fit together. Especially if you are writing some controller code, you are most likely going to summon functions from a lot of different objects/classes and having to wade through those to understand program flow is something that I want to avoid. I want an overview of the program flow in one single location. I’ve tried “Keeping my code shallow”, but in my experience, it actually made the situation worse.

Coming from a Ruby background where the mantra is to keep methods short and clean, Javascript functions look awfully long and complicated. You feel an urge to separate these into discrete functions and this works if your code is synchronous. When you are dealing with asynchronous code however, you often find yourself writing the same kind of code described above, and you find that it’s more difficult to understand the refactored code than the initial monolithic function. This drove me crazy.

If you could write synchronous code, you could write something like this, which is how I would want to write it;

function formSubmit(submitEvent) {
var name = document.querySelector(‘input’).value
response = request({
uri: “http://example.com/upload”,
body: name,
method: “POST”

The benefit of the synchronous code is that you now have a central location which dictates the flow of the code. You know upfront that your choices for hunting down the error handling code is either the request function or the postResponse function, and judging by the names, postResponse looks more likely. Compare this with the synchronous code where you only learn of the existence of the postResponse function after you read the call to request inside of formSubmit.

This becomes a huge problem when the code is more complex and you need to process the request through multiple steps (resulting in multiple nested callbacks).

My approach is to code like the following;

function formSubmit(submitEvent, callback) {
var name = document.querySelector(‘input’).value
uri: “http://example.com/upload”,
body: name,
method: “POST”
}, callback)
function postResponse(err, response, body) {
var statusMessage = document.querySelector(‘.status’)
if (err) return statusMessage.value = err
statusMessage.value = body
document.querySelector(‘form’).onsubmit =

This style makes it clear that formSubmit subsequently calls postResponse.

If you need to do some more complex processing, you can write the following;

function formSubmit(submitEvent, callback) {
var name = document.querySelector(‘input’).value
uri: “http://example.com/upload”,
body: name,
method: “POST”
}, callback())
function postResponse(err, response, body, callback) {
var statusMessage = document.querySelector(‘.status’)
if (err) return statusMessage.value = err
statusMessage.value = body
function doSomethingExtra(callback){
// Do something here
function doEvenMore(callback){
// Do something here
document.querySelector(‘form’).onsubmit =

It is still super easy to understand the program flow. If you did something like this with the normal approach, you would have to first look into formSubmit, postResponse, doSomethingExtra and finally doEvenMore.

If you use Coffeescript, then the code would look like the following, which makes the intent of the code super easy to understand;

document.querySelector(‘form’).onsubmit = (event) ->
formSubmit event, (err, response, body) ->
postResponse err, response, body, ->
doSomethingExtra ->

The interesting thing about the Coffeescript code is that with the functions statements out of the way, it starts to look like synchronous code with the exception that each consecutive method call is indented one step more than the previous. What I really like is that the program flow is as easy to understand as synchronous code.

Not being a heavy Javascript coder, I haven’t really put my head into error handling and such so I’m sure there is a lot that I’ve overlooked. I’m just posting here the way that I’m overcoming “Callback Hell”, and I really like it compared to the alternative remedies that I find on the web.





米国のデータです。それほど大きなスパイクではありませんが、Chromeは週末に多く使われているのがわかります。それに対してFirefoxはスパイクが全く見られず、職場でもプライベートでも使われていることがわかります。参考までにInternet Explorerは週末に下にスパイクしており、週末には比較的使われていないことがわかります。

StatCounter browser US daily 20130620 20131120


StatCounter browser JP daily 20130620 20131120


StatCounter browser DE daily 20130620 20131120

ブラジルのデータです。ここはInternet Explorerが週末に利用が増えていて、Firefoxは平日に利用が増えています。またChromeは余りはっきりしません。

StatCounter browser BR daily 20130620 20131120




StatCounter browser BR daily 20091120 20111120


StatCounter browser BR daily 20111120 20131120


StatCounter browser US daily 20091120 20111120


StatCounter browser DE daily 20111120 20131120



  1. 新しい製品が浸透するのは、職場よりも圧倒的にプライベートでの利用が早いです。ブラジルにおいてはChromeが職場に浸透してきましたが、他の国(米国、ドイツ)でChromeが浸透していくかは未知数です。
  2. 職場ではInternet Explorerが強みを発揮していますが、standards compliantなブラウザが必要なときは歴史的にFirefoxが使われてきたと思われます。いったん確立されたこのFirefoxの立場は、容易にはChromeに変わらないのでしょう。