Skip to content

Instantly share code, notes, and snippets.

@peteristhegreat
Last active July 5, 2025 04:06
Show Gist options
  • Save peteristhegreat/5a42ca1dc89846fb3bb91c36ca8d88ca to your computer and use it in GitHub Desktop.
Save peteristhegreat/5a42ca1dc89846fb3bb91c36ca8d88ca to your computer and use it in GitHub Desktop.
How do you setup a programming language and run it?

IDE

Examples

Qt Creator

Compiler/Linker

You take your .cxx and your .hxx files (.c/.h or .cpp/.hpp/.h) and build them to .o files aka object files. Then all the object files get linked together into an executable.

g++ -c hello.cpp
g++ hello.exe hello.o
hello.exe

Linking is also required for using other people's libraries that need to be linked into your executable.

Examples

  • g++
  • gcc
  • gxx
  • msvc
  • mingw
  • clang

Build Kit

Manages larger dependency trees to speed up compile times and help with complex deployments. Also if there are additional steps to do while compiling and linking or after linking, they can be done by the build kit. CMake is a really popular one.

Examples

  • make (Makefile, .makefile)
  • CMake
  • qmake (.pro)
  • qubes
  • msvc (.vcxproj)

IDE

Integrated Development Environment

A fancy text editor. Notepad will work, too.

Features

  • Syntax Highlighting - make it show up in fancy colors
  • Linting - show obvious mistakes from some rules of the language
  • Compile/Run buttons - runs a commandline program + arguments to do something with your text file
  • Debug button - runs a commandline program + arguments to watch for crashes and breakpoints in your script or program

Examples

  • Eclipse
  • Intelli-j
  • Android Studio

JRE

Java Runtime Environment

This is the minimum amount of tooling to read and run the java compile output.

Java SDK

Java Software Development Kit

This is the tooling to a take a .java text file, and compile it into one or more .class files, and link it all together in to a .jar file.

Build Kits

Gradle, Ant, Maven, TomCat

This is more tooling for making bundles of certain kinds of java programs. It is usually another layer of automation or deployments above the compile/build/link steps of the Java SDK. Sometimes for pulling down extra modules and libraries that are dependencies, only building new pieces, etc.

I just want to run Minecraft

Download a working JRE from OpenJDK with the right version, install it on your computer, run the java executable pointing at your server.jar file.

But I want to run Spigot or BungeCord

It might require building the tooling from source. That requires a JDK to compile the .java files. Download the right JDK from OpenJDK with the right version, install it on your compputer, run the java executable command with flags to build your server.jar file.

Language Name

Javascript (.js)

sort of trademarked by Oracle to get more money

ECMAscript (.js)

official language spec for the last several years

Typescript (.ts)

A meta language that compiles to javascript that enforces type stability a bunch.

npx ts-node hello.ts

node

This is the commandline, headless version of javascript, for running javascript outside a browser, like server side javascript.

node hello.js

IDE

Examples

  • Web Storm
  • VSCode
  • Pulsar
  • Brackets

Package Manager

npm

Node Package Manager

This is how you install dependencies. It works off of a file package.json, or you can install individual packages with:

npm install some-package

Better than npm

Examples

  • yarn - developed by Facebook, threaded npm, faster
  • pnpm - uses symlinks to install to a machine global store, easier to share modules across projects and reload from a broken node-modules setup
npm install -g pnpm
pnpm install some-package

npm run

Frequently used to bundle some scripts related to a javascript project.

npm run dev   # starts up a webserver on localhost:3000
npm run build # checks the linter and runs webpack or similar

Versions of Node

nvm

Node Version Manager

Install a newer version of node, and manage multiple installs of node.

nvm install v20
nvm use v20
nvm list

npx

Download and run a javascript file with node as if it was a binary.

Python 2 or 3

Python 2

Python 2.7 had a long run and was sunsetted in 2019.

Python 3

Python 3.x is the defacto standard. Python 3.10+ is pretty standard. Most of the time the latest langauge features are not needed for your project you are running, but at least python 3.8+.

Some installs don't call python 3.x python, but call it python3 so it won't collide with an install of python 2 on the system.

IDE

Integrated Development Environment

Examples

  • Spyder
  • Idle
  • VSCode + python extension
  • PyCharm
  • PyScripter
  • Pulsar + python extension

Package Manager

Examples

  • pip (pip3)
  • wheel

VENV

Virtual Environment

# python -m venv path-to-install-to
python -m venv venv
venv/bin/activate
pip install numpy

You make a sandbox to have a bunch of python modules installed into.

Alternatives

  • Conda
  • Poetry

Egg

init.py

IronPython

.pyc

setup.py

PyInstaller, Py2Exe

How do I run or launch a python file or a python project?

Check it out from github or put the text in a text file. Save it as a .py file if needed, such as run.py.

python run.py

If it has extra modules that need to be installed with it, put the modules into your global environment or into a virtual enviroment.

python -v venv venv
venv/bin/activate
pip install -r requirements.txt
python run.py
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment