Open-source is the concept of software where the code written is accessible to the public, allowing any user to modify and redistribute their own changes. There are many great things that come from open-source – allowing aspiring developers to learn how the ins and outs of a product work, and allowing for bug fixes and new features to be added to the original product.
Open-Source Helps Aspiring Developers Learn
I have first hand experience of how open-source projects have helped me understand and get into programming. I had my first experience with open-source software when I was just learning how to program and I found the site CodeProject. I don’t hear too much about the site anymore but it is still up and running, and from looking at it just now, people are still using it. CodeProject is a site where users can post articles and their own source code, for users to download and learn from. I first found it when I was learning VB.NET and C#, and the projects users have contributed to that site got me to a level of understanding where I could start building things on my own.
If it weren’t for the fact that so many programmers willingly share their code to be picked apart and viewed by anyone in the world, I would’ve had a much harder time getting into programming, as I learn messing around examples over any other learning method. These people that are devoting their time to build projects and examples for other users to use aren’t even getting paid for it, they just enjoy building these things and writing these articles to teach others, and I think that’s something truly admirable.
On the other hand, I don’t think it’d be right to force all code to be open-source. In the business side of things there is code that if it was available to the public, there’d be nothing stopping a larger company from stealing their product. But open sourcing separate components without exposing the core product for all eyes to see, could benefit businesses in many ways. Having users spot bugs in your code, and also just doing your part to share information and help the world to learn more.
Big Companies and Open Source
In recent times however, larger companies are becoming more and more open to the concept of open-source recently. Microsoft is a huge one. Their .NET platform, which VB.NET, C# and some other languages run on, was recently open-sourced on GitHub as the “.NET Core”, which they’re porting to operating systems other than Windows such as Mac OS X and Linux.
If you look at a large company’s GitHub page these days, you’ll likely see a ton of open-source libraries they’ve made publicly available for others to use. Take Facebook for example. They created the React platform for their own site, but releasing it into the wild allowed other developers to pick it apart and transform it into something that is growing rapidly.
Another example: AirBnB. While they understandably don’t have their entire web platform on there for all eyes to see, they do have their separate reusable components hosted publicly, as well as other large libraries they’ve developed in-house (for example this machine learning library, aerosolve).
Google’s entire Android platform, the core behind Chrome OS (Chromium OS) and the core behind the Chrome browser (Chromium) are all open-source as well. In fact, Android and Chrome OS are based upon the entirely open-source Linux kernel. While Google’s built in apps themselves aren’t open-source, they’ve chosen to keep the technology behind the operating systems open-source to allow others to build on it.
Apple is another company that has taken the “partially open-source” approach. While their flagship operating systems, Mac OS X and iOS are not open-source themselves, they have built the core of both operating systems on the open-source BSD kernel. This core is called “Darwin” and is open-source itself. This to me is a great example of having the underlying, more abstract technologies open to the public while still securing yourself as a business by not making your entire platform open-source. There are many more operating systems that are completely open-source, though.
First Experience with Linux
The same time that I started getting interested in coding I also had my first experience with the Linux operating system. I installed Ubuntu 8.10 (a distribution of the Linux operating system) on my computer which at the time had one of those big white CRT monitors.
For the whole first week, my WiFi adapter didn’t work and it was really frustrating but I didn’t want to give up on trying this new operating system out. So I used the family computer (that’s a thing of the past…) to Google how to fix these problems and eventually ended up compiling open-source drivers and installing them on the machine. It worked. It was a totally different experience than I was used to but when it worked, I felt super accomplished, and sort of felt like a rocket scientist.
Ubuntu comes pre-installed with completely free and open-source alternatives to popular software like LibreOffice/OpenOffice.org rather than Microsoft Office. Just about any paid and closed-source software you can think of, there is an free and open-source alternative.
For example, if you don’t want to pay for PhotoShop, or would rather just support the developers who contribute to the open-source community, try GIMP.
These days I try my best to use open-source software over proprietary software as much as I can, and I usually also take the time peer into the source code of programs I use to better understand how they work internally. I spend a lot of time digging through repositories on GitHub to find cool projects others are working on and learning how they work.
My Own Open-Source Projects
I also have most of my own code projects open-sourced on GitHub. One of my main open-source projects I’m working on is my Ace programming language written in C++. I have it open to the public because I hope that on the off chance someone finds it, they’d have the ability to look into it and understand how I made it. Maybe it could help them build their own language. Maybe they’d want to contribute to it. Or maybe, they just want to peer through the code. I think that giving people the option to see and understand how things are work is what matters most.
Open Source Software
Coding large projects can be a difficult task. Doing so on your own can be even more difficult. Large companies that have lots of resources can have an easier time making large pieces of complex software that they can then release. These would be proprietary software, actual pieces of software owned by a company. However, you could also have a product that you make one version of and then let others iterate upon. However, you could still control the quality and anyone could still have the opportunity to benefit from their work. These are some of the many reasons for Open Source Software (OSS).
Open Source is the idea that when you make a piece of software, free or otherwise, you release all of the source code to the public. This allows other developers to remake and improve upon your idea. The idea of open source software has allowed many pieces of technology to see light. It encourages collaboration and is a powerful way for people to work together.
The concept isn’t overly new, open source has been used since the 80’s, but it is still as powerful and useful as ever. Personally, I believe that the freedom open source allows is responsible for many ideas that might not have happened otherwise. Some of which may not have worked if they were tried by individuals or teams trying to make their own products.
The History of Open Source
Many classic applications were developed through open source methods. Although the exact moment the idea of Open Source started is foggy: many universities used the methodologies when developing early applications in the 80’s and 90’s. The actual term Open Source was coined in 1998 when individuals and the Open Source Initiative wanted to nail down the idea.
Before then they had referred to the concept as ‘Free-Software’ but not free as in costs nothing. The ‘free’ refers to the freedom that developers had while working within those environments. During this time the free software foundation developed licenses to help protect the freedom and ideals of OSS.
The number of applications developed through OSS methods is huge. More impressively is the scale and fame of some of those applications. The Apache Web Sever and Linux are two of the big ones. Beyond Linux itself, most of the software that is popular with Linux users (Wine, OpenOffice, etc) are themselves open source projects.
Reasons for Open Source
People start open source projects for any number of reasons. In many cases, people start a project due to wants access to an idea that costs money. Since one person can’t usually replace a product developed my a dev team at Microsoft they use OSS ideas and techniques to get help from other people who believe in the idea. This way people work together and will improve the product (frequently because they themselves are users).
Almost every expensive application or proper version (like Windows, or Microsoft Office) has a free (or cheap) open source version. Some even have multiple, in situations where one group wasn’t content with the previous solution. So unless every problem gets solved with a perfect solution, people will want to make projects to find their optimal solution.
There are many reasons to want to use Open Source or contribute. Most open source projects find large communities that work together striving the make they product the best it can be. Having that support (or being a part of it) can be very satisfying. OSS projects have many benefits, a popular one is localizations. Since the chance to have a someone with the skill set you need is higher if anyone can contribute.
Many users like OSS because they can look at the code to let them know what exactly the program is doing. If you look and see something you don’t like then you can not use it. If you were using a piece of software developed by a company you probably don’t have access to the source code and can’t take a look ‘under the hood’.
OSS applications and products are frequently more secure since more people looking at the code more often the chance that something insecure or made could be noticed. I know myself that little errors causing huge problems are very hard to notice when you are working alone on a project.
People also like to use OSS for training. Many of my classmates at University were running custom versions of Linux that they made as training exercises. Because Linux is open source you can get a kernel and mold it out into your own operating system. Many people like to look at open source software because of this opportunity to train your skills (while still contributing to the project).
Here are some of the other reasons:
The GNU General Public Use License
One of the linchpins of OSS is the licensing. The GNU License is attached to most open source software. It allows anyone to copy, edit, change, and do what they want with the software (as long as you are not changing the licensing). This allows amazing degrees of freedom. If you find an open source project you like you can simply make a copy and make your own versions. If you make a good version you can give it back and it might be adopted by the main program.
Or you can just make your own split and take development in a different direction. You can still make money off your version in any way you feel. This freedom to control development and also protect the freedom of your work is one of the important reasons open source software is popular and powerful. In addition, the license makes sure you give proper attribution to the ideas you are building off. So if you choose to make your own version (rather then build on the previous) then you still have to acknowledge your predecessor.
Open Source can be a complex topic, I had a lot of misunderstanding and misconceptions about it until recently. The biggest confusion of OSS is that most people think that Open Source is just a replacement for the term Free (monetary, not freedom). Although many open source programs are free this is because the licensing involved makes it difficult to make money off of it. If you were to take a piece of open source software and make your own version you must adopt the same licensing. This means if you tried to make your own version to sell someone could just use the other free one. Alternately they can take yours add to it and then release it themselves.
Many larger open source projects are also not just hobby pieces. Although I’ve been referring to open source projects on a smaller scale, large project (like Linux) are managed full time with changes being approved and disregarded. It’s not just any random person messing around. Bigger projects also tend to have their own specific licenses similar to the GPL fine tuned to their product.
The Future of Open Source
The idea of Open Source has been around since the dawn of the computer age (or just about). The concept that people would rather work together to make something is nice. Also if you get to benefit from everyone’s work without having to pay, that is even better.
To that extent, I would say OSS is here to stay. There has been no decline in the popularity of the concept and every year more and more amazing products come out of it. The products also never compromise with newer technologies. There are OSS products and applications for every cutting edge piece of technology that comes out. Even complex topics like deep learning and big data.
If you are interested in open source, there’s no point not getting into it. So long as people want to work together, it’ll be around.
The benefits of open source software are amazing. It might not be a good idea if your goal is to make a million dollar business empire. But, if you are working on a project you and others are passionate about having the ability to work together allows more things to get done. Other people you have never met may have ideas on how to improve your designs and ideas. Those ideas may have never come to you. However allowing other people the chance to work with you allows everyone’s work to flourish.
Since it’s inception it has only gained more popularity. People start open sources projects for any number of reasons. Since there is less monetary cost they gain popularity through users and developers. These are people who believe in the idea and want to contribute.
Personally, I have never taken the opportunity to work on something open source. I have always just seen the tag and assumed it just meant a lot of people worked on it. So although I knew the basic idea I was uncertain of the details. To this extent, I would definitely like to work on something open source before too long. The ability to contribute to a community is a fantastic feeling and doing it through software seems even more fun.
Open source is defined as: “denoting software for which the original source code is made freely available and may be redistributed and modified”.
When I think of open source the first thing that comes to mind for me is always Mozilla, the creators behind the once most popular web browser FireFox. For years it dominated the web as the most popular, fast and reliable web browser. One year after release only 7.2% of people on the web used FireFox with Internet Explorer holding 84.9% of the users. Fast forward 7 years to 2009 and there was 46.4% of internet users choosing FireFox as their web browser of choice with Internet Explorer in second with 37.2%. Yes, Firefox the FREE open source browser was used by more people than the browser that comes PRELOADED on your computer! Three years later in 2012 and Google Chrome held 46.3% and Firefox dropped to 31.1%. And today only 13.6% of people use Firefox and 75.7% use Google Chrome. To see more about this trend. Firefox was the first to introduce on a wide scale the ability to install custom browser plugins from a store, browser themes and to directly integrate Google as it’s default search engine. Firefox changed the way we browsed the web forever. And although it might not be the reigning browser of choice anymore many of the everyday features you use and any web browser were first brought to life in Firefox. This browser was developed by people from all across the globe. And they lost to Chrome for many reasons, but one was a rather unfair advantage. Google was the default search engine in Firefox and when Google released Chrome, in order to attract new users it needed a plan. What better way than to advertise is on the world’s most popular search engine, their own Google homepage! If Google detected someone using anything other than Chrome they would be greeted with a message saying they can “Upgrade their internet experience with Google Chrome!” This message still presents itself to this day. Firefox and it’s parent Mozilla are one of many open source projects that redefined its respective domain.
Next up, Ubuntu. Everyone is familiar with the name: “Linux”. But for years Linux was a very broad term that could mean any number of “distros” (distributions/iterations) of Linux. The majority of people aren’t familiar with linux and found it intimidating to use. Now, Ubuntu is the most popular Linux distro and it redefined Linux for your home as we know it. Linux has always been known to force command line on users and over complicate things for your average sit at home computer user. It’s also home to one of the largest and most documented linux communities. They also offer amazing click to install tools similarly to those found in Windows making the installation of new software easier than any other linux distro. But while offering all of these simplistic features, it doesn’t over simplify things by handicapping YOU, the user and ADMINISTRATOR of the computer. A concept that Windows is beginning to forget lately and will hurt them if linux support continues to grow. Ubuntu redefined Linux for the home and caused many new Linux for the home distros like LinuxMint and Elementary OS (my personal favourite!).
Some quick others!
Apache, the most popular web server in the world is also open source! Hosting nearly half of the websites on the globe coming in at approximately 112 MILLION! Also, MySQL, the most popular database is open source!
The concept of open source is incredible, it opens the door to minds from all over to work together and create these unbelievably incredible things! Which in turn creates other projects that attempt to improve upon the already great. But not everyone uses open source because it’s “great”. Some people simply use it for security or ease of mind and although this segment of users might be a small niche it’s existent nonetheless. Each and everyday everything you do on the web is being logged and tracked to better improve upon the way you’re presented with content. Some people don’t appreciate this and prefer privacy and with open source you know exactly what’s going on under the hood because the source code is available for all to see. Let’s take for example the newest iteration of Windows, Windows 10. It introduced a whole new pile of telemetry and statistics, data and usage mining/gathering within the OS itself. To this day no one knows exactly what data is being recorded other than what server it’s being sent to. But Ubuntu on the other hand doesn’t track your data and it’s known not to because as previously stated the code is visible for all to read. But this extends beyond security of “corporate espionage” and goes into bugs and exploits too. When you’re working with a set team of developers, they’re the only ones who can look under the hood for flaws. As quoted here from an article I will link below: “All it means is that those products are closed from public view, so no one outside the companies that own them has the faintest clue how many bugs they contain. And there’s no way the limited set of developers and testers within those companies can test their products as well as the worldwide community constantly scrutinizing FOSS can”.
There’s many ways to look at open source and many ways to say how it’s impacted modern software. But I often look at open source in many cases as the home of innovation and the result of working together on a large scale. It sets new limits and new standards. And In many cases this fantastic product that set the new standards for paid software… Is free!!! I personally feel that open source is required in the world of development to keep innovation thriving. Why do I say this? Because this allows new ideas to come from more than just the closed doors of a company. It gives you reach to many people and ideas you would’ve otherwise never had.
Another fine example: The Android Open Source Project, because the android OS is open source it’s allowed for so much innovation and customization in the Android community! It also allows for devices manufacturers to all support the same apps but customize the look and feel of a phone to make it unique to them! Over the years tons of different android ROMS and mods have been released for free by developers from across the globe! The once most popular and loved custom Android ROM CyanogenMod was started here in Cape Breton! It offer more customization than any other ROM available and came preloaded with ROOT granting you SuperUser permissions within android itself! In 2014 a Chinese startup called OnePlus launched a new phone called the OnePlus One and this phone was the first phone to come running CyanogenMod as it’s factory ROM. OnePlus redefined the smartphone world with it’s flagship killer all while powering it with a ROM that set the standards for the custom Android experience!
All of this in a nutshell?
Open source is absolutely incredible and is home to some of the greatest innovations in software on earth!
Worth checking out:
So what is open source anyway?
Open source software is software with source code that anyone can inspect, modify, and enhance. The source code is the code that tells a computer how to run a program or software. Programmers who have access to a computer program’s source code can improve that program by adding features to it or fixing parts that don’t work correctly. Open source software is useful for people who want to know exactly what a program does by looking at it’s source code. It is great for programmers wanting to learn how to either code a program, fix bugs in an existing program, or generally improve an existing program. To me open source programs seem like a good idea so users can have control over what functionality a program has and it makes them feel more secure as they can remove any code they don’t want in the software they’re using.
Open Source Gaming
Many products and software you can find on the web will be open source products, but in the gaming world it is a lot less common. Open source games are video games people have created where the code can be viewed, copied, and altered by anyone for their learning or experimental purposes. They are almost always free games. Games and software can be similar in a way that both are collections of rules. Just as software is a set of rules that determines what is and isn’t possibly for users to do with a computer program. A game is a set of rules the defines what players can and cannot do while in pursuit of a goal.
In open source software anyone can modify and enhance its source code because it was made publicly available by it’s creators. Open source games are games that players can adapt to fit their preferences. The open nature of these games allow players to build on the creator’s ideas. They can add anything they have the knowledge to code, they can remove any part of the game the dislike, or even add more levels or features.
Every modern digital game has something called a game engine. It is a collection of software tools that game designers user to make the video games by manipulating the sounds, the on-screen graphics, the game world’s ‘physics’, and everything else the players see when they play the game. Using the game engine programmers can create games for the specific devices players own. The source code for some of these engines are open. Meaning programmers are free to study, modify, and improve it for the game designers that want to use it.
Digital games also use hardware, the physical devices people use to play games. Some gaming hardware is ‘closed source’ or ‘proprietary’. Meaning some manufactures prevent players from modifying their gaming hardware. However other hardware is open source. Manufacturers of open gaming hardware encourage players to examine and tinker with their devices if they are curious about how they might improve them. Other gaming device creators have open-sourced the designs for their devices so that others can learn from and even manufacture them.
Digital games involve artwork in the form of graphics icons, world scenery, and depictions of characters and creators that players see when playing these games. These graphical elements of these games are a form of intellectual property. They belong exclusively to the person or group that created them. In recent years, some artists have begun licensing their graphics so game designers can incorporate those graphics into their own games without fear of breaking copyright laws.
Open source principles don’t only apply to digital games. Some people who design non-digital games like board and card games can also do so according to open source principles. For example some game designers will release their materials under ‘Creative Commons licenses’ so players can download, copy, and modify them. Designers may do this because they feel it makes discovering their games easier. Potential players are more likely to try unfamiliar games if they can access and acquire the materials they to play those games easily, or if they are able to receive copies of the games from friend who recommend them. It also helps promote their games’ life span. They feel that players who can freely share game materials are more likely to continue playing those games in the future and recommend them to others. Occasionally game creators use crowdsourcing to help them improve their games. They can make their game design processes transparent so that players can help shape their game’s final forms. Designing a game involves play testing by having the game played by potential buyers and have them provide constructive criticism. Designers who make games tend to have their game play tested as much as possibly before finalizing their designs. By opening the design process, creators can more easily gather a large group of play testers which helps sharpen the game quicker than if the product was designed in secret.
Some games themselves actually encourage open source tools or principles. Some games make changing the rules a fundamental part of playing those games. Fluxx created by Looney Labs, is a a card game in which the game’s rules change every time someone takes a turn. Games like Fluxx encourage people to think of rules as fluid in the same way open source code, the rules that govern how people can use their computers, is flexible.
Although unfortunately in video gaming, there is a small number of sharing of code between companies. And if it is shared, it is generally licensed rather than made open source. Comparing web developers to indie game developers, if you want to make a website you can choose from a multitude of open source frameworks, each which has a wide range of free and well-documented add-ons and modifications. But if you want to make a video game, you will have to buy a license to one of the major game engines, like Unity or Unreal, and if you are to use for example, a script for lighting, you have to buy it through a DRM-protected asset store. It is not very developer friendly experience, which is one reason why many indie game dev choose to make game mods instead.
So why isn’t there a lot of open source video games? You should remember that before free and open source software in the general tech industry was a thing, proprietary licenses were common like in the gaming industry now. Open source products took a coordinated movement, winning over first enthusiastic developers, and then the companies where they worked, for the industry as a whole to go open source. A major way open source won was by convincing programmers, which made tech companies to adopt open source as part of their strategy to attract talent. But a similar push for open source didn’t succeed in gaming. Perhaps because game developers are a fairly separate community from the rest of tech. A more likely explanation is that programmers in startups are free to choose the tools they like the best, whereas in game studios, the opinion of artists, animators, and designers counts for just as much — which makes it much harder for them to switch toolchains.
Nowadays, computer graphics are now rising in importance. Video games created a market for GPUs and graphics software, which have now developed to the point where the technology has applications beyond gaming. The most obvious example is in Virtual Reality / Augmented Reality. Which has the potential to be a successor to mobile as a major general purpose computing platform. Computer graphics is also finding new applications in AI, in building simulators to train models for autonomy and smart objects.
Because computer graphics is now the foundation for a number of important platforms, it is now necessary for graphics programmers to share their code. The first reason is simple functionality, as the fewer layers in the stack that are open source, the more of a problem you have with bugs. Closed-source game engines have as much of a problem with bugs as Windows did. The second reason graphics programmers now need to share their code is that open source lowers the barriers to entry, which encourages much-needed experimentation.
The web has always been full of DIY creativity, and it wouldn’t have been possible without open standards and free software. So for virtual reality and augmented reality to flourish, graphics programming needs to escape the studio model. Game engines are like the operating systems for VR, and without an open source foundation, there is a danger that the software will be too buggy to do the hardware justice. More importantly, without open source code, it is harder for developers to contribute. The use cases of virtual reality are not well-understood, and if VR experiences can only be created by well-funded teams, we will miss out on the talents of indie developers, whose imagination will help the technology realize its full potential.
Open source is a good thing. Some software has source code that only the person, team, or organization who created it maintains exclusive control over it. This kind of software is “proprietary” or “closed source” software. Open source software is development methodology where anyone can inspect, modify, and enhance the source code. The term “open source” refers to something people can modify and share because its design is publicly accessible. The term originated in the context of software development to designate this specific type of software.
Free Software != Freeware
In the early days of computing, Richard Stallman started a movement where programmers and developers shared their code in order to learn from each other and evolve the field of computing. Known as free software. However, open source software is different than free software. By free software, I don’t mean free of cost, but rather the freedom the owner receives by owning software. Users are free to do what they want with their software. This principle states people should be able to redistribute the software free of charge, or sell it, or charge for related services. The two terms describe almost the same category of software, but they stand for slightly different things.
According to the free software movement’s leader, Richard Stallman, the main difference is it lets others know about what one’s goals are: “Open source is a development methodology; free software is a social movement.” Still, there is a huge similarity between open source software and free software.
What if software could make money and be available to modify?
Eventually the free software notion moved to the way side of commercialization of software in the years 1970-1980. In 1997, Eric Raymond published a book called The Cathedral and the Bazaar. Closed source is like the building of a cathedral; central planning, tight organization and one process from start to finish. The open source bazaar is more like “a great babbling bazaar of differing agendas and approaches out of which a coherent and stable system could seemingly emerge only by a succession of miracles.” This prompted Netscape to be released as free software. This source code became the basis behind Mozilla Firefox and Thunderbird along with various other big pieces of software. Netscape’s act prompted Raymond and others to look into how to bring the Free Software Foundation’s free software ideas and benefits to the commercial software industry.
The new term they chose was “open source”, which was soon adopted by a large portion of the programming community, including Linux overlord and creator Linus Torvalds among others. The Open Source Initiative was founded in February 1998 to encourage use of the new term and open source principles. Several open source software licenses have been created thanks to this organization. The most popular example is the GNU General Public License, which “allows free distribution under the condition that further developments and applications are put under the same license” in other words, open source software stays open source under this license.
What is best thing about open source software?
It costs way less. A 2008 report by the Standish Group states that adoption of open-source software models has resulted in savings of about $60 billion per year to consumers. Marketing and logistical services cost less as well. Open source development approach has helped produce reliable, high quality software quickly and inexpensively. People love this aspect, but there are also tons of other good reasons to develop like this.
Open source software is more secure as the code is accessible to everyone. Code being continuously analyzed by a large community so anyone can fix bugs as they are found. In some cases, users don’t even have to wait for the next release. Open source is not dependent on the company or author that originally created it, which offers the potential for a more flexible technology and quicker innovation.
The companies using open-source software also don’t have to think about complex licensing models and don’t need anti-piracy measures like product activation or serial number as they’re generally free of charge. Open source software can be sold and used commercially, commercial open source applications have actually been a part of the software industry for some time, but commercialization or funding of open source software projects can be challenging if you don’t know what you’re doing.
Unlike proprietary software that comes with restrictive licenses, open source software is usually distributed freely, through the web and in physical media. Actually, much of the Internet runs on open source software tools and utilities such as Linux, Apache, MySQL, and PHP, known as the LAMP stack for web servers.
It inspires coders differently
Authors are motivated by pride and peer recognition along with a love for the product rather than a development plan supplied by the marketing department. Most want to use the software themselves. This isn’t as common for commercial software. There can be several authors working in parallel, so the best solution can be chosen instead of only one solution being created at a time (typical for a commercial product). Open source software is also usually easier to obtain than proprietary software, often resulting in increased usage.
It’s not uncommon for software vendors to apply a number of tactics to trick their customers to stick with their closed source product unwillingly. Typical tactics include moving to allegedly new and improved file formats. (which require the new and improved software to read them). They also withdraw support and bug fixes for older versions after a short period. This is known as vendor lock-in.
Another chief advantage of open source software is that it frees you from vendor lock-in. In fact, “freedom from vendor lock-in” ranked as the number one reason to adopt open source software in the 2011 and 2012 Future of Open Source surveys. In the 2013 survey, “freedom from vendor lock-in” was number two, beaten by “better quality software”.
What about the disadvantages?
You’re still locked in with open source software, just not to the vendor. The app is what locks you in with open source. After you’ve opted for an open source app, it’s up to you to provide ongoing maintenance, upgrades and troubleshooting, as well as any needed end-user support. You’re now the software vendor. This isn’t necessarily a bad thing though.
Another main disadvantage of open-source software is it can often not be easy to use. Linux or another open source OS cannot be mastered in a day. They require effort and possibly training to really grasp it. Most of the world tends to use Microsoft Office and Windows. Schools and other businesses feel under pressure to stick to the ‘industry standard’ software, which isn’t open source. Customers won’t desire change or upgrade products that work well enough to suit their needs. If a software supplier can establish a virtual monopoly and then force upgrades onto its customers they can make big bucks.
There’s also issues with unclear development process, the late defect discovery and the lack of any empirical evidence. In terms of security, open source may allow hackers to know about the weaknesses or loopholes of the software more easily. Open source software can be seen as good or bad for the security of the product.
People fighting for open source
There are quite a number of charitable organizations supporting the open source software movement. Richard Stallman was the founder of the free software movement. Eric Raymond inspired the open source movement. Some of the more prominent organizations involved include the Apache Software Foundation (creators of the Apache web server) and the Linux Foundation, a nonprofit by Linus Torvalds.
Prime examples of successful open source products are the Apache HTTP Server, internet browsers Mozilla Firefox and Chromium (Google Chrome Jr.) and the full office suite LibreOffice. One of the most successful open source products is the GNU/Linux operating system. Linux also led to the creation of the ever-popular Android mobile operating system.
Where open source didn’t work
Diaspora is a free personal web server that implements a social networking service. Installations of the software form nodes (called “pods”) which make up the Diaspora social network. The group received crowdfunding to the tune of $200,000 via Kickstarter. They released a consumer alpha version on 23 November 2010. By August of 2012, after a ton of delays, the creators and stepped down from the project and let the community take over.
That’s not to blame the fact it was open source, sometimes good ideas just don’t pan out. The battle was lost before they even began. The difficulty of actually executing a project of this magnitude left a team of four young kids with little real-world programming experience in too deep. The first release in 2010 was a disaster, mainly for its bugs and security holes. Former fans dismissed it as “swiss cheese.” Diaspora struggled, the original funding ran out, and venture capital interest disappeared fast. On November 12th 2011, one of the founders, was found dead and shortly after the rest of the founders stepped down from the project.
There are tons of examples of open source projects both doing well and not so well. Open source software is everywhere today. I think it’s a good thing. Why shouldn’t people be able to see what’s going on under the hood of a product they own or use? This doesn’t apply to certain technologies or services where privacy is of the utmost importance or if there’s another valid reason to not show code, but there’s no reason I shouldn’t be able check the source code of most things I installed or use on my computer.
It’s like saying I shouldn’t be able to open the hood on my car to check out my engine. (or whatever car people do, I’m a programmer not a mechanic). It’s good for the tech community to help evolve the world of computing. It’s how we can continue to innovate everything that’s good in the world.
I got my first taste of UIT at the first UIT High School Hackathon where my friend and I attended to hopefully create our first app! When we got there I was put in a group with the rest of Glace Bay High School students and partnered with Carol Louie as a group mentor. Carol recommended that we make a Flappy Bird like game. By the end of that hackathon we made a lovely Flabby Bird knockoff called My First Trip to France, which consisted of a nose called Pete McSmells flying through the streets of Paris dodging giant pillars of cheese. If you don’t believe me, Carol Louie has a video demo still on her website here.
One year later a second UIT High School Hackathon comes around and I was sure that I wasn’t going to miss it. The next year had a smaller group of people but it was just as fun. And since it was during my grade 12 year, I was sure I was going to attend UIT after I was finished with high school. So I got to see Gavin Uhma again, I got to meet the current staff of UIT, and even saw the newly renovated UIT classroom and lounge.
Attending the UIT Hackathons really got me interested in learning about code and how ‘easy’ it is to create a mock-up of any popular mobile game. It made me want to learn how to create my own mobile games and it was a great introduction for me to programming. One team during a hackathon used Scratch to create their mobile game, which seems like a great way to begin game development. Not only has these hackathons brought me into the programming world, it helped me meet some great new friends with very similar interests. Hackathons are even a great team building exercise because it forces everyone to work together.
I think anyone who has the opportunity should attend a hackathon. It may make you nervous if it’s your first time, but really it’s just a fun activity. You can meet new people and either get an introduction to programming or show off your skills to everyone. Not to mention there are always great prizes. And even if you don’t accomplish much compared to the other team, it’s really just for a fun, non-competitive, learning experience.
A big dream of mine right now is to become a video game developer. Mostly just because I like playing video games and having a job that is related to video games in any way is a win in my book. While that dream may take a lot of personal connections, hard work, and luck to achieve. If I were to actually live it, the very first step would probably be to create a mobile game. And thanks to the hackathon, I’ve got that step already started. I definitely look forward to any future hackathons to test my new skills and also hopefully start making some more mobile games because I think making that was quite fun.
Hackathons are a blast, and something I personally enjoy. However it always causes confusion when I try to explain them to people who aren’t really in the Tech Scene. Most people imagine a group of people with sunglasses and trench coats sitting in a circle typing furiously and then shouting “I’m in!”.
I’ve only been really into coding since I started university so that is where my Hackathon experience starts. However I did have some Hackathon like experiences before university.
Coding Before University
Before I was in university I was only coding in small amounts of C++ and Java. Unfortunately my school didn’t offer anything in terms of coding courses. I also never heard of any opportunities to attend hackathons. The closest thing to a hackathon I participated in was me and two friends attempting to make a video game. Which resolved several long days huddled around laptops in a basement coding furiously (It didn’t help none of us knew what we were doing).
I’m sure there were hackathons happening locally before I went to University, However, I didn’t really attend any until University Hackathons
Hackathons during University
While I was in university I attended hackathons every now and then. At that time I was mostly coding in Java. Java is not super conducive for doing work at a Hackathon. Between compile times and the work required to even have a basic UI (Swing is a terrible terrible thing.) it slows you down.
Most of the hackathons I attended were weekend long events where everyone either stayed late or crashed on the floor. Usually they involved pizza and beer. Those were pretty wild events, very few resulted in victory but they were always fun. One hackathon resulted in a simulation of plants that existed over multiple generations. There was even a few text based RPG’s and Adventures of varying complexity.
Hackathons at UIT
We did two hackathons at UIT which were both amazingly fun experiences. The first was a fun halloween exercise which gave us a fun opportunity to work together. At that point we were all pretty early on in our learning process and most of the webpage my team built was simply jQuery.
The second was recent where I got a chance to team up with Bobby and Andrew, who I hadn’t worked with before. At this point we were all further in our learning and we were able to create some pretty hilarious webapps. This time around we ended up using React, Express, and all sorts of packages there was a clear upgrade in the Hackathon projects.
There were a great chance to work together to practice cooperation and make something fun.
Hackathons were very intimidating to me where I was first deciding to go. I expected that everyone there would be expert coders. That me as a first year would know nothing and not contribute. However that is rarely the case and more often then not hackathons are a great opportunity to hone your skills in a fast paced and sometimes chaotic environment.
I will continue to take part in Hackathons when I get the chance, and would really like to see a hackathon scene like in Halifax. Where just every few weeks you can find one to attend.