blog

SPO600 Lab 1 - Microsoft TypeScript and the Linux Kernel

Microsoft TypeScript

TypeScript is a language for application-scale JavaScript. TypeScript adds optional types, classes, and modules to JavaScript. TypeScript supports tools for large-scale JavaScript applications for any browser, for any host, on any OS. TypeScript compiles to readable, standards-based JavaScript. License: Apache 2.0 Procedure: GitHub Patch: https://github.com/Microsoft/TypeScript/pull/18284 Number of people involved: 3 Role of people involved: Members and Contributors. All of them seem to work at Microsoft. Duration of process: 1 day Responsiveness from participants: The participation was very active, and the process was quickly finished. Issues discussed and solved: Order of parameters in a function - the chosen alternative kept the previous order, in order to avoid parsing errors; and guarding against "undefined" values - one contributor thought it was already being done, but it turned out to be necessary.

Linux Kernel

The Linux kernel is a monolithic Unix-like computer operating system kernel. License: GNU Procedure: Mailing List Patch: rtlwifi: Fix memory leak when firmware request fails Number of people involved: 4 Role of people involved: Contributors, and members of the Linux Foundation Duration of process: Around 2 months Responsiveness from participants: The participants were fairly responsive, but sometimes it could take them more than three weeks to respond to the thread. Issues discussed and solved: This patch did not seem to have significant issues. One participant asked if anyone had any reasons not to approve the patch, but no one opposed to it.

Linux Kernel x Microsoft TypeScript

Without a doubt, contributions to Microsoft's TypeScript are much quicker and friendlier than to the Linux Kernel - The "mailing list" style used by the Linux Foundation seems very outdated and complex. However, it is important to consider the size and complexity of both projects. The TypeScript community is fairly large, but there not that many pull requests and updates per day. For this reason, GitHub is a great platform for submitting changes. The mailing list for updates on Linux, on the other hand, generates hundreds of emails per day, and has strict guidelines and hierarchy - these rules cannot be followed with GitHub. From what I learned, I think the current model for the TypeScript works well: it is organized, friendly, and effective. The Linux Community also has an effective and organized model, but seems to lack in user friendliness - although the mailing archive can be very entertaining to read.