Nowadays, the only desktop computer operating system that most people have ever heard of is Microsoft Windows. This has created the perception that knowing how to use a computer means learning how to use MS Windows and MS Office.
This assumption is even reflected in the ICT SSC and HSC syllabus and textbooks in Bangladesh; however, it is not true. The history of the modern software industry is in many ways a story of corporate-controlled software versus the individual creativity of programmers. If the goal is to produce creative programmers, this history should inform our ICT education policy.
Let’s look at the history of the software industry as we now see it. When the American computing corporation IBM introduced its first PC (short for personal computer) in 1981, it was mainly a manufacturer of large, expensive mainframe computers.
However, IBM became convinced that there was a large market for cheaper personal computer hardware. Hence, it developed the IBM PC, which was so popular that almost all PCs after that were based on IBM designs (with the exception of Apple).
Since IBM was mainly interested in selling hardware, it decided not to create its own PC operating system. Instead, it licensed a copy of Microsoft’s operating system for each PC it sold. The success of IBM PCs ultimately made Microsoft the wealthiest and most famous software company in the world.
But parallel to the rise of the PC industry and the Microsoft software empire in the 1980s, a free/open-source software world was developing around the older Unix operating system. The large mainframe computers, which were the main business of IBM, ran Unix. Unix had originally been developed at Bell Labs in the 1970s, and was so popular that it spawned many clones from IBM and others. Unix was designed to run on expensive mainframe computers, and was expensive.
However, in the 1980s, Richard Stallman, a graduate student in Computer Science at the Massachusetts Institute of Technology, became dissatisfied with the restrictions related to software licenses and source code supplied by companies to his computer lab. He believed that as a programmer, he should have the freedom to inspect the source-code of the software he used, and to make any improvements and modifications that he needed.
However, proprietary software licenses prevented anyone except the company that owned the software from viewing and modifying the software source-code.
Therefore, Richard Stallman started a collaborative project to produce a free Unix which he called GNU (short for Gnu’s Not Unix, to distinguish his software from the many proprietary Unix clones). To this end he published the GNU Manifesto in September 1983, requesting other programmers to help him create an operating system. By 1991, the GNU project had completed most of the components required for a free Unix operating system. The only missing piece was the operating system “kernel,” which would interface with the computer hardware.
Fortunately, in August 1991, Linus Torvalds, a computer science student in Finland, used the GNU tools to write a free kernel which he called Linux. Together with the previously developed GNU software, the Linux kernel enabled computer users to run an entirely free operating system. This operating system is usually called Linux, but should properly be called GNU/Linux in recognition of the years of work done by the GNU project prior to the Linux kernel.
Today, most commonly used proprietary software has a free/open source alternative available. For example, GNU/Linux is a free replacement for MS Windows; LibreOffice is a free replacement for MS Office; Mozilla Firefox is a free replacement for MS Internet Explorer; Gimp is a free replacement for Photoshop. The Android phone operating system is a free replacement for Apple’s iOS, and is based on GNU/Linux.
Core to the growing abundance of free/open source software has been the assertion of individual programmers like Richard Stallman and Linus Torvalds that they were not just consumers of software. The free/open source software movement was always about giving members of the public with programming skills the freedom to create their own software.
The “free” in free/open-source software means “liberated” in this context, not just “free of cost.” In the light of the above, what should computer education mean in Bangladesh? It depends on the goal. If the goal is to create a nation with clerical knowledge of office software, then simply teaching MS Windows and MS Office skills are sufficient. The ambitious computer programming syllabus recently made compulsory at HSC level is not required in that case.
However, if the goal of computer education is to create local programmers with the skills to create world-class software, then that education should be entirely conducted using free software like GNU/Linux and LibreOffice.
Free/open source software enables students to inspect the source code of all software on their PC, encourages them to understand how it works, and ultimately allows them to experiment with modifying and improving it. Experimenting with software source code is what creates all great programmers.
Bangladesh is not an exception to that rule.