Modern Scientific Computing

2.1. Open source campaign and the Linux operating system

In AMAT5315, we choose a open-source stack

Except the Github website, all of the above mentioned software are open-source.

Why open sourcing?

Open source software is software with source code that anyone can inspect, modify, and enhance. Ubuntu, Git (not the Github), Julia and Pluto are all open source software. Open source software are incresingly popular for many reasons, having better control, easier to train programmers, better data security, stability and collaborative community.

Case study 1: Doc and Docx, Linux and Windows Subsystem for Linux (WSL)

Reading: What Is a .DOCX File, and How Is It Different from a .DOC File in Microsoft Word?

Under pressure from the rising competition of the free and open-source Open Office and its competing Open Document Format (ODF), Microsoft pushed for the adoption of an even broader open standard in the early 2000s. This culminated in the development of the DOCX file format, along with its companions like XLSX for spreadsheets and PPTX for presentations.

What is a Linux operating system?

Just like Windows, iOS, and Mac OS, Linux is an operating system. In fact, one of the most popular platforms on the planet, Android, is powered by the Linux operating system. It is free to use, open source, widely used on clusters and good at automating your works. The Ubuntu system is one of the most popular Linux distributions.

Why a scientific computing scientist must learn Linux?

Citing linux statistics,

Open source campaign and Linux

Just like Windows, IOS, and Mac OS, Linux is an operating system. In fact, one of the most popular platforms on the planet, Android, is powered by the Linux operating system. It is free to use, open source, widely used on clusters and good at automating your works. Linux kernel, Linux operating system and Linux distribution are different concepts. A Linux distribution is an operating system made from a software collection that includes the Linux kernel and, often, a package management system

Why not open source from day one?

Tools are important.

DocumentationVersion controlUnit testsReleaseCollaboration
Old daystxt file contained in a zip/isoan office process that recorded the work and managed the versioning taskcapture and replay testing toolsCD-ROMin an office
ModernMarkdown + Github PagesGittest toolkit + continuous integration (with test coverage) built on top of cloud machinesGithubGithub

Version control, also known as source control, is the practice of tracking and managing changes to software code.

Unit tests are typically automated tests written and run by software developers to ensure that a section of an application (known as the "unit") meets its design and behaves as intended.

CC BY-SA 4.0 Jinguo Liu. Last modified: May 30, 2023. Website built with Franklin.jl and the Julia programming language.