Appendix 3 - Programming Languages #
|
|
Why hello,
If you’ve found this page, it’s likely your curiosity is getting the better of you and you’re killing time gawking at the weird syntax and features of a variety of languages. I know I have been guilty of doing so.
This page is meant to give you a taste, not a full list. There’s so many niche languages, esolangs, and outright jokes gone to far (like emojicode) to possibly make this list exhaustive.
This also means it’s quite possible your favorite language isn’t here. Depending on how esoteric it is, it may not even be on pldb or Awesome Programming Languages, in which case, congrats, you’ve truly found something strange.
Still though, you may be here just to get a better idea of the answer to the questions all people learning their first language begin to wonder:
- What do the other languages do that the one I’m using doesn’t?
- Why have all these languages instead of one do-it-all language everyone uses
Well, those are big questions, and hopefully as you browse this page you’ll begin to understand, but in general the answers are
- Nothing - but it can make some things a whole hell of a lot easier.
- Different logical representations making solving different problems easier
Before we look at each language though I want to get your brain in the right receptive place, so please enjoy these links first:
- https://esoteric.codes
- Object Oriented Programming is Bad (Brian Will)
- 0-based vs. 1-based indexing (Hisham Hm)
- Stop Writing Dead Programs (YouTube)
- https://cs.lmu.edu/~ray/notes/syntaxdesign/
- Microfeatures I’d like to see in more languages (Hillel Wayne)
Now let’s actually see what each language has to offer.
Low Level #
- Assembly
- C
- C++
- Zig
- Rust
- LLVM IR
- Nim
- MicroPython/CircuitPython
Mid Level #
- Red
- D
- Odin
High Level #
- Java
- Kotlin
- JS
- CoffeeScript
- TypeScript
- PHP
- Dart
- Hack
- Ruby
- Perl
- Raku
- Python
- Haxe
- Go
- Crystal
- C#
- F#
- Swift
- WebAssembly
- Noulith
Old #
- Forth
- Cobol
- Fortran
- Pascal
- BASIC
- Objective-C
- APL
Scripting #
- Lua
- Moonscript
- AHK
- Tasker
- Cyber
- Wren
Shell #
- CMD.exe
- Powershell
- Bash
- ZSH
- Fish
- Xonsh
- Elvish
- C Shell (tcsh)
- Murex
- Nu Shell
- Hilbish
Visual #
- Pure-Data
- vvvv
- tooll.io
- Node-Red
- n8n
Domain Specific #
- Vult
- VHDL
- Verilog
- Scallop
- Matlab
- Wolfram Language
Esoteric #
Graphics Programming #
look to Chapter 19: Shaders + GpGPU for programming involving graphics, including node based shader editors, general purpose computation on the GPU, and more. As for languages, this includes, GLSL, HLSL, Futhark, and a few others. There are, many, many other graphics languages depending on the platform though.
Functional Programming #
Look at Chapter 21: (((())(()((()(())))))) for Functional Programming. You’ll probably want to look into Lisp, Haskell, and Futhark. There’s a nice tutorial for Haskell programming if you want to learn more.
- Haskell
- Lisp
- Janet
- Racket
- Unison
- Roc
- Koka
- Futhark
Database #
Look at Chapter 39: Databases for information on Databases, including languages like SQL