Open Source Initiative (OSI) Logo

The idea behind open source software is a simple one. Developers decide to make the source code for their software available for free, for everyone to use, modify and redistribute. However, not all open source licenses force redistribution. Many projects today symbolically adopt a banner of open source while their primary motivation is product monetization over building community. Some go as far as to making their products difficult to use without paid support or even removing critical features and placing them in an enterprise version. We’re going to take a look at commercial/open business models implemented by companies like Alfresco, TypeSafe, Apple, Google and others. We’ll examine how they fit in with various open source philosophies of the past and where we are likely to go in the future.

Enterprise Edition: The Return of Demo-ware

Recently Lightbend (formerly Typesafe) decided to remove support for Microsoft SQL from Slick, their open source database abstraction library, and place it into their commercial closed-source version. This has lead to the fork known as FreeSlick which tries to build upon the removed drives and further maintain them with test cases. Lightbend’s commercial nature and focus on keeping Scala running on the Java Virtual Machine has led to forks of the Scala toolchain in the past.

Alfresco Community Edition, an open source document management system, once had the components within it to support clustering. Although it was never officially supported in the Community Edition, it was available and there were many guides showing how to enable it. Starting with 4.2a, all of this support was completely removed and placed entirely in the subscription based Enterprise Edition. At the time, I was working for an open source company that was considering back-porting cluster support in the form of an open source plugin.

Companies like TypeSafe, Alfresco and Magento (an e-commerce system) operate on an open source model that provides both a community and an enterprise version. They often benefit from contributions to their community editions in the forms of extensions and plugins made by their user base, while still maintaining a proprietary commercial version with more extensive feature sets.

Apple and Google: A Clash of Licenses

Let’s look at two of the largest players, Apple and Google. Apple’s OS X operating system made huge waves on its release in 2002. It was a complete architectural departure from OS 9 and it had an open source base: Darwin BSD. People mistakenly equivocated Mac with being Linux based or Linux powered. In reality, it had a very loose UNIX base on which they added a lot of proprietary non-UNIX subsystems. Graphics are not rendered on an X Server, but instead on their proprietary Aqua subsystem (although an X11 server could be run on top of Aqua to run traditional *NIX application). Although attempts were made at various points to add a more modern file system to OS X such as ZFS, to date Apple still uses the ancient HFS+ file system; a file system blogger Jody Ribton has argued is so old and proprietary that’s it’s dangerous to use for serious data integrity applications.

The use of the Berkley Standard Distribution (BSD) License is also a significant choice for Apple. The BSD license is much more permissive and allows for commercial reuse without requiring release of the modified source code. The Free Software Foundation’s (FSF) alternative to the BSD license was the GNU General Public License (GPL). The GPL, like the BSD, allowed code to be modified and used for commercial ventures, but it required derivatives of the original code to be released back to the community. By using software that is licensed as BSD or one of the BSD derivatives, Apple doesn’t have to release the source of any software it modifies back to the original author or community.

Over the course of the last several releases of OS X, Apple has slowly been removing GPL software. Where Mac OS 10.5 contained 47 GPL licensed packages, 10.10 contains only 18! Even within those 18 packages, the shipped version of bash is 3.2 from 2006. The current version is 4.2.10, but 3.2 was the last version shipped under GPL version 2. GPL version 3 has two major clauses that would hurt Apple. The first prohibits patent lawsuits for people who use the GPLv3 software you produce and ship. The second prevents locking down hardware to prevent running custom software.

On the flip side, Google’s Android platform is actually running a Linux kernel as its base. Like Mac OS X, Android does a lot of things differently from the standard Linux model and uses its own subsystems for startup, hardware abstraction, graphical display and device management. Google didn’t actually create Android. Like many of their other products, they purchased the company that created it and incorporated it into their ecosystem. Google has maintained an open source version of Android, known as the Android Open Source Project (AOSP). All handset providers use AOSP as they base, modify it to their needs and add their own proprietary, often not open source, applications.

When signing an agreement with Google, manufactures can distribute GApps with their devices, the basic set of Google applications and services including the Google Play Store. (Amazon, doesn’t provide Google apps on their Android devices, instead utilizing their own app store and services). Over the course of the past few years, Google has stopped updating most of the AOSP/open source versions of their applications. The search, calendar, music and camera apps are just a couple of examples where the AOSP versions were practically frozen with new features only being placed in the proprietary Google versions of each respective app. Even though the Google apps are free, they’re closed source and are dependent on installing the proprietary Google Services and Play Store.

As previously mentioned, Amazon has its own app store for its line of Kindle Fire devices. App writers that need to depend on either Google or Amazon services often need to build multiple versions of their apps for the various stores. Furthermore, companies that are allowed to distribute Google Apps enter into the Open Handset Alliance (OHA), a strict license agreement with Google banning those companies from producing anything Google considers non-compatible. This means that OHA companies can never produce an Amazon-only device, nor can they add support for alternatives to Google services as Motorola and Samsung discovered when they attempted to use Skyhook for location services over Google. Skyhook sued Google in 2010 and, as of 2014, has yet to go to trial.

Google apps and the OHA come with locked in, anti-competitive stipulations that keeps a useful Android OS within Google’s grips. It takes a large players, like Amazon, to even attempt to offer an alternative based on the same underlying open source base. Samsung often releases their own versions of standard apps, along with their own app store, alongside the Google apps. It’s what some believe is a half-and-half strategy to build up their own app market so that they may one day be able to break away from the Google ecosystem and OHA if necessary.

This type of situation involving lock-ins to proprietary commercial software was one of the principal driving forces for creating licenses like the GNU GPL that require derivative works to have an equal license. However even with with such protections, Google has found a way to build a closed-source proprietary structure on top of GPL software, using agreements over the means of app distribution to build a closed software ecosystem. Apple takes the alternative route of avoiding anything with a license that could limit the proprietary nature of its software and its intellectual property rights. It has gone so far as to rewrite major components itself to distance itself from GNU GPLv3 code.

Microsoft

Windoze 2495 — by Chris Pirazzi

In the early 2000s, Microsoft was the big evil enemy. They were facing anti-trust litigation from countries all over the world. They locked in their OEMs from selling dual-boot systems, similar to the situation with Google’s OHA today. As a result, Be Inc was prevented from being able to sell dual-boot BeOS/Windows systems. The one thing they couldn’t compete against was Linux. Many Linux distributions were non-commercial and open source, leaving no one to directly compete against with or sue. Many developers and people in tech took up the Linux torch in almost a religious devotion as the alternative to the Windows desktop monopoly. So Microsoft took up arms against companies who made commercial offerings using Linux.

In 2003, SCO sued several Linux companies for violating their intellectual property rights calming that part of the Linux kernel used SCO UNIX source code. It was discovered that SCO was getting quite a bit of funding from Microsoft, leading some to believe that Microsoft was pushing the SCO lawsuits against Linux as Microsoft itself was also suing various open source companies.

Fast forward a few years later and Microsoft is no longer on top of the world. Their share of the web browser market was being lost to Firefox, long before Google brought the Chrome browser onto the scene. Even though Microsoft pioneered the ability to view satellite images of the entire planet with Terraserver, Google actually made this concept useful to individuals with their Google Maps software and the purchase of Google Earth. With the lack luster uptakes of Windows Vista and Windows 8, Microsoft’s share of the consumer PC market has lost ground to Apple and Linux. Their mobile offering has such a low uptake that Mint, American Airlines, Pinterest, Bank of America, NBC and many other high profile web presences have either stopped updating or completely removed their Windows Mobile apps.

Microsoft has recently done a compile turnaround when it comes to open source. In 2014, they open sourced their entire .NET runtime. This followed with open sourcing the Roslyn .NET compiler and Visual Studio. Partnerships with both Red Hat and Cyanogen are further evidence that Microsoft is making drastic changes to try to maintain footing in today’s market. It’s a far cry from an earlier time when Bill Gates wrote an open letter to the Hobbyists in Homebrew Club 1976 accusing them of software theft for making copies of Microsoft’s BASIC programming language.

Where Microsoft once tried to stifle the growth of open source alternatives, now they must embrace it to stay relevant in a market where they are losing shares rapidly to competitors. Keep in mind that their largest competitors are moving the other direction entirely. As talked about previously, Google and Apple may have based their products on open source software originally, but now they are slowly moving to keep the proprietary core functionality of central infrastructures and software ecosystems in closed, contractually managed services.

The Hands of Commercial and Open Source

There is a considerable amount of ideology around open source, and the idea that code should be free. In the late 90s and early 2000s, there was this great feeling that open source was taking on Microsoft and a Windows dominated landscape. However even during this time, many open source projects had significant commercial funding.

In 2001, IBM’s dedication to Linux resulted in an attempt at a viral Peace, Love, Linux chalk art campaign. The marketing gimmick resulted in a $100,000 graffiti fine from the city of San Fransisco when they discovered the chalk didn’t wash away for months. The Linux kernel gets major contributions from commercial entities such as Red Hat, IBM, Intel and many others, allowing them to have people who work and are paid full time on Kernel development. In 2008, the Mozilla Foundation earned over 88% of its revenues from Google, mostly via search related royalties as Google was the default search engine at the time.

I don’t mean to downplay the community around open source. There is still plenty of academic and volunteer development going on; that is software written by developers in their spare time or at universities. Although monetizing projects has helped many of them grow or stay alive, the trend to having both open source and commercial interests has led to contention in many communities.

“Community made open source software needs people to be able to take out what they’ve put in. Ubuntu’s licenses and policies enforce this. However for the last three years Ubuntu’s main sponsor Canonical has had a policy contrary to this and after much effort to try to rectify this it’s clear that isn’t going to happen. The Ubuntu leadership seems compliant with this so I find myself unable to continue helping a project that won’t obey its own community rules and I need to move on.” -Jonathan Riddell, former release manager for Kubuntu

When Gitlab responded to their community with improvement to their software, certain features were only present in their enterprise edition. The code for their enterprise edition was visible, but not open (it requires a license to run). In particular, developers for the Video Lan Client (VLC) media player refused to take advantage of the enterprise edition, not wanting to use any proprietary/non-free software.

A number of companies, such as Atlassian and JetBrains provide free licenses to open source developers for their commercial products. Much of their software is based on open source libraries and tools, so it can be seen as giving back to the community. However, the free licenses they offer are still for closed software that are build upon open source technologies.

In 2015, Drew DeVault, a developer and technology blogger, encouraged developers to stop using Slack for open source projects due to its closed nature. Even with its limitations, the Internet Relay Chat (IRC) protocol is open and well established and helps facilitate open communication between developers and their communities. There are also several newer open protocols such as IRCv3 and XMPP which attempt to bridge the gap in chat systems using open standards as well.

The conflicts between free and non-free software can get pretty contentions. Canonical maintains Ubuntu while marking proprietary products like Landscape. Linux and its founder, Torvalds, are steadily in the camp on the other side of Stallman and the FSF, keeping the Linux Kernel in the GPLv2 license with no intent to upgrade to GPLv3. Stallman has openly criticized Clang/LLVM for not truly understanding the open source landscape and creating software that advances proprietary software, while authors of Clang claim they cannot build useful tools with GCC. The rabbit hole continues as far as you want to go.

“Mark has repeatedly asserted that attempts to raise this issue are mere [Fear Uncertainty, Doubt], but he won’t answer you if you ask him direct questions about this policy and will insist that it’s necessary to protect Ubuntu’s brand. The reality is that if Debian had had an identical policy in 2004, Ubuntu wouldn’t exist. The effort required to strip all Debian trademarks from the source packages would have been immense, and this would have had to be repeated for every release. While this policy is in place, nobody’s going to be able to take Ubuntu and build something better. It’s grotesquely hypocritical, especially when the Ubuntu website still talks about their belief that people should be able to distribute modifications without licensing fees.” -Matthew Garrett

The Philosophy of Open Source

The GNU General Public License grew out of a philosophy that software should be free, and derivatives of that software should be free as well. It was a contrast to the industry standard of commercial software, shareware, demoware and crippleware at the time. But today there are many products that pay lip services to the open source concepts; having both open and enterprise versions very similar to the demoware/shareware concepts of the past. Some use GNU GPL software as a base for an entirely commercial ecosystem. The original philosophies behind the Free Software Foundation have been commandeered by those who seek to profit from open source while returning only marginal or symbolic contributions to the community as they enter patent lawsuit wars amongst each others.

There have been significant contributions to underlying technology stacks used to build many of the compiling, web, testing and data storage frameworks by commercial entities. It’s important to note that many of these contributions have been released on permissive licenses that are more accessible for commercial use. Rather than embrace the GNU GPL, today most libraries and programming languages are released under licenses such as MIT, Apache, BSD and others. Even as I was writing this article, Android’s Native Development Kit (NDK) just changed their default compiler from the GNU C Compiler (GCC) to Clang, noting in their changelog that GCC is now deprecated. Clang was contributed to by Apple, Microsoft, Google, ARM, Sony and Intel. It is, of course, under a permissive license known as the University of Illinois NSCA License.

What we’re essentially seeing more of in the industry today, is open sourcing central technologies and reusable components without open sourcing the software it produces. This can help startups and small developers to create large, scalable products. However, those products are often locked into the ecosystems of the larger players. It’s beneficial for Facebook, Twitter and Amazon to help others create applications that feed people into their user base, because it’s more likely those products would depend on connections to the big networks rather than compete with them.

Even thought there is considerably more open source software deployed in the wild today compared to the previous decade, making its way into everything from server clusters to consumer electronics, it is a far departure from the world originally envisioned by some of the most vocal open source advocates and anti-commercial zealots of the late 1990s. The original idea behind the Free Software Foundation’s concept of open source was an ecosystem where every new development resulted in more open and free code. We’re talking about people who truly believed in getting away from commercial software entirely. There were people who felt that one day, Linux desktops could replace Windows and even high end tools like Photoshop and Final Cut would have great open source replacements.

This never happened. Although Linux, FreeBSD and other open source operating systems are great for developers, we never truly had the year of the Linux desktop. No matter how many people try to claim that Gimp is just as good as Photoshop, that any lack of feature is simply not being familiar with Gimp’s interface, is either in a state of denial or they haven’t had to truly do any intense graphics related work other than cropping images or adjusting levels. Today, Illustrator is still far easier to learn than Inkscape, and LibreOffice Writer, while an excellent program, still lacks many of the advanced features of Microsoft Word. Most video editing applications for Linux suffer continual crashes, leaving Blender, a 3D modeling tool not originally designed for video editing, to be the only stable video editing platform. Although Steam and Humble Bundle have brought a plethora of independent and main stream games to Linux, those games are closed source, commercial and, in the case of Steam, under Digital Rights Management (DRM).

Rather that the computer utopia of all software being free and hardware being what people pay for, much of the software we use today is being moved out of the realm of pay-once desktop software, and into subscription based offerings. Where one could once simply keep using an older version of a piece of software and not pay for an upgrade if it wasn’t necessary, now people must pay continual subscriptions for software that can never be owned, only rented, for their entire lives.

Although companies like IntelliJ provide fall-back licenses to allow people to use previous version if they stop subscribing, other companies like Adobe will simply cut off access to the current product, even if you’ve been a subscriber for years. Furthermore, a lot of software is moving entirely to the web. These web applications are often based on open source components while creating closed, wall-gardened systems. People who then develop applications based against those web services, say using the Dropbox or Facebook public APIs, are now locked in to those systems.

Open source software is alive and well, backing most of the systems we take for granted every day. Communities like Github have paved the way for more open collaboration and increased contributions. More software today is branded with the marketing gimmick of being moved “into the cloud”, and into subscription models were people perpetually rent software rather than purchase it. Many of the websites we use are walled gardens of free services that are not open, and which make it intentionally difficult to move your data should you become unsatisfied with the service provider. Much of the opens source software being released today is backend technology or developer tools. We are still a far cry away from having the day to day software we use being truly free, not only in cost, but being able to modify it to our needs and run it anywhere we want.