Open Source 101
Open source is a big thing nowadays and it’s maybe the first term to make “open” a buzzword in technology. Thus, for the series on this term which I had promised you, I thought of starting with open source.
Let’s begin with some basics: Software is generally written in a high-level programming language and then transformed into low-level machine code by a compiler. The first language (the “source code”) is the one understood by developers and the second language (the “binary”) is the one understood by computers. If you install software on your computer, it comes in its binary form, e.g. an .exe file on Windows, which is sufficient to use it.
Now, if a software is open source, it means that every user can also get access to the source code. While most users won’t care about the sources and just want to use the software, developers and other geeks will be happy about being able to look into the inside of how their favorite software works and also being able to modify it and compile their own version of the binary.
Open source software is usually published free of charge, which is one of the obvious advantages, especially for private consumers who don’t like to spend money on software. For these consumers, open source equals freeware, but those terms shouldn’t be confused. To make things even more confusing, there’s also the term “free software” which is also open source, but freeware is not always free software.
Open source advocates generally point out that “free of charge” isn’t the only advantage of open source software. Rather, the focus is on freedom. A software offered as binary is a “take it or leave it” offer, but open source allows the modification of a product to make it adapt better to the requirement. For corporations, this can be even more important than price.
Some open source software is released in the so-called public domain, which means that the author decided to give up the copyright on their work. For the user it means they can do whatever they want with such software. Most open source software, however, is published under a specific license, which may restrict or ensure the freedom associated with the software. This is important because software developers generally build a project by combining existing code modules (libraries, frameworks etc.) written by other developers and extend it with their own code. Typical licenses define the terms under which open source code may be integrated into a new project:
- BSD-style licenses require attribution of the original author, but the developer has the freedom to use the code.
- Licenses such as the MPL allow code modules to be integrated within any project, but they require that a modification to the code which is open source must also be published as open source so that other developers can benefit from it.
- Licenses such as the GPL are built on a principle called copyleft. Their intention is that work done in open source should benefit other open source projects, not closed source (or non-free) software. Code modules licensed under the GPL may only be combined with other GPL code.
I think this is as far as I can go in a basic introduction to open source, even though this topic could be dealt with in any level of detail. Some people use open source in a pragmatic way while others treat it almost like a religion; that alone could fill many posts. I’m a pragmatic user of open source software and seeing how many great open source projects have been created, it is really interesting to think about the impact on the industry. As open source is generally distributed free of charge, there’s the question of viable business models for companies in the field of software development. Cloud computing and Software-as-a-service as well as the advent of scripting languages who don’t use a traditional compiler have an impact on open source as well. Another interesting question is the motivation of developers to release their work as open source. I’ll be writing more on these topics soon, so stay tuned!
Future of Desktop PCs
“In three years time, desktops will be irrelevant. In Japan, most research is done today on smart phones, not PCs.”
This has inspired me to write my own thoughts on the subject. Here we go:
- Absolute statements obviously stir controversy, and that’s intentional. He did, however, not mean to say that Desktop PCs will cease to exist - they will just disappear from the mainstream. Vinyl record players and traditional film photography are very well alive - but not for the mainstream.
- The Web Browser has become the most important application in our computers and we do more and more activities online, in the cloud. In this scenario, the underlying operating system becomes less relevant. Google wants to reduce this operating system to its minimum with Chrome OS. Step-wise, more and more applications which previously required a local installation are now ready for the browser.
- About half a year back, I had commented on Kevin Kelly’s TED Talk about the next 5000 days of the web. I believe we will see significant shifts in this period of time, but still believe in what I said in this comment: The infrastructure will change. Today the traditional PC and browser may be the tool to access this emerging cloud and applications will be framed as HTML pages, but that is not the end of evolution. We’ll continue to innovate.
- I don’t think everything can be done on smartphones, sometimes you just want a bigger screen. I cannot imagine Desktop PCs disappear from offices, but I think they will no longer be seen in homes of non-geeks. A combination of Internet-powered TV - set-top box or gaming console - and smartphone (or maybe an iPad) is sufficient for normal home users. Why should they deal with a full-fledged PC’s problems like operating system ituning, anti-virus installation etc. when all they use their PC for is to fire up a browser and check mails and Facebook, and write a word document twice a year?
- PCs are about freedom, the freedom to install and configure anything the user wants. Consumer electronics, and that may includes devices like phones as well, are limited. The challenge is to reach to an application economy that gives consumers freedom of choice in a safe and sane manner without restricting them or censoring - if you have ever read about Apple’s Appstore, you know what I am talking about …
What is your opinion about the future of computing?