Open Source is a software available for free in which the users are able to read, add to, and modify the code. It was first invented by the Scandinavian hacker Linus Torvald. In a blog Torvald wrote “I’m doing a (free) operating system (just a hobby, won’t be big and professional like gnu) for 386(486) AT clones.” which grew into a mainstream operating system called LINUX.
Linus Torvald
It is a social movement that supports the use of open source licences among some or all software. It was started by the programmers who believed that the codes and software should be available for free for public use. The open source project publish all the source codes on the Internet under licence that allows free redistribution and contribution. Free software and access to open source codes would advance computer science at an exponential rate.
Open source software has a lot of advantages. First of all it is free to use and share. It Minimizes computer bugs and computer security risk. It quickly eliminates the problems because a lot of people analyze the codes and try to spot, and fix some glitches and bugs as soon as they occur. The open source software is not dependent on any company and it doesn’t require complex licences. This is beneficial for new analytic start-up companies as they don’t have to worry about the legal issues of analytic programs they using throughout an office building.
The disadvantage of open source software is that it is not regulated or protected. Some users who access the source code might not have enough knowledge to modified it but still try to do it. Some other users can easily infect malware and harm other users. Another problem can occur when somebody removes the package that you based all your project on. There is nobody you could address this problem to.
The Differences Between Proprietary and Open Source Software
| Open Software | Proprietary Software |
|---|---|
| Purchase with its code source | Purchased without its source code |
| User can get open software for free of charge | User must pay to get the proprietary software |
| Users can modify the software | Users cannot modify the software |
| Users can install software freely into any computer | User must have a license from vendor before installing into computer |
| No one is responsible to the software | Full support from vendor if anything happened to the software |
Open source software is available to use, modify and distribute for free. It is used by individuals as well as companies. People who create the open source software have to invest a lot of effort to write or fix the codes. They surely love programming but there is also a number of ways to make a living out of coding:
- Open support and services - one method is to provide a service with the open source software:
- compiled binaries
- maintenance services
- lectures and workshops
- Self instructional material - The developer of a package is also the expert of this package, they can offer the software for free but if the software is complicated or popular, they might offer paid educational materials:
- Documentation (PDF files, books, etc)
- Tutorials and examples
- Paid Plugins and Enhancements - The developer can offer only half of the software for free use or can add paid extensions to the basic software:
- paid extensions
- enterprise versions
- R is an example of this method
- Source corporate sponsors - Some companies might want to hire the inventor of a genius software to work in their company or to create a special software exclusively for the company.
The users and programmers create packages for open source software which makes programming easier and more comfortable. The number of packages changes everyday and it grows rapidly. For example the number of packages for R is currently 11344, they are available in the CRAN database.
CRAN Packages Overtime - Creating an R graph using “ggplot2”.
The data used to create the data frame “packs” and a graph was derive from this link
num_pack<- c(100, 300, 700, 1300, 2050, 3500, 5000, 11300)
years<- c(2002, 2004, 2006, 2008, 2010, 2012, 2014, 2016)
packs= data.frame(years, num_pack)
packs
## years num_pack
## 1 2002 100
## 2 2004 300
## 3 2006 700
## 4 2008 1300
## 5 2010 2050
## 6 2012 3500
## 7 2014 5000
## 8 2016 11300
#install.packages("ggplot2") #to create graphs
library(ggplot2)
ggplot(packs, aes(x=years, y=num_pack)) + geom_point() + geom_line() + labs(x="Years",y="Number of Packages", title="CRAN Packages Overtime")
This graph shows the sharp increase of R pakages on CRAN over the past 15 years! It has increased from 100 packages to over 11,000. It is amazing what people will think of next.