Mike Kohn writes about hobby projects in microcontrollers, retro consoles, assemblers, and running Java on old hardware.
HN links it for Java Grinder, which translates a subset of Java bytecode to machine code for platforms like the Amiga, Sega Genesis, and C64.
Any specific area?
Grace Hopper via Cobol, C programming language, unix, bsd, telnet, uucp/news groups/email, xerox alto, Allan Kay via smalltalk, linux, sequel/postgres, gmail/aol/yahoo, AI (chatgpt), video/hardware emulation with or/without VM layer[3]. software defined radio, open broadcaster software[0], etc.
SpaceX spacecraft total software control panel[1] (vs. apollo phsycial wired switches/buttons )
snarky-> spacex 'soft/flexibile' space suit. Does this snarky concept open the way to 'soft' 3d printed stuff, as long as it's "wearable"?[2] aka astronaut carrying compressed soft origami chair/table.
[0] obs : https://obsproject.com/
[1] : https://news.ycombinator.com/item?id=27115372
[2] : risc-v on FPGA : https://news.ycombinator.com/item?id=39050580
[3] : https://www.mikekohn.net/micro/riscv_fpga.php
Why not just start with some embedded development then?
8-bit PIC and AVR microcontrollers have very simple instruction sets and can be connected to simple I/O devices like switches and LEDs, but they both use Harvard architectures, so you have different address spaces for code and data. The newer 32-bit PIC micros use a MIPS core, but the development tools aren't very open, despite being based on GCC.
The 16-bit MSP430 is fairly simple, has good open-source development tools, cheap development hardware (check out the Launchpad), and a more conventional von-Neumann architecture. Check out some of Michael Kohn's sample code for the msp430 assembler he wrote:
http://www.mikekohn.net/micro/naken430asm_msp430_assembler.php
More information and example output here: http://www.mikekohn.net/micro/java_grinder.php
Note that it's just a subset of the bytecode spec (no GC, objects, virtual methods) but might be a nice way to get up to speed on a CPU architecture. I used the SDCC C compiler similarly to learn Z80.
There's also javagrinder https://www.mikekohn.net/micro/java_grinder.php which can run some java code on the TI-99/4a, C64, and Sega Genesis by translation of java class files to equivalent platform machine code.
Well, there was also Java on Amiga project:
https://www.mikekohn.net/micro/amiga_java.php
Java on Sega Genesis/MegaDrive: https://www.mikekohn.net/micro/sega_genesis_java.php