CS Table 4/26: The left-pad kerfuffle

Recent events in the JavaScript ecosystem have raised serious questions about the appropriate models for code sharing and reuse. In case you missed it, the sequence of events was: (1) JavaScript developer writes many modules, including one called "left-pad" that provides a function to add spaces to the left side of a string, (2) this developer loses control of a different module that used a copyrighted name, (3) developer deletes all of his modules, and (4) thousands of JavaScript applications that depend on left-pad fail.

While this sequence of events was amusing to watch as an outsider, it leads to serious questions about the appropriate size of a shareable unit of code and the practices of centralized software package management services. This topic will also give us an opportunity to discuss the difference in typing disciplines across languages and the role of type systems in building modular, reusable software components.

If you aren't familiar with JavaScript development, the node ecosystem, or the node package manager (npm), the following documentation should give you a sense of how dependencies work in JavaScript. nmp Documentation: What is npm? and npm Documentation: Using a 'package.json.'

There are several short readings for this week:

Computer science table (CS Table) is a weekly meeting of Grinnell College community members (students, faculty, staff, etc.) interested in discussing topics related to computing and computer science. CS Table meets Tuesdays from 12:00-12:45 in JRC 224C. Students on meal plans, faculty, and staff are expected to cover the cost of their meals. Visitors to the College and students not on meal plans can charge their meals to the department.