User-made content is something we are used to seeing on the Internet, especially on social media. In IT, collaborative models make it possible to create or improve apps, tools and programs.

Software is basically a set of computer instructions for electronic devices to perform the tasks they were designed for. They are written in a programming language known as source code. "Software" tends to be associated with computers or smartphones; but most devices at home or in the office have integrated software: televisions, video game consoles, cleaning robots, smartwatches, etc.

You have probably had to call for technical support when a device has stopped working properly. But can you imagine being able to fix it yourself? In the 80s, US programmer Richard Stallman worked in an office where the printer often had paper jams. His colleagues would only notice the problem when  documents sent to the printer hadn’t printed. He decided to modify the printer’s source code so  users would receive an error message to unjam the printer.

When the office replaced the printer, the paper jam problem returned. This time, Stallman was unable to do what he'd done with the previous printer because the manufacturer had restricted its source code. So he started a "free software movement" to give users the freedom to view, modify and distribute source code and adapt it to their needs.

Open source: a collaborative approach

Stallman's case with the printer prompted a large number of coding experts to join forces and develop software that was not owned by anyone but available to whoever wanted to use it, improve it or create new software from its source code. Nowadays, in the digital world, many people have collaborated to design programs.

Many computer and smartphone tools are made with open source software, including Internet browsers, operating systems and applications to perform virtually any type of task — from editing a video to designing a website. Imagine an mobile app for taking pictures. Its first version may have been designed by one person; someone else may have detected and corrected possible errors in it; and a third person could be currently expanding its functions, all because its source code is public and can be modified.

Freeware, free or open source code software: What's the difference?

The answer to this frequently asked question is "yes". There are differences between the three concepts, although sometimes they aren’t so easy to spot.

  • Freeware: Stemming from the printer case mentioned above, the main objective of freeware was to give users the freedom to access source code. While it is often confused with "free of charge", someone can use its public source code to make improvements voluntarily and at no cost, or charge for copies of their new version. Users of freeware with a pull request (a request for new code to be validated and integrated into the project, or PR) are interested in badges, to increase their recognition on GitHub, a popular collaborative development platform. 
     
  • Open source software: A more recent type of code that settles the puzzlement about freeware being free of charge, open source software promotes non-discrimination against people and groups and other values and standards for accessing source code. Because open source software may be used for free or commercial purposes,  the difference between it and freeware is often deemed more philosophical than practical.

  • Free software: this is, without a doubt, the easiest concept to explain. Free software are programs, applications or tools that users can download at no cost. In general, free software does not give access to the source code; therefore, it can’t be modified.

Lastly, unlike open source software, closed-source or proprietary softwarecan only be viewed, copied or edited by its programmers or owners, and sometimes isn't free of charge.  

You might like