Development Environment

Setting up a predictable development environment.


Integrated Development Environment (IDE)

An IDE provides the following features:

  • Autocompletion
  • Automatically formats code
  • Checks if code is syntactically correct
  • Warnings about styles and types

  • VS Code : Recommended

  • PyCharm : Plug and play
  • Neovim : Configurable, complicated
  • 'distributions' : nvchad, astrovim, lazyvim

Be sure to install the appropriate plugins for python/R language support.


Windows vs Mac vs Linux

NOTE: Windows users: Please install windows subsystem for linux (WSL)


Differences in operating system affect the tools available on each.

Linux and Mac have a lot in common, as both originated from Unix. Windows however is quite different.

- Linux Mac Windows
Security root user (sudo) root user (sudo) Admin privileges (Run as administrator)
Paths /usr/home/john/... /Users/john/... C:\...
Console terminal (bash/fish) terminal (bash) powershell
Package manager apt (debian) brew .
Configuration Environment variables Environment variables Registry

Upon installing WSL, the table looks like this:

- Linux Mac Windows
Security root user (sudo) root user (sudo) root user (sudo)
Paths /usr/home/john/... /Users/john/... /usr/home/john/...
Console terminal (bash/fish) terminal (bash/fish) terminal (bash/fish)
Package manager apt (debian) brew scoop
Configuration Environment variables Environment variables Environment variables

Thus, it is highly recommended that WSL be used, as this allows use of standardized scripts.


For a deeper look, the typical architecture of a laptop/desktop computer is:

computer-layers

TODO