- a programming language with a strong expressive type system
- functional programming
- correct by construction, easy to use, hard to misuse Matt Godbolt
- enforced resource management
- behavioral driven design (BDD; aka TDD but at the behavioral level)
- Scala is an expressive, scalable, and safe high level language.
- Rust is an expressive, safe, systems level language
| High school computer lab has TRS-80 III computers that we used to learn operating system and computer science concepts with MS Basic. |
|
My first computer purchase was a TRS-80 Color Computer I in 1982 - 2 years after its introductions.
I made many modifications to the computer over the years. I started with a 16KB ram expansion, then a floppy disk controller with 5 1/4 inch disks.
Followed by soldering in bank selection and additional memory that expanded the capabilities to 512KB. And eventually added a hard drive controller and a 10MB hard drive. This new setup meant other OSes could be booted from the hard drive. This new ability allowed me to move from Color Basic as the OS to OS-9.
I also moved from Basic to Assembler and C as OS-9 offered more tools and applications.
I also wrote an Electrical CAD tool - in C - with limited logic simulations to continue my Electrical Engineering dream. Yes I had glorious aspirations as I moved closer to becoming an electrical and computer engineer.
The hardware and software languages gave me the cross domain knowledge of how hardware and software interact - as in, how to write drivers - the memory page flipping.
I also studied the 8080 / Z80 machine code. But really liked the 68xx processors.
And of course friends with Commodore 64 machines.
This TRS-80 Color computer experience was truly a joy.
Assembly / Assembler taught me the low level workings of a computer. I learned:- registers
- memory management
- program space (.text)
- global/static data space (.data, .bss, .rodata)
- stack space (function call frames, local variables)
- heap space (dynamic memory allocation)
- I/O
- timers
- interrupts
- functions
- control structures
- data structures
- pointers and memory management
- file I/O
- compilation and linking
- modularity and code organization
- portability - even though not leveraged
- standard libraries
- debugging and optimization
- low-level programming
Years later I would build a Pentium 5 machine, explore OS/2, learn Windows 3.0, and lug the gear to friends houses for networking game sessions - Doom, Riot, and others I am not remembering.
Each of us occassionally blutering out something like
- "Where did
???go?" where???was one of Chuck, Dean, Rob, or Terry. - "Who was that?"
from another room. Fun times.






