4 ms·
As a younger developer, I feel like I would have enjoyed the work of writing code for those sorts of machines more. These days it's just too easy to throw a bun
by asdfman123 7y ago
As a younger developer, I feel like I would have enjoyed the work of writing code for those sorts of machines more. These days it's just too easy to throw a bunch of junk at the wall and seeing what sticks.
I would have loved to be able to slow down, have an incentive to really know my stuff, think through all the possibilities and write out a few lines of beautiful, efficient code.
I suppose I can still do that with discipline -- but it's too easy to lean on the debugger, and even if you want your code to be clean, the codebase you're working on isn't necessarily going to be.
- SilasX 7y agoSorry for the plug, but you can kind of simulate that process in the nand2tetris.org course (also available on Coursera). In that course, you build a computer (through hardware simulators) that can run binary programs. Then you build up a programming toolchain: stack based virtual machine language that compiles to assembly, and a high level language that you compile to the VM language. You also write the assembler that translates your assembly into ones and zeros, which are like the punch cards. So you can simulate what it's like to be writing the binaries: if you take out the compilers, you can go through the process of manually translating your high level code into punchcards. The high-level lines become stack operations, which become assembly commands, which become binary words. (For efficiency reasons, you'd probably program directly in assembly where possible, but you can add on the abstraction levels.)
- asdfman123 7y agoThat sounds like a great course. Plugs are welcome when they benefit the readers -- they're only bad when they only benefit the authors.
- SilasX 7y agoFair enough. I was just worried that HNers might feel that that course gets promoted too much here. (IMHO, nand2tetris deserves that level of promotion! I just recently gave a talk about it for the Austin Python meetup.)
- rorykoehler 7y agoNo one will pay you to slow down unless you’re working on bleeding edge stuff at a very wealthy company
- asdfman123 7y agoNo one will pay you to slow down, but they won't tell you to speed up if they think you're going as fast as you can ;). It's not unethical, because you are working faster. The time you're saving is the kind of hazy future multiplicative time improvements that are supposedly related to the 10x programmer. You're not going slow, you're 10x-ing.
- HeyLaughingBoy 7y agommm. Maybe. I can't say what you'd like, and I never had to use a keypunch, but I did start my career in the Age of the EPROM. I hated having to code, code no worky, unplug EPROM from circuit board, take erased EPROM from eraser and insert into programmer while putting used EPROM into eraser and pressing "ERASE;" taking programmed EPROM and plugging it into ZIF/LIF socket to start the debugging process again. And that was an order of magnitude faster than using punch cards. As soon as EPROM Emulators came on the scene I lobbied for us to buy one. $200 very well spent. If you want to torment yourself and build a Z-80 computer, I have a tube or so of Z-80 CPUs, some EPROMS, a couple tubes of SRAMS and the relevant books. All yours for the price of shipping. Sorry, I threw out the eraser about 20 years ago!