AMDphreak - Overview

Skip to content

Navigation Menu

Sign in

Appearance settings

View AMDphreak's full-sized avatar

:octocat:

Ryan Johnson AMDphreak

:octocat:

Block or report AMDphreak

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 interacting 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. Modern graph-based flat filesystem

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

    PowerShell

  3. FTN team's internal documentation

    CSS

  4. Dark UI theme for Antora documentation sites. npm and UI bundle.

    CSS 1

  5. Antora Themes Gallery. User and admin documentation.

    TypeScript