Skip to content

Latest commit

 

History

History
executable file
·
249 lines (199 loc) · 10.3 KB

languages.md

File metadata and controls

executable file
·
249 lines (199 loc) · 10.3 KB

Languages

Static languages

Systems level languages

  • The case for a modern language (part 1)

    • C is less than perfect
    • as with many things #BSD even when thay do something that is obviously better than Linux it just never really gets adopted there

    • the fact that libc looks and feels very much like it was hacked together by a bunch of random dudes over the course of a few decades rather than being designed. Which is, of course, exactly what happened.

    • I have some other complaints about C that revolve around the lack of any kind of official error handling strategy, the issue of null in general, etc

    • but what it really comes down to is that if we keep the language we should at the very least modernize libc and standardize the other tooling around the language somewhat.

  • C

  • Rust

  • Nim

  • Zig

Learn Online

  • Codewars - Browser based challenges
  • freecodecamp
    • JavaScript challenges in browser
    • (other langauges with multiple choice and videos)
  • Khan Academy
    • Whole computing course
    • JS in browser

Other Languages

Other Language Domains

smalltalk

Live coding in browser (?)

  • caffeine.js.org
    • Caffeine is a livecoding environment for web browsers, Node.js, and WebAssembly. After adding it to a webpage, you can use it to make live persistent changes to that page and other pages running Caffeine, without reloading.

Esoteric

  • A Brief Introduction to Esoteric Languages
    • Brainfuck (turing complete - obtuse)
    • Piet (executable image)
  • orca
    • designed to create procedural sequencers in which each letter of the alphabet is an operation, where lowercase letters operate on bang, uppercase letters operate each frame.
    • The application is not a synthesiser, but a flexible livecoding environment capable of sending MIDI, OSC & UDP to your audio interface, like Ableton, Renoise, VCV Rack or SuperCollider.
  • J
    • Loopless code
  • Ballerina: a Data-Oriented Programming Language

Number systems

Python has "abstract" number system

Java, Golang, C are all based on x86 Overflow Modulo operator does not support negative

Javascript (which should be abstract, but was heavily designed in an era of systems performance requirements) uses x86 modulo operator (which does not work with negative numbers)

Performance