Open Source Software and a Developer's guide to it
By Matt McCabe - Web Developer.
As a new web developer at Orantec, I am keen to make the most of open source technology and I hope to teach you that it's not just something developers need to be aware of. After all, open source software is used by almost everyone every day, even if you're not necessarily aware of it. It's in your desktop, your phone, your TV, and even in your fridge! Open-source software (OSS) is here to stay - even companies that have previously avoided it, such as Microsoft, are now embracing it.
The Rise of Open Source
If you've been using software for more than 15 years then you'll likely remember the dark days of Freeware, Shareware and even Donationware. These are all types of software that were alternatives to commercial software, however they were typically the products of hobby programmers.
Shareware, for example, is essentially trial software that comes with a limitation: be that only working for 30 days ("bombware”), revealing a subset of features ("crippleware") or just sending you periodic reminders to pay ("nagware"). Of course, when you do pay, all these limitations are removed and you can use the software without restrictions and the quality of it does usually encourage you to take that leap.
While there is nothing inherently wrong with this way of distributing software, it didn’t instil confidence in the company. How long would they be supported? What if something goes wrong? What if it installs some malware? Is the developer making a living out of it or will they lose interest?
Mobile lagging behind
These concerns still ring true when it comes to buying an app for your smart phone. Between the speed of change on the operating system (OS) and hardware, it’s possible the app you rely on won’t work when you upgrade to the new OS or the phone with the bigger screen. Considering the revenue of popular apps like Overcast or Unread, it's unlikely the app will be abandoned for being unsustainable. While you can "get by" on free apps, you should be prepared for the worst as large companies are more frequently acquiring freemium apps and there’s no guarantee your favourite free app will survive the transition.
I'd love to be able to try apps on my iPhone but Apple have closed that door. The only realistic way to do it now is to provide the app for free and include in-app purchases (IAP) to unlock all the features.
Commercial software is safe, but sometimes pricey
What I'm getting at is that commercial software typically means it is making money and there is an incentive for the developers to continue to improve and support it. When it comes to buying software, it's always a safe bet to go for the largest product on the market - would you consider an alternative to Microsoft Office, for example? Depending on the software you need, you might have to stump up a lot but it doesn't always come down to money.
Free software received a boost when 'open source' was coined during the release of the Netscape Navigator source code in the late 90s. Although Netscape was eventually acquired by (and killed in the hands of) AOL, the fact that the source code was readily available meant it could be used as a springboard by Mozilla to create Firefox. If this hadn't happened then the web would be a very different place today.
The phrase ‘source code’ is thrown around a lot and if you're not a coder you might not understand what it is. Personally, I like to think of it as the blueprints to the software. The source code on its own doesn't mean you have the software itself as you still have to build it but this code base would give a developer a good starting point.
Shortly after Netscape’s source code release, the Open Source Initiative was founded by Linus Torvalds and Tim O'Reilly, among others. Linux is probably the best example of open-source software and while you might not use it directly it’s in thousands of web servers and devices around the world. Linus Torvalds developed the Linux Kernel primarily because the GNU kernel on which is it was based was freely available and this leads on to the question of licences, which has become an increasingly important aspect of software.
Why Open Source?
Consider commercial software, for example: you're using an application that you have purchased, but there are a few things you want to change to suit your own requirements. In this case, the only real avenue available is to convince the software company to fix or change the application for you. If there is no commercial reason for the changes to be made, however, then they will either remain a low priority or just never happen.
In the open-source world, as the source code is available, you could make the changes yourself and get them added to the production version of the application. Or, if the application has a community of developers supporting it, you could propose the change yourself or raise the bug fixes with them to update the application.
What this does mean though is that choosing open-source software is about more than just picking the application with the features you need – it’s also about looking at the community supporting it. Although the software is free and open-source, there may be the option to pay the development team for priority support, which could include anything from help with installation and training to 24/7 telephone support.
Open-source doesn’t mean that software is not professionally supported, unstable or "cheap". Rather, it's a community that continues to push for innovation and, the open-source focused hack.summit() - a virtual conference for developers - is a great example, being the largest virtual conference in history.
Choosing a licence
GNU, BSD, GPL, MIT… what do they all mean? Licencing and copyright is a complex subject and if it is an area you’re just entering in to, I’d recommend that you seek professional advice. If you’re using software, a few things you need to consider are:
- Who will be liable if something goes wrong?
- Can I make changes? And if I do, am I required to contribute back to the project?
- Do I have to provide attribution?
- Are there any restrictions on use?
I tend to look for the MIT licence as it’s the most permissive but a fun alternative is Beerware, which is very simple as you can see:
Microsoft and open-source
As Orantec primarily builds software using Microsoft technologies, we keep a keen eye on any new developments. Microsoft began open sourcing their web development technologies in 2012 with ASP.NET MVC and Web Page, and there was a noticeable pick up in new features and builds, leading to higher quality technology.
The change that got the most interest, however, was at the Build 2014 conference when Microsoft announced the creation of the .Net Foundation, an independent group of company representatives and community leaders responsible for encouraging open development and the collation of technologies. At the Connect(); event in November 2014, the big announcement (summed up by Scott Hanselman) was made that the entire .NET framework would also be open-sourced.
Due to the size of Microsoft, I believe they can make the most of the advantages open source brings, including rapid innovation and improved quality, and this will ultimately mean we can build better web sites using slicker software for our clients. We can use the best tools for the job as Microsoft are making it easier to work with open source technologies.
This is a very different Microsoft to the one that created proprietary file formats and locked you into their ecosystem. They even have a division dedicated to working with open source communities and promoting interoperability. Developers are seeing the benefits now and I'm sure customers will notice improvements in the quality of software available too, and the first of those may come in the form of Project Spartan, the new browser that will ship with Windows 10.
Right now, Microsoft's products are looking pretty good and, as a Mac owner outside work, I never thought I'd say that!