• No results found

One Linux Distro?

In document After The Software Wars (Page 193-197)

A free society is about voluntary communities cooperating through the division of labor.

—John Stossel

One of the big questions in the free software community is whether there should be just one Linux distribution tasked with tak-ing on Windows. In theory, Windows provided a standard platform for developers. Windows '95 had a look and feel little different from Windows NT, and the differences were minor from a developer's per-spective, and were mostly bugs.10

One distribution is an efficiency gain over many distributions, but the cost isn't as high with Linux. Most free software component's greatest dependency is on the kernel, compiler and other low-level tools, and these are the same across Linux distributions.11

9 There is a gaming team that recently decided to do all their work in Debian and just let the changes flow downstream. If all patches flowed in both directions, as everybody claims to want, and Debian and Ubuntu shipped on the same day, how would someone decide which distro to install?

10 The Unicode support in the US release of Windows '95 was minimal and buggy.

Every non-trivial Windows application queries the version of the operating system to do different behavior.

11 If a distribution finds a bug in the Linux kernel, it will put a bug into the bug data-base. The fix usually goes into the next release of the software, but a distro can backport into their current version. The difference between the kernel in different distros is the version and the set of backports, which are usually not noticeable to applications.

The job of installing a software component and working through any compatibility issues is the responsibility of the Linux distribu-tion. Because the cost for each additional distro isn't paid for by the component developer, it doesn't slow progress. In fact, the cost of today's many Linux distributions is relatively small in the grand scheme of this million-man movement.

The best way to increase efficiency is to increase the amount of code sharing between the distros. A good example of such an effort is FreeDesktop.org:

FreeDesktop.org Projects

Avahi is a multicast dns network service discovery library

cairo is a vector graphics library with cross-device output support.

CJK-Unifonts open source CJK unicode truetype fonts with additional support for Minnan and Hakka languages.

Clipart is an open source clipart repository.

D-Bus is a message bus system.

Desktop VFS is a Virtual File System aimed at message loop (gui) applications.

desktop-file-utils contains command line utilities for working with desktop entries and .menu files DRI is a framework for allowing direct access to graphics hardware in a safe and efficient manner.

Enchant is a new cross-platform abstract layer to spellchecking.

Enlightenment is a desktop environment and application toolkit suite with lots of pretty pixels.

Eventuality is an "application automation meets cron"

type DBUS based framework for creating a means to schedule arbitrary "actions" performed by conforming apps.

Fontconfig is a library for configuring and customizing font access.

GNU FriBidi is a library implementing the Unicode Bidirectional Algorithm and Arabic Joining/Shaping.

Galago is a desktop-neutral presence system.

glitz is an OpenGL 2D graphics library and a backend for gl output in cairo.

GStreamer is a streaming media framework.

GTK-Qt Theme Engine is a project to unify the GTK and Qt theming engines.

HAL is a specification and an implementation of a hardware abstraction layer.

HarfBuzz is the common OpenType Layout engine shared by Pango, Qt, and possibly others.

Hieroglyph is a PostScript rendering library.

icon-slicer is a utility for generating icon themes and libXcursor cursor themes.

icon-theme contains the standard and also references the default icon theme called hicolor.

IMBUS is a common tier-1 architecture of IM frameworks for connecting input method engine containers and client application libraries.

immodule for Qt is a modular, extensible input method subsystem for Qt.

IPCF is an inter-personal communication framework.

LDTP - Linux Desktop Testing Project

libburn is an open source library suite for reading, mastering and writing optical discs.

libmimetype is a simple implementation accessing the shared-mime-database included in PCManFM, a lightweight graphical file manager featuring speed, low resource usage, and tabbed-browsing. This small GPL'd lib can be used for mime-type handling as a lightweight replacement of xdgmime.

liboil is a library that makes it easier to develop and maintain code written for MMX/SSE/Altivec extensions.

libopenraw is an open source library for Camera RAW file decoding and processing.

libspectre is a small library for rendering Postscript documents.

Mesa The Mesa 3D Graphics Library, an implementation of OpenGL.

OpenSync is a project to create a standardized synchronization framework.

Oyranos is a cross platform colour management system.

poppler is a PDF rendering library, forked from xpdf.

Portland provides a set of high level desktop-integration APIs

SCIM Smart Common Input Method platform, is a platform to develop input method services.

Scratchbox2 is a cross-compilation tool.

shared-mime-info is a package containing a large number of common MIME types, created by converting the existing KDE and GNOME databases to the new format and merging them together, and software for updating the database based on the share-mime-info specification.

startup-notification is a sample implementation of startup notification (telling the desktop environment when an app is done starting up).

Tracker is a highly memory efficient file indexer and metadata harvester.

uim is a library to support input many languages.

UTF-8 is a project to document and evangelize the use of UTF-8 encodings for open source projects.

unicode-translation aims to translate Unicode character names and other data into many languages.

vaAPI provides a decode only video acceleration API for all video formats. Currently in proposal stage.

waimea aims to be a standards compliant window manager for the X Window System making use of the cairo graphics library for all rendering.

xdg-utils is a set of command line utilities to simplify integration with a Free Desktop. It has simple functions for creating menus, opening files, setting mime types, and so on. It is part of the Portland project.

xdg-user-dirs is a tool to handle well known directories in the users homedir

Xft is a library for client-side rendering of fonts.

xfullscreen is a useful module for applications or window managers supporting fullscreen modes.

Xgl is an X server architecture layered on top of OpenGL.

Xorg is the XOrg Foundation's Public Implementation of the X Window System.

xkeyboard-config is a central project for keyboard configuration.

xprint is the X11 printing system.

xsettings is a reference implementation.

X Testing provides information on various software for testing X Servers and Clients.

X Window information is a window information utility for developers of applications, toolkits, and window managers.

When Linux standardizes font rasterizers and such, unification automatically occurs.

If we moved towards a truly universal PC operating system, what would happen to the long tail of Linux distributions? Eventually, in a biological system, the biggest and best gain momentum and squeeze out the others. However, we are still in the early years of Linux, and so the natural selection process hasn't yet happened. Today every

Linux distribution team is growing — when you have a worldwide market of only 3%, it is a target-rich environment. In addition, you can have subsets and other derivatives.

Apple

After Woz hooked his haywire rig up to the living-room TV, he turned it on, and there on the screen I saw a crude Breakout game in full color! Now I was really amazed. This was much better than the crude color graphics from the Cromemco Daz-zler. ... “How do you like that?” said Jobs, smiling. “We're going to dump the Apple I and only work on the Apple II.” “Steve,” I said, “if you do that you will never sell another computer. You promised BASIC for the Apple I, and most dealers haven't sold the boards they bought from you. If you come out with an improved Model II they will be stuck. Put it on the back burner until you deliver on your promises.”

—Stan Velt, former Editor-in-chief, Computer Shopper

Apple's iPod and iPhone may be sexy and profitable, but these small devices are specialized in function, so there isn't a lot to say about them. An iPod is busy when playing music, whereas when your computer plays music, it uses less than 1% of its computing power, which is not even noticeable.

For most of Apple's existence, they never really got the idea of the relationship between market share and a developer community. For example, Macs have historically not been allowed in enterprises because no one added the necessary features and applications — because it never got the requisite market share to make anyone want to bother.

Microsoft understood the virtuous cycle between users and devel-opers, and knew that making it easy to build applications would make Microsoft's ecosystems successful. Bill Gates brags that Microsoft has ten times as many partners as Apple, and tools like Visual Basic and FrontPage were important reasons why.

This internal focus that has limited the Mac's potential market-share is now playing itself out with their new devices. Symptoms of this mindset are noticeable in the most basic scenarios: you cannot drag and drop music on and off an iPod, as you can with a digital camera. Even if you could copy over your files, unless it is in one of the few formats Apple can be bothered to support, you would still not be able to play it.

While Moore's law will push these new devices further up the computing value chain, it isn't clear Steve Jobs understands the value of having a developer community extend his platforms

because he doesn't see past the potential complexity it creates. In a New York Times interview, Jobs said he would not allow third-party technology contributions to his new iPhone because he doesn't want the telephone network brought down by “rogue applications”.12

Apple later reversed-course and now there are now third-party apps available for the iPhone, and Apple even runs ads touting a capability they initially shunned, but Apple's mindset of ignoring the outside world is still embedded into its culture. When the iPhone software development kit (SDK) was launched, third-party iPhone developers were: “legally banned from sharing programming tips, discussing code or asking questions of one another in forums or over e-mail.” Note that an SDK only contains the public information necessary for a developer to write an app, so why they would be so restrictive is inexplicable.

After lots of complaints by developers who were unable to get their code working, and yet were not able to talk to each other, Apple in October 2008 reversed course here as well, so maybe they are slowly learning that not all good ideas originate in Cupertino.

One of the reasons Microsoft has won so many battles is that it knows the key to success is to just get early market share and let Metcalfe's law take over, with the ensuing profits. Steve Jobs is pre-sumably satisfied with Macintosh's 3.5% worldwide marketshare and the state of the iPod today. It is this attitude that ultimately will ensure their failure, I believe. Apple's motto for a time was “Think Different” but a more apt one might be “Think Small”.

In document After The Software Wars (Page 193-197)