Another Standard Model
Back in 2004 I summarized the new Standard Model of computing. I was taught its predecessor, which included:
- a character-oriented editor (usually Vi or Emacs);
- C (which mutated into C++);
- Unix command-line tools like
catandgrep; - lines of text as a data exchange format;
- Make for task automation;
- CVS for version control; and
- “power tools” like Yacc and Awk for more complex tasks.
By 2004, that had become:
- Eclipse and its many plugins for editing;
- Java;
- XML as a data exchange format;
- Ant for building and JUnit for testing;
- reflection and things it enabled, like JavaBeans; and
- an online project dashboard that includes a ticket manager and a searchable mailing list archive.
So what’s in the standard model of the early 2020s? Based on my experience over the last four years, my first stab is:
- Python and a relational database (SQLite or Postgres);
- HTTP and JSON for data exchange;
- JavaScript and a front-end framework (e.g., React);
- Docker and [name of cloud goes here] for deployment;
- Slack for communication;
- Git for version control;
- GitHub as a project dashboard;
- GitHub again for linting and testing; and
- Stack Overflow as an external brainspace expander.
Lots of substitutions are obviously possible, like Mongo instead of a relational database or Linear instead of GitHub for issues, but I think this is the baseline against which variations are defined. If I’ve missed anything or included anything that you think people don’t now take for granted, please let me know.
Categories:
open-source, technical-writing