Hacker News new | ask | show | jobs
by bullen 968 days ago
I'm just as OCD about changes as the next competent programmer, but when it comes to say Starcraft, which is a beautiful one person creation (like most software that reaches a large audience for a long time) it now makes me uneasy as the tables are switching fast underneath.

Emulating X86 on ARM/Risc-V is an abstraction tree I don't want to climb f.ex.

Wine hides that power consumption.

It's a false sense of security.

3 comments

Why not? Emulation is a beautiful thing. It makes one realize that CPU instructions are just another form of abstraction. Providing the old APIs/ecosystem is usually harder than just emulating the binary.

And running old software on modern hardware often uses only a fraction of the power the old hardware used to need. If one cares about power consumption, modern software has become so much worse.

Well, if you include the power to get to the modern hardware: no; then you are indebted forever by running Starcraft on emulation.

We often discount progress as obvious because we never paid the price of photosynthesis for millions of years before our tiny part in existence.

My problem is specifically getting to the consensus we have today, we were too slow, 6502 (8) freed humans 1982-85, 68000 (16) and ARM-1 (32) came 1985. So we had the instructions (in both senses) for the final hardware then.

40 years, and X trillion barrels of oil, later we are still in complete hardware and software confusion.

64-bit is a big mistake, because nothing scales to infinity; and since nothing is free, we are about to pay the price now!

Indebted to the past and the future to max!

I say roll back to C and Java and rebuild from there on Risc-V (even if it has 128-bit addressing, in case you run out of your 18.4 exabytes 64-bit RAM/disk).

But it might already be too late.

You should try working in embedded software; it has all the C code and 32-bit addresses you could ever wish for.
I would if they made micro controllers that had better hot-reload.

Also would need more cores, SRAM and some OpenGL ES GPU! ;)

C is crap that only exists because it has always existed. Why would you want to reboot the world on C? And why java as the only alternative rather than something more different?

>64-bit is a big mistake, because nothing scales to infinity; and since nothing is free, we are about to pay the price now!

What?

> but when it comes to say Starcraft, which is a beautiful one person creation

Wait, huh? Are we thinking of the same Starcraft? Is there a different program or utility with the same name as the videogame? Because the videogame was absolutely not a single-person creation.

There was a bunch of side people. But the main engine was one dude.
With all due respect to Bob Fitch, I think you're overly romanticizing here. He wasn't starting from absolute zero. He was heavily refactoring the existing engine and bringing in improvements from the Diablo engine, which was being finished up at the same time.

It's still a very impressive technical achievement to rewrite a game engine like that, I just don't think it qualifies as "finished software" in the way this thread intends that phrase to mean...

edit: in fairness your post wasn't talking about finished software per se; I still feel it's inaccurate to call starcraft.exe a one-person creation.

yeah, Blizzard made it. I used to hang out with him in #vb6
I understand your feeling: I have a vague uneasy feeling when I see DOSbox or other emulations running. It is a great achievement to allow legacy software to remain alive and executable... But still it seems fake. Nothing to do with the real software running on real antique hardware.
Pretty irrational honestly. The input and output devices make more of a difference than digital software being emulated or not. I'd rather play old arcade games in an emulator connected to a CRT arcade monitor than real arcade PCBs connected to an LCD using some scaler. The former is going to be a more authentic experience.
I think it's related to latency. There is no way to fake low latency and for that you often need the complete chain of hardware.

I'm the opposite to you though, rather have an original C64 on modern capture (low latency GV-USB2) and (S)NES classic controller input.