Skip to content
View AMDphreak's full-sized avatar
:octocat:
:octocat:

Block or report AMDphreak

Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
AMDphreak/README.md

Hey, babe, I fork on the first date and commit to main.

Developer Learning material

Rules for programmers

Systems programming

  • Do not use C for systems programming. All variables in C exist in a global namespace, which means all libraries have to know what other libraries use for variable names. C has no namespaces or module system. C requires header files, which are annoying. C's common libraries are full of horribly-named constants and functions.
  • Use D instead of C. D improves on C by introducing advanced data types and higher-level abstraction of functions, as well as automatic memory management via a garbage collector, which can be disabled if you really need to remove the GC for performance or memory size reasons in embedded systems like a firmware. C vs D: https://gemini.google.com/share/bdba47f19258
  • Or use Rust. Ideally, we would be rewriting all core operating system userland code in D lang, however Rust has captured the public attention. Certain features from Rust's toolchain are excellent ideas that need to be incorporated into D lang, however D lang already has safe D which is a similar idea for enforcing memory-safe practices in critical system-level tooling.

Scientific and numerical computing

  • Julia and D lang vs Java
    • Do not use Java. Their ecosystem of tools is confusing, even if the language is organized. One of their language features (annotations) is heavily abused by frameworks, which makes it feel horrible to use.
    • Use Julia, not Python, for scientific and numerical computing, data science, and artificial intelligence. Python is slow and has stupid design choices in the language that make it difficult to rectify one library's design assumptions against another library that you may be using. Julia is clean and fast.

Application programming

System Scripting

  • Do not use Python. See above. Python was originally made to "bridge the gap between C and shell scripting" (Guido van Rossum, creator of Python). It accomplished this but introduced several poor design choices: everything is an object, including each number. The number 1 is an object. Python cannot be compiled normally. It has to bundle the Python runtime with the code using pyinstaller. Python's runtime is massive, so this results in poor loading performance, on top of the slow execution performance.
  • Use D lang for applications that need a clean syntax like Python and high-level abstractions/facilities while also interactiong with the system (userland tools).

Mathematical Specification Programming is math. Learn Lisp and then Haskell if you want to develop programs in a highly performant language that is based on Lambda calculus.

Pinned Loading

  1. connectome-filesystem connectome-filesystem Public

    Modern graph-based flat filesystem

  2. transcoder-suite transcoder-suite Public

    Modular, playbook-driven video transcoding system for PowerShell 7. Optimized for high-quality archival and batch processing.

    PowerShell

  3. FoodTruckNerds/docs FoodTruckNerds/docs Public

    FTN team's internal documentation

  4. the-dev-center/antora-dark-theme the-dev-center/antora-dark-theme Public

    Dark mode supplemental UI theme for Antora documentation sites

    CSS 1

  5. the-dev-center/antora-themes-site the-dev-center/antora-themes-site Public

    TypeScript