3 Platforms
3.1 Cross-platform principles
The details differ across operating systems, but the broad goals stay the same:
- keep the base system stable
- install developer tools through clear package channels
- prefer documented setup over ad hoc clicking
- know where configuration files live
- avoid unnecessary administrative complexity
3.2 macOS
macOS offers a strong Unix-like environment with broad support for scientific tools. A practical baseline includes:
- Xcode Command Line Tools for compilers and developer utilities
- Homebrew for package management
- iTerm2 or Terminal for shell work
- Visual Studio Code, Zed, or another serious editor
Strategically, macOS is often the smoothest path for people who want Unix-style workflows with minimal friction. The main tradeoffs are cost, hardware repairability, and occasional tension between vendor security controls and low-level toolchains.
3.3 Windows
Windows can support excellent scientific computing workflows when approached deliberately. The key decision is whether to work:
- primarily in PowerShell
- primarily in Windows Subsystem for Linux
- through mixed Windows and Linux-native tools
For many researchers, WSL provides the best bridge to the broader Unix and Python/R ecosystem. That said, native Windows tools remain important for Office-heavy environments, institutional software, and some GIS or modeling packages.
3.4 Linux
Linux gives the most direct access to Unix-style workflows and fine-grained system control. It is especially strong for:
- server-side work
- high performance computing access
- scripting-heavy workflows
- reproducible package management
Its main challenge is not capability but support burden. You gain control, but you also take more responsibility for compatibility, drivers, hardware configuration, and troubleshooting.
3.5 A practical decision rule
Choose the platform that minimizes friction for your real constraints:
- institutional requirements
- software dependencies
- collaboration needs
- comfort with system maintenance
- hardware budget
If you are starting fresh and want the most generally teachable path, a Unix-like shell environment is the strongest foundation. That can mean macOS, Linux, or Windows with WSL.
3.6 Standardize where it matters
In a mixed-platform lab, aim for consistency in:
- directory conventions
- shell commands where possible
- version control workflows
- project structure
- data storage patterns
- backup and retention rules
That consistency matters more than forcing identical machines.