III. Report – Open source nowadays (’13)
View short presentation about trend report here
What is open source?
Software available for everyone, programs and applications that anyone can edit, amateurs and professionals, rich and poor – each one of them has access to publically available source code. Together, we create a software that is free and functional. That is all what open source is about. This beautiful vision formed even before birth of the internet and evolved into one of the biggest technological trends in the world. Along with rise of internet availability – open source took over the world, embraced the web and inspired millions of developers.
The primary idea of sharing technical information freely formed in early 90’s. Surprisingly, it was the car industry, which began free patents sharing. Cross-licensing agreement allowed producers (incl. Henry Ford) to exchange freely valuable information about car parts and engines with other manufacturers.
Open source drew its strength from thousands of users that do not have to be professional developers in order to create advanced and universal software. Quantity was crucial – many people and each one of them contributing a little. In addition, all this was available for fee! (excl. Electricity and internet provider charges). So-called project community was able to create, test, use, discuss and refine their open source project by breaking it down into smaller parts:
- providing feedback
- helping new users
- recommending the project to others
- testing and reporting or fixing bugs
- requesting new features
- writing and updating software
- creating artwork
- writing or updating documentation
Such structure helped keeping the open source project active and therefore up to date with any newest internet trends.
III. Open source now
During past year, open source software ruled the internet and mobile industry. Projects like Linux, Firefox and Android took over servers, PCs and mobile phones. The broad adoption across all industries, noted in figure 1, has led to increased investments. In 2012, open source venture investment jumped 80 percent over the prior year, with $553M invested compared to $307M in 2011.
Not only individuals and communities use open source applications but also manufacturers have taken a big interest in open source. In fact, OSS became an investment target for many conglomerates. In September 2013, Google announced one billion milestone; that is reaching 1.000 million active Android devices in the world. Google also stated that each day this number increases by one million.
More than a software
Besides providing a free software, open source projects started involving donations for charities, founding technology products, promoting talented developers and supporting many companies. Those topics will be developed in further chapters.
IV. Open source trend
The availability of internet connection and internet speed increases rapidly. We enter time of Google Fiber – internet connection that is hundred times faster than regular one. In Holland, so-called (glasvezel) equips each building with fast cable internet. Speed keeps up with availability, nowadays there are free wi-fi spots in the train, in the bus, at the restaurants etc. That is the main driving gear for open source. Editing or viewing open source software is available anywhere, everywhere.
Open source products are universal, in other words they are suitable for wide range of devices depending on language, location, machine performance, personal preferences and so on. It is an effect achieved by developers living on different sides of globe, cooperating with each other, trying to adjust the code in a way that they think is best for surrounding them community.
It is free!
Let us face the fact that most of the proprietary software is very expensive if not overpriced. Of course, we could conclude that the price we pay assures perfectly working product, complete support and maybe other additional benefits but that’s not always needed. Students, individuals or even small companies do not necessarily need fully licensed advanced software and what is more, they don’t have money for it. Therefore, open source software is the best solution. Open source software gives their users a choice; they can use a full or basic version free and if they like it, they can donate, sign in a membership, contribute or help developing.
Constant improvement of open source software makes it available for very wide range of platforms and devices. Therefore, it is easily accessible for anyone in the world.
The fact that source code is fully transparent makes it possible to modify it according to own needs and personalize it for own comfort use.
Finally yet importantly, it is the idea of sharing knowledge free that stroke the internet community. Vision of free exchange of information through World Wide Web provided unlimited opportunities for users in whole world.
Open source licenses
Open Source Initiative (OSI) is the main validation point for any kind of open source project. It is a public benefit and non-profit corporation which goal is to educate about open source products and create realistic connections between various projects. Open source project has to fulfill main conditions of Open Source Definition in order to obtain specific licenses. There is many widely used licenses; each one of them protects different aspects of open source. Trying to mention even the most important ones would take a lot of time, besides this, all licenses are fully available at OSI website. What is important is that those licenses are there for any open source project to be freely used, modified and shared.
How does the license apply to specific open source software? I will explain it on Android example:
Lately, users started questioning whether Android is actually a fully open source software? Well, verifying Androids license choices can answer this question.
First, it is important to know that Android divides into two main departments: Android Open Source Project (AOSP) and Google Android and that Android operates within two main licenses: Apache Software License (ASL) 2.0 and General Public License v2.
The difference between those two might be very settle but crucial for Android development. Most of the user-space software infrastructure is built under permissive ASL, which allows integrating closed-source proprietary products. Underlying Linux Kernel is licensed with “copyleft” GPL, which not only requires distributing fully free, transparent software source but also demands that any following modifications and implementations to it are free as well.
Android needed to include Apache 2.0 license in order to be able to include some proprietary parts that are crucial for making the whole software work. Most of “closed” parts are drivers and components that allow the software to boot properly on thousands of different devices (ex. touch screen drivers). In a place where open source software becomes so big, that it eventually clashes with worldwide conglomerates there have to be compromises. For example, Samsung indeed kept some secrets from their users but in general, it invested billions of Euros into open source Android development.
Creative commons licenses
Creative commons licenses (CC) are somewhere in between copyright and free source licensing. The main goal of CC license is to increase available sources in education, culture and science while protecting creators from commercial abuse. Licenses are much simpler and more suitable for small projects or individuals. Creative commons license enables creators to share their products while preserving some of their copyrights. In this way, developer can share his work and still stay under protection against commercial abuse. Of course, it is up to the creator of work to decide which rights he wants to preserve for his product. Obtaining desired CC licenses is very simple and quick. The procedure does not require much work and its popularity increases every year. It is worth mentioning that Dutch government launched their ministry website rijksoverheid.nl under CC licenses, another remarkable example is Wikipedia.
VI. Interesting facts
Software forks – evolution tree of open source
Open source empowers the community to take source code of certain applications and to use it in new direction. In other words, open source projects very often become a foundation for new open source software. Those are so-called software forks. Most of popular and successful open source applications evolved from older applications. It is important to know that Linux is a foundation for many applications; however, described software forks are the ones that followed right after Linux.
Ubuntu is known as the most popular Linux distribution that used to be a temporary fork of Debian. It was more of an update version of Debian but since October 2004 – Ubuntu operates as a separate operating system.
Firefox is the third-largest web browser used in the world. It was initially an alternative to Mozilla Application Suite. First public versions appeared in September 2002 and very quickly worked its way to the top becoming the biggest project of Mozilla Corporation.
Developers of Mambo faced some disagreements with their managers about future usage of the software. Therefore, some of the main creators decided to fork Joomla. Joomla, since August 2005, functions as a very reliable open source Content Management System with its own rights.
There are other interesting examples like Webkit forking from KHTML and Drizzle forking from MySQL. Sometimes it is just a new version of software that outmatches the company’s’ expectations or it is just a side branch that eventually overrules the main software. Many forks are a consequence of personality clashes or ideological disagreements among developers like OpenBSD forking from NetBSD. Nevertheless, it is the ability to use someone else’s code and opportunity to develop it in an own manner that distinguishes open source projects evolvement from any other software.
“Vim the editor” is an advanced, 21 years old text editor that is a more complex version of “Vi” and is distributed with most UNIX systems. It takes only six kilobytes and works under General Public License (GPL), which means that the editor itself is free and any upgrades or new versions of it must be free as well. It is a very smart and compact editor, which does not apply WSIWYG working method and it has been entirely written by a Dutch programmer Bram Moolenaar. A part that distinguishes Vim from any other text editor is its charity activity. I have already mentioned that one of the ways to contribute to open source software is by donating, however most of the time such donations serve better development of a software or provides developers some sort of compensation for their work. In Vims case, so-called sponsoring is actually a charity that supports needy children in Uganda. In other words, anything that has been donated to Vim text editor is sent to the ICCF Holland foundation and from there 99% of the money is be used to provide educational and medical resources for orphans that live in the South of Uganda.
As an open source software, Vim can be extensively customized and personalized according to users’ wishes. Besides this, it is available for very wide range of operating systems like Mac OS, Apple OS X, iOS, Microsoft Windows, Linux, IBM OS, Android and many more.
Vim is a combination of great vision that comes with open source software and a wonderful way to help less developed countries. It is a great idea that should be promoted among not only open source communities but also proprietary projects. Unfortunately, there are not many examples that followed Brams vision. Similar charity promotes Bill and Melinda Gates Foundation. Bill Gates and Microsoft donate billions of dollars to foundations all around the world; among the most popular charities there are global health program, global development program and United states Program.
Kids 8+ as programmers
Open source developers try to include children into the programming world at younger and younger age. Software that they build follows the rule of learning by playing and is available online, free of charge.
Application for the youngest “Alice” is created for children in age 8 or higher. It is a 3D programming environment, which role is to encourage children to learn computational thinking, problem solving and computer programing. By playing interactive games and making animations, kids learn fundamental programing concepts and embrace the logic behind virtual objects and physics. Another popular software is Scratch. This online website is available in 40 different languages for users between 8-16 years old. Scratch consists of various games where children can create their own interactive stories, games and animations. After clicking the “See inside” button, children can explore and analyze code that brings their creations to life. The complete working environment is designed in a nice, children-friendly way (code floating in bubbles, scratch cat etc.). Young developers have also the ability to share their creations online with other users or parents.
Software suitable for slightly older children (12+) is Greenfoot. Its functionality is similar to “Alice” but the content is represented in a bit more mature way and on a more advanced level. Greenfoot educates children mainly in object-oriented programing (Java).
Method is comparable to teaching English songs to non-English speaking children at preschool. The goal is to wrap children’s minds around computer logic processing by providing them with small bits of code and explaining it in easy and playful way.
Other children—friendly, educational software worth exploring are Sagan (Mars rover), Arduino (software and electronics), Raspberry Pi and VHTO (Dutch – not a software but governmental program where girls can explore their talents and work with professionals).
Preferred app development platforms
Android devices, especially those powered by Google, fivefold outsell Apple. However, most of developers still prefer to build applications for iOS. It is an interesting fact that I will try to examine in following paragraphs.
Developers are concerned with complexity of android application mainly because building an app that works smooth and properly on nearly 12.000 different kinds of Android devices is impossible, where iOS app must be compatible for maximum 8-9 different devices. Developers have to take in account additional costs associated with testing as well.
This problem occurs due so-called fragmentation, which is a phenomenon where custom Android platforms are unable to run particular applications. Google and community work hard to simplify porting Android by providing software and tools that make the process easier.
Application developers keep in mind that Android users will less likely be willing to spend money on apps than iOS customers. Since building an app is not a one-hour job, a perspective of being rewarded for own work sounds teasing. However, paid apps are always exposed to Android piracy (similar or identical applications are created). Free apps or free trial apps very rarely have to bother with this issue. Besides this, let’s not forget that iPhones can be jailbreaked as well.
So far, for developers, iOS platform is still more lucrative than Android/Google market. Nevertheless, number of Android developers keeps on increasing constantly.
Women in Open Source
As a female developer, I want to take this opportunity and distinguish a couple of women that contributed big time to open source development. Numbers of male and female developers might not be equal but we could argue here about the quantity versus quality. In other words, few women hold very high positions in popular open source software. For example, Mitchell Baker is not only a Mozilla chairman but also a chief of Lizard Wrangler. Danese Cooper is an advocate of open source software at Open Source Initiative and a board member of OSI. The previous CEO of SpikeSource (until 2003) was Kim Polese, Kim is known as leading Silicon Valley entrepreneur and technology executive. Finally yet importantly, I want to mention a co-founder of the non-profit GNOME Foundation Stormy Peters. Stormy gives frequently speeches about open source; she also participates actively in discussing open source matters with United Nations, European Union and U.S. government.
All of those women were included in rank of most influential people in the world by magazines like Time or various Business Journals. Considering that only 1.5% female developers work in a field of open source (against 28% of proprietary developers) might not seem like a pro but it is remarkable that from such small group there are personalities that had ,and still have, significant impact on open source development.
Open source is not suitable for everyone; especially individuals that are not trained in programming might find difficult using or adjusting it. There are couple of aspects that anyone who seriously considers using open software projects should keep in mind. Frist of all, if we are about to equip our business with open source software, it takes a separate group of well-taught developers in order to manage it safely and effectively. Since open source operating systems are not very popular on PC machines, installation process might cost money and time. Besides this, after installing such software, team of developers need to put a lot of effort to integrate it with rest of software. That is because open source projects is not very compatible with other applications, especially if company still wants to use some of the proprietary applications. For example, it is not possible to install Photoshop on a PC that runs Linux.
In addition, programs like Gimp or Inkscape, which are free, are still far behind Illustrator, InDesign or Photoshop. That already narrows the number of businesses and companies that can afford using free software depending on their computer environment needs.
Company that chooses open source software has to fully acknowledge all licenses and rights, free software can be used internally, for own use and nothing more. Distributing, advertising or commercial use of even a small piece of open source code can bring company (or individual) a serious lawsuit. Of course, we should also keep in mind that not all open source software is reliable and safe therefore it can take a lot of time, cost money and force many mistakes before company finds open source software that is suitable for their needs.
VIII. Open source products
I have already mentioned many names of open source software. In following chapter, I would like to describe briefly the most popular and most interesting projects that are out there. This is a list of the biggest leading Open Source Software.
Linux was originally created from Unix, GNU, BSD and MINIX and released on October 1991. It is a leading open source operating system, which main product “The Linux kernel”, provided foundation to most software available now, including Android and Microsoft. Linux main developer and current principal of The Linux kernel is Linus Torvalds. Ubuntu is the biggest and most successful (sill open source) operating system that was based on Linux. Nowadays, Linux lies far beyond being just an underlying tool for other operating systems. This open source software becomes a brain for many other machines and hardware.
I have already talked a lot about Android and it isn’t hard to notice that it is one of the most influential, fastest developing and most popular open source system in the world. Android cooperates with the biggest conglomerates in the world like Google or Samsung, (recently even KItKat J) that invest billions of dollars into its development. Recently, Android launched a complete open source repository called F-droid where users can browse and download applications for Android platform. It is important to remember that Android is not 100% open source; some of the drivers are closed for public view.
Mozilla Corporation is known for its unconditional and unbeneficial love for free internet. The most popular product is web browser Firefox but Mozilla also provides other products like their own Firefox OS, Thunderbird or Webmaker and tools like Firebug. Mozilla Firefox estimated to share 20-21% of worldwide browser usage, which sets it as third most-used browser.
Launched on April 2008 – GitHub is a web-based free repository that provides hosting services for private projects as well as free accounts for open source projects. A tool enables collaboration between communities, companies or team members and in January 2013 counted more than 5 million active projects. Finally, in May 2011, GitHub Inc. was distinguished as “The most popular code repository for open source projects.
WordPress divides into two variants that tend to confuse people: wp.org and wp.com. They are both publishing platforms that enable users publishing sites online free; “created by and for the community. WordPress.org is the largest blogging tool in the world that enables users to edit and self-host their own site. Setup is more advanced but it also gives a little more freedom considering hosting and theme customizing. WordPress.com is a typical blogging website with own hosting where users can simply sign up and operate their sites directly from dashboard, no development tool downloads are needed. Right now (18/10/2013), there are 71, 647, 919 active WordPress Sites in the world.
elementary OS “Luna”
Elementary OS (released on March 2011) is a little less popular but still wonderful software. Its main goal is to create new free operating software that is simple, (unbelievably) fast, light and beautiful. “Luna” OS is created fully by the community. It keeps a status of transparent and usable software. I myself, use it as a main operating system for some of my machines. I would definitely recommend it for people who appreciate simplicity and efficiency in software.
Finally, at least one of those open source software you are probably using: VLC, 7-zip, FileZilla, Audacity, Gimp, OpenOffice, Pidgin, Magento, Blender
Since my report focuses explicitly on open source software, I will only mention the most popular open source hardware: Arduino, Beagle Bone, Raspberry Pi, RepRap Pro – The 3D printer that prints itself.
IX. Open source vs. proprietary
In following chapter, I will compare different features of open source software against proprietary software in terms of business interest. I will discuss features and capabilities. It is a report about open source; therefore, I will elaborate more on open source advantages.
Recently, major companies and government organizations are more convinced to use open software instead of proprietary. It is not only because open source is free, there are many other advantages that make open source better for small and big businesses. A great example of well prospering, major company is Red Hat, which relies exclusively on open source software.
Most important and yet most controversial factor is open source software security. General opinion follows that since open source code is available for everyone, it can be easily manipulated and broken into. It is a false statement and what is more, the fact that open source code is transparent makes it actually more secure than any other proprietary software. Why am I saying it with such confidence? Well, open source code applies so called “Linus Law – given enough eyeballs, all bugs are shallow, which means, the more people see and test the code the faster all bugs and gaps are fixed. Does that make open source software 100% secure? Answer should never be “yes” but the more frequent updating and debugging, the safer the software gets. In addition, everything that certain software does is out in the open and is adjustable anytime to whatever company needs. Business that uses open source software is fully aware of what the software does and can take precautions for possible imperfections.
On the other hand, we have proprietary software, which keeps their clients unaware of what their product actually does by keeping the source code closed for public view. Clients that use proprietary software cannot know what is happening behind the screen and cannot even take security measures for possible bugs. The most recent incident encountered Adobe in September 2013 where anonymous hackers accessed encrypted information about 2.9 million users like names, credit card numbers etc. Luckily, encrypted data is a largely safe mode that prevented any actual abuse to happen – well done, Adobe.
It also gives freedom to companies that use open source. They can take whole or just a piece of code and personally customize it. They can even create their own software if that is what they need. Such flexibility is a definite “no” for proprietary software.
Is it so important to know what is inside the software that company or individual uses? A recent incident with NSA affair proves that it is wise to have a look at the code before filling the software with private information. Closed software might contain small bits of code that make it possible for received information to be retrieved and accessed by third parties. It sounds like science fiction but that is the most basic theoretical explanation for recent discoveries. Many major companies like Skype, Facebook, Microsoft, Apple or Google were accused of sharing private information with American National Security Agency (PRISM surveillance program). The topic of NSA affair is still very controversial and both sides keep strong arguments whether spying on citizens is moral or not. Nevertheless, by using software, which provides transparent code, we are less likely to be a victim of such privacy issues.Figure 2 Quality; Competitive Features, Speed and Security (U.S.A.)
In past couple of years, along with popularity, also quality of open source software increased rapidly. Software created by thousands of developers is more functional, innovative and therefore better than one created by dozens of developers as presented in Figure 2.
Any possible bugs are fixed much quicker in open source code because there is a massive community watching over it 24/7. This also decreases the number of software updates or new version releases. Unlike proprietary software where bug reports are collected for quite some time, resolved, packed into software and released as a new version. This is a problem that companies, which choose open source software, don’t have to worry about. Let us analyze following example: Windows users will be always obligated to perform expensive software and hardware updates, they will have to purchase new licenses for Office and despite all this, they will still not have warranty that the OS they work on is totally safe and prepared for new unexpected threats.
Ubuntu users will also have to perform software updates but not as frequently as Win users and they will not have to make any purchases. In case where there is a new threat, open source community will try to solve the issue right away and immediately release the fix as small update to software (ex. from Ubuntu 12.04.2 to Ubuntu 12.04.3).
Support is actually one battle that open source might lose against proprietary software. However, it would never be an even battle considering that proprietary software uses very narrow and specific range of products, where open source software is available for any possible machine or device. For instance, iPhone OS is famous for its reliability, high quality and remarkable way of fusing with hardware. iPhone OS runs on about 15 different devices (incl. iPads). Obviously, it does not take much struggle to provide perfect support for such narrow range of products. Android, in the other hand, might not be considered as reliable and hardware friendly. Support might not cover every possible aspect of software working on every possible device but that’s an effect caused by Android running on almost 12.000 different devices (incl. tablets). Nonetheless, Android support is present and very active. There are massive amounts of forums translated into dozens of different languages that provide reliable help for users.
Many OSS applications like Linux run online community that provides detailed documentation, newsgroups, forges, wikis and even support chats.
If a company still requires an extra assurance, they can turn to paid support options for open source packages (Red Hat, Canonical). Such support is not free but still fits in frames of paying for technical support services.
In defense of proprietary software
My own reflection is that not every software should be free. The main reason is that open source is not for everyone and nobody should think of a company any less if it produces reliable software with complete support that perfectly serve its purpose. Some successful companies rely on their secrets and they should be respected for that. I find myself using proprietary software and I would not change it to any other free substitution.
Open source software nowadays has a definite impact on not only individuals but also business companies. It is a trend, which very quickly becomes widely used solution. Time shows that internet users are more and more convinced that sharing their knowledge can very rapidly improve and enrich any computer experience. Open source software proves that in terms of privacy, transparent code is an advantage not an issue. It also proves that freedom of choice can lead to remarkable results that will serve the rest of the society. Growing hardware diversity is a threat to open source software development. Matters like piracy or copyright violation will not exist if software will be globally and freely available. Most importantly, as long as building software is lucrative and profitable business, we can never live in a world where all software is fully open.
XI. Future (?)
Writing following report was such an interesting work because while gathering data for particular chapters I often found myself correcting the numbers and editing topics in order to stay up to date. Therefore, I decided to add another chapter that focuses on future ideas of open source. I kept the question mark next to the title because many of those projects were indeed the future ideas that launched during this couple of weeks while I have been writing this report.
Recent, project (September 2013) involves self-driving cars that will run Linux. Google’s Ubuntu-based self-driving Toyota Prius has already passed over 500.000 miles of autonomous driving with zero accidents caused by the computer. Self-driving cars are predicted to be available for everyone by 2017.
In September 2013 Oppo has invested 7 million dollars in the new CyanogenMod Android Operating system that will run on new Oppo N1 phone. Oppo took their step in assuring that users should have their freedom of software choice and that they should not be limited to existing Android operating systems overloaded with bloatware mainly by network carriers. CyanogenMod is expected to be the third most popular OS and its developers promise to bring Android to the next level.
Video games are a great factor in the technology trends. Valve, developer of “Steam, entertainment platform with over 40 million users and 4,226,519 games online, has released a Linux client in mid-February 2013. On 23 September 2013, Valve announced SteamOS a free, Linux-based operating system “designed for the TV and the living room”, Steam Box a gaming console and haptic game controller (release in 2014). This can have a huge impact in resolving the previously mentioned issues with hardware compatibility. Right after these announcements, two major hardware manufacturers that had a poor support for Linux, Nvidia and AMD released statements that indicate their commitment for more intensive focus in improving their support to achieve best possible performances.