Bear in mind some languages (Java?) will dictate an effective environment (i.e., IntelliJ debugger) • OS isn’t a hard prerequisite for many authoring options • Even OS-specific dev technologies (see Docker) are going cross-platform (ish) Writing
◦ Distributed development happens via locking ◦ Only relevant pieces checked out Modern Replacements • Git, Mercurial ◦ Server + local components separate ◦ Lightweight branching ◦ Distributed development ◦ De facto OSS winner Source Control
/ IDEs create identical histories; users can collaborate with either • It’s worthwhile to brush up on the data model to avoid major blowups (Google “the git parable”)
command-line tools? ◦ Homebrew, chocolatey, $package_manager • Shell proficiency ◦ Bash is standard, but beefier options are available ◦ Zsh, fish Utilities
version manager ◦ Versions differ significantly, many projects require a specific major version Utilities jenv, sdkman nvm Rvm, rbenv virtualenv stack … ?
but been around a long time ◦ Why are they still relevant? ▪ Lots of data is relational! ◦ SQLite convenient option for local development ◦ Well-documented for self-hosting or hosted (RDS) solutions