Hacker News new | ask | show | jobs
by linkmotif 2847 days ago
Yeah you’ll never step in the same water twice, but I was born in 85 and I don’t miss 90s hardware much, not even nostalgically. Do you miss 70s hardware? I mean in terms of what you can practically get out of it, not how nice the keys felt. Yeah I missed seeing and learning from a lot of advancement unfold, but progress has been massive and I do enjoy my computer-video-phone global communication device. What an amazing thing to have seen in a lifetime. As a kid I did not expect there to be videophones.

You’re right, my generation definitely missed a lot but I hope some day to work through NAND2Tetris. Furthermore, also I didn’t study CS, but a good CS/EE program would really take you through first steps. No matter what, you can’t keep a book from a scholar. There appear to be many resources to learn this stuff if one has the opportunity. Combine NAND2Tetris with the x86-64 assembly on Ubuntu book I saw here yesterday and you should be golden, right?

4 comments

> Do you miss 70s hardware?

Yes; IBM System 360/370, for example, was a marvel of engineering and design, with a remarkable history [1]; so were the first microprocessors, such as MOS Technology's 6502 [2]. The best part was, you could know all of it, if you wanted, down to the transistor level - the geek's Holy Grail. With modern chips/systems you cannot any longer, not even with the Raspberry Pi.

I wish IBM's revolutionary architecture lived on in our PCs; good engineering pays off, and today's software could be more sane, as people would be learning from the giants rather than wasting time on a massive scale trying to reinvent the wheel.

[1] https://www.amazon.com/IBMs-Early-Systems-History-Computing/...

[2] http://visual6502.org/

Yeah, but the problem is that it takes time. Learning assembly takes time ('cos you need to understand the whole system at the level of machine code : bios calls, memory protections, interrupts, DMA, graphics cards, sound card, I/O,...). Then you have to go up a level into the OS stuff (hello file systems, processes, threading, paging). Then once you get that, you have to learn how a (extreme example) Java VM connects to all of that (welcome GC, optimization, compiler, byte code). then, ah finally, something one can easily understand : Java code :-)

(and don't even start me on WS/rest over HTTS over SSL over IP).

Learning stack by stack, one generation at a time, let us, old gray beards, digest the whole thing. But now, starting from scratch ? Not even with a 10 feet pole.

Yeah it’s not the same but it’s amazing starting from scratch at a new baseline. Every generation of humans has had to do that with everything.

I missed out on all the stuff you mentioned and really want to learn it, but I am grateful that I get to use all this stuff that’s developed. Instead of spending time learning the above listed fundamentals, which would have been revelatory in its own way, I have the opportunity to use Java on Kubernetes to build and operate globally whatever Internet software dream comes to mind. It’s not the end all, and I am crippled by lacking fundamentals, but it’s so much more than before and I am grateful to have the opportunity to have these tools.

Well, admitedly, I don't use all that knowledge at all times. Like many around, I'm super satisfied by being able to write a very complex SQL query knowing that : I won't be constrained by memory, I don't have to think about why the transaction will work, why my connection to the DB will work, how the SQL engine will optimize the damn thing. I just have to contemplate something that it almost business code and produces almost business results.

It's just that I have that warm, reassuring feeeling that if I have to dig down, I'll be able to. Too bad I almost never have to; abstraction works way too good :-)

I'm sure one can be a very good programmer not knowing the assembly stuff behind. And even myself, I don't know exatcly how a CPU works (I mean, I get the logic of it, but I wouldn't be able to make one from scratch) :-)

Well the start of the '90s was still Amiga time, which was the biggest leap in home computing ever but that really happened in the 80's. Then it was followed by the dark ages of PC gaming catching up while people played on dumb consoles.

Around when the Voodoo cards came along (1996?) things got really interesting again. Also about any keyboard that shipped was decent still, Silicon Graphics and Macs (even the beige ones) were really nice looking but expensive machines. Had a SCSI drive hooked up to a PowerBook 1400, that was pretty much as cool as having an external Thunderbolt SSD now.

The ASUS P2B of course was amazingly stable for it's time, however if you had a dual Celeron 300A @450MHz you were really the king. Dial-up modems getting upgraded to T1 lines or cable modems. That was a huge speed boost.

So yes the 90's were nice, but just no comparison to what happened between '77 and '87 (the year the Amiga 500 got introduced).

The way I see many devs on Emacs and vim doing development is hardly any different than when I got to university in early 90's.

They might be using a modern laptop, but their screen is hardly different from those beige UNIX terminals with green phosphor screen and VT100 keyboard that I had to use the first couple of semesters.

Vim/Emacs are local maximas in terms of productive UX, they'll still be here in 20 years. What's different might be the amount of compute those environments control. A keychord or three can easily trigger a big rebuild on a computer somewhere in the network.
I disagree, for me the local maximas in terms of productive UX is the vision of XEROX PARC workstations, partially implemented on OS X/iOS, Android and Windows development workflows.

Even AT&T later moved into it with Plan 9 and Inferno, with ACME.

I did some amount of Android and Windows development; what particular pieces of the PARC vision do you have in mind?
IDE based development, GUI designers, REPLs, graphical debuggers, edit-and-continue, component based frameworks, structured data command line (PowerShell), apis to interact with GUI apps from devenv, dynamic configuration of running apps.

All to be found on Interlisp-D, Smalltalk, Mesa XDE, Mesa/Cedar environments.

> local maxima

Yes - local, very local.