Wednesday, August 26, 2015

The coming split in computing

Personal computers have been rarely personal. The IBM PC (the original Personal Computer) may have been designed for individuals but was used by corporations. Earlier computers (the Apple II or the Radio Shack TRS-80) were used by a few hardy hobbyists, and a few hardy businesses.

The two markets for PCs -- the home market and the corporate market -- have used the same hardware and software since the IBM PC.  Adoption rates increased dramatically with the introduction of Microsoft Windows, and there were some differences between Windows 95/98 and Windows NT, but both home and business used the same "stuff". Microsoft's dominance in the market helped create a set of uniform products. After 2000, everyone used Windows 2000 (later Windows XP) and Microsoft Office (Word, Excel, and Outlook).

The two markets are driven by difference forces, however, and those differences will drive a change in the markets. The uniform environment of one operating system and one set of software will split.

Consumers are driven primarily by cost. Not just in PC markets, but in all markets. (Consider air travel. Consumers have consistently selected smaller seats and less comforts because of the lower price.)

Large organizations (corporations and governments) are sensitive to cost, but they also avoid risk. Risk avoidance is often handled by minimize change. Large organizations often have governance processes that standardize hardware and software and keep changes to a minimum. Small updates (such as security patches) are deployed in well-specified "off hours" time periods. Large updates (like a new operating system) are delayed until necessary, and implemented in a well-coordinated upgrade project.

The long life of Windows XP can be explained by both of these behaviors, but the reasoning in the two markets is different. For consumers, upgrading from Windows XP to Windows Vista (or Windows 7, or Windows 8) was a cost, and a cost with no apparent benefit. Yes, some individuals upgraded, but the majority kept the operating system that came with their PC.

Large organizations stayed with Windows XP, but to avoid risk. Also seeing no immediate benefit from a new version of an operating system (and recognizing the risks of programs or device drivers failing) those organizations chose to stay with Windows XP.

This difference in behavior is recognized by vendors. Microsoft has introduced two "tracks" for updates: the consumer track and the business track. Consumers get updates immediately; large organizations can defer updates. Linux provides Red Hat and Ubuntu also make available two tracks: Red Hat with (free) Fedora for consumers and (paid for) RHEL for organizations, Ubuntu with "regular" versions and "long term support" versions.

Notably, Apple does not have two tracks. They revise their hardware and software annually, if not more frequently. They are focussed on the consumer, not the enterprise.

Also notably, Android has only one track -- for consumers.

With Apple and Android constantly revising hardware and software, the only player with a long-term mobile strategy may be Microsoft. We have insufficient experience with Microsoft hardware to decide.

Viewing the market as split between price-sensitive consumers and risk-averse large organizations, I expect that hardware and software will also split. Consumer software will remain free or low-priced, and move to the mobile/cloud environment -- and away from PCs. Enterprise software will stay on PCs (and servers) with little movement onto mobile devices.

Which is not to say that mobile devices won't been seen in large organizations. They will be, but they will be truly personal devices. Individuals will use them to check e-mail, confirm appointments, and surf the web during boring meetings. Enterprise work, however, will remain on PCs and on PC-like devices, including lightweight laptops such as Chromebooks and Cloudbooks.

Monday, August 24, 2015

The file format wars are over -- and text won

When I first started with computers, files were simple things. Most of them were source code, and a few of them were executables. The source code (BASIC, FORTRAN, and assembly) were all plain text files. The executables were in binary, since they contained machine instructions.

That simple world changed with the PC revolution and the plethora of applications that it brought. Wordstar used a format that was almost text, with ASCII characters and the end of each word marked with a regular character with its 8th bit set. Lotus 1-2-3 used a special file format for its worksheets. dBase II (and dBase III, and dBase IV) used a special format for its data.

There was a "carboniferous explosion" of binary formats. Each and every application had its own format. Binary formatted data was smaller to store, easier to parse, and somewhat proprietary. The last was important for the commercial market; once a customer had lots of data locked in a proprietary format they were unwilling to change to a competitor's product.

The conversion from DOS to Windows changed little. Applications kept their proprietary, binary formats.

Yet recently (that is, with the rise of web services and mobile computing) binary formats have declined. The new favorites are text-based formats: XML, JSON, and YAML.

I have seen no new proprietary, binary format lately. New formats have been one of the text-based formats. Even Microsoft has changed its Office applications (Word, Excel, Powerpoint, and others) to use an XML-based set of files.

This is a big change. Why did it happen?

I can think of several reasons:

First is the existence of the formats. In the "age of binary formats", a binary format was how one stored data. Everyone did it.

Second is the abundance of storage. With limited storage space, a binary format is smaller and a better fit. With today's available storage that pressure does not exist.

Third is the availability of libraries to parse and construct the text formats. We can easily read and write XML (or JSON, or YAML) with commonly-available, tested, working libraries. A proprietary format requires a new (untested) library.

Fourth is the pressure of legislation. Some countries (and some large companies) have mandated the use of open formats, to prevent the lock-in of proprietary data formats.

All of these are good reasons, yet I think there is another factor.

In the past, a file format served the application program. In the data processing world, our mindsets considered applications to "own" the data, with files being nothing more than a convenient holding space to be used when the application was not running (or when it was processing data from a different file). Programs did not share data -- or on the rare occasions when they did, it was through databases or plain text files.

Today, our mobile device apps share data with cloud-based systems. The cloud-based systems are collections of independent applications performing coordinated work. The nature of mobile/cloud is to share data from one application to another. This sharing between programs (sometimes written in different languages) is easier with standard formats and difficult with proprietary formats.

New systems will be developed with open (text) formats for storage and exchange. That means that our existing systems, the dinosaurs of the processing world with their proprietary formats, will fall out of favor.

I don't expect them to vanish completely. They work, which is an important virtue. Replacing them with a new system (or simply modifying them to use text formats) would be expensive with little apparent return on investment. Yet continuing to use them implies that some amount of data (a significant amount) will be locked within proprietary non-text formats.

Expect calls for people with skills in these file formats.

* * * * *

The recent supreme court decision about Java's API (in which the court decided not to hear an appeal) means that for now APIs and file formats can be considered intellectual property. It may be difficult to reverse-engineer the formats for old systems without the expressed permission of the vendor. (And if the vendor is out of business or sold to a larger company, it may be very difficult to obtain such permission.)

Companies may want to evaluate the risk of their data formats.

Wednesday, August 12, 2015

Ten percent better is not enough

The mobile operating system market is ruled by Apple's iOS and Google's Android. Other contenders are striving for market share, and they face quite the challenge.

The contenders are Microsoft's Windows Mobile (or whatever they are calling it now), Mozilla's Firefox OS, Cyanogen's operating system, and Samsung and Intel's Tizen. (One could add Blackberry to the list.)

The challenge that all of these contenders face is one of value. They must deliver a product that is superior to the existing iOS and Android products. Delivering a product of lower value is meaningless, and matching value is a losing proposition due to the cost of switching.

It's not enough to simply be a little bit better than the established leaders. To win the hearts of users (a significant number of users), their product must be clearly better. The benefits of the product must be obvious and large enough to offset the cost of changing from the existing.

Apple did not have this problem. When they introduced the iPhone, there was no competition. The existing phones provided less functionality.

Google did have this problem, as it competed with the (then) existing iPhone. Google's advantage was an open platform -- or so it advertised. (Also, Google was not Apple -- or Microsoft -- which worked to its advantage.

Today's contenders must provide something better than Apple's iOS and Google's Android. The advantage must be clear, and it must be greater than a small increase.

One would think that Microsoft has an advantage, in that they can leverage the existing corporate infrastructure of Windows hardware. Yet this is not the case, as phones and tablets remain personal devices -- corporations have not figured out how to use them. (Some organizations have started using tablets and phones, but their use tends to be limited to specific applications.)

Any mobile OS marketer, to gain ground against the current leaders, will have to provide something much better than the current products, as judged by individuals.