If you define hacking as gaining access to scarce compute resources, then yes, hacking is dead because compute scarcity is dead . If you define hacking as controlling your computer hardware at the lowest level, then hacking is dead because no-one wants to write device drivers . If you define hacking as *making the lights blink in interesting ways"[1] then hacking is incredibly, richly, and totally alive! You can make…
Your first 3 points reassembles too much to embedded programming + electronics. And no, there is not just a few or no-one of them: it's an entire industry. I do it all day long and I don't feel like I'm hacking if I know and understand what I am doing. You don't need to necessarily code to hack. You can hack with just electronics. Perhaps you are too inclined to java or upper layers of abstraction.
Just like particle physicists aren't the only real scientists because their objects are the smallest ones, low-level programming (and FPGA/electronics work) isn't the only kind of hacking. People hacking genes with CRISPR are still hackers even though there are also people hacking the smaller components (at several levels of zoom) of those systems.
Look, personally I want really clean memory layouts and elegant lead routing, simple causal chains, and open, verifiable designs in hardware. Even without that I would like to understand DRAM refresh protocols, Bluetooth, USB, and every detail of how PCI works. It's not that I don't want to, it's that I don't have time. (And honestly it's such a mess "down there" I'd really like someone to clean it up before I get in there.)
Re Java: after using Python+MyPy I've never appreciated Java more. I've read the JVM spec and the language spec more than once; I'm sort of a "JVM hacker", if you will. I will happily edit a class file with a hex editor to achieve an effect. It's a simplified machine that is fully specified; it's a kind of opinionated VM that, unlike it's Xen counterparts, attempts to jettison some of the annoying stuff from real machines. Also ironically, Java was originally intended for embedded systems.