Re:Javascript Hero: Change Computer History Forever
by drhayes9 on Friday October 28, 2011 @08:45PM
(#3170685)
This. A thousand times this.
I was talking to a friend of mine about the "Digital Dark Ages." He didn't believe me that we were unable to view data that we had sitting around on computers anymore; one of my prime examples was computer games from the 80s that relied on bugs in the hardware to run. I'm glad that emulators exist to be provide that service.
But, man, being able to say, "Yeah, here's the URL to the gist of Choplifter," would be something completely different. The level of accessibility provided by the World's Largest Runtime (tm) would be unreal.
Re:Javascript Hero: Change Computer History Forever
by cpeterso on Friday October 28, 2011 @08:59PM
(#3170720)
If ASCII is the universal, forward-compatible data format, is JavaScript to become the universal runtime environment?
Every layer of software builds upon the lower software (and hardware) layers (and bugs). It's like a Jenga tower of dependencies. It would be nice if some middle layers could be excised/refactored to simplify our technology stack.
Re:Javascript Hero: Change Computer History Forever
by mechanical_fish on Friday October 28, 2011 @09:37PM
(#3170793)
If we took out the Javascript layer we'd be down to C, right? We've had emulators written in portable C for nigh on twenty years. Where's the challenge in that? ;)
The advantage of JS as a runtime environment is that it's got the most extensive cross-platform app ecosystem in the world, with a lot of eyeballs on it. Every new difference that arises between the behavior of a JS engine and that of its peers is greeted by a hundred thousand screams from the mouths of a hundred thousand web developers.
Plus, I believe the pain required to get your app to run in all the popular JS engines is mild when you compare it to the ins and outs of cross-platform C libraries.
Re:Javascript Hero: Change Computer History Forever
by MostAwesomeDude on Saturday October 29, 2011 @01:01AM
(#3171163)
Actually, no, beneath the JS layer is the browser, which is a massive wall of architecture-independent C++ with its own graphics abstractions and high-level constructs. You'd need to drop another level or three to reach the C layer.
I dare you to actually try SDL sometime; it is far less pain than doing browser work in JS.
Re:Javascript Hero: Change Computer History Forever
by nknight on Saturday October 29, 2011 @02:54AM
(#3171374)
If the premise is ASCII, JavaScript cannot be the result.
ASCII is intensely simple and, for its intended purpose, very close to perfect. JavaScript is... not.
JavaScript is, at best, the most common language used for today's GUI applications. It and its "toolkit" (the DOM and HTML) need a lot of work, particularly wart removal, if they're going to have the timelessness of ASCII or its successor (UTF-8).
Re:Javascript Hero: Change Computer History Forever
by rictic on Saturday October 29, 2011 @07:47PM
(#3173162)
Javascript is beautiful and far simpler than most languages it resembles on the surface, but it is far from perfect.
Fortunately there are many serious efforts at improving the language almost all of which compile down to today's javascript for backwards compatibility.
Re:Javascript Hero: Change Computer History Forever
by nknight on Saturday October 29, 2011 @05:02PM
(#3172800)
Brendan Eich would seem to disagree[1], as would, well, everyone else I've ever heard talk about JS, so I'm not sure from whence you draw that rather remarkable assertion.
It may or may not meet your particular needs, but that has very little relationship to its perfection.
Re:Javascript Hero: Change Computer History Forever
by Natsu on Saturday October 29, 2011 @01:42AM
(#3171238)
There's actually a fair amount of old hardware out there even still, but you're right that it won't last forever. Heck, there's an 8088 hiding under my bed, complete with math coprocessor, full RAM, CGA adapter (and monitor) and even a dot-matrix printer.
One of these days, I should find out if it still works or not.
Re:Javascript Hero: Change Computer History Forever
by textfiles on Friday October 28, 2011 @07:37PM
(#3170531)
Jason here, who wrote that weblog entry. Quick comments.
- Yes, it is difficult in some ways. Easy in others.
- Emscripten is very likely to be involved.
- It will run slow for some things. That's fine. Things get faster.
- Yes, this is really important.
Re:Javascript Hero: Change Computer History Forever
by daeken on Friday October 28, 2011 @10:07PM
(#3170847)
I've been working on a port of my IronBabel framework (universal emulator platform) to JS for a couple months whenever I can spare a few minutes. Designing it properly has been a challenge, but the goal is that any computer can be emulated using it. The focus is on simplicity and handling common tasks, e.g. generic memory mapping, JIT code caching, etc.
From here, what I'd love to do is this: develop emulators for common platforms in the clearest way possible (no optimizations -- that can be separate) and simultaneously document the hell out of older platforms. In the end, you'd theoretically have a repository comprised of a set of documentation and a set of "reference emulators".
It wouldn't be fast, but it'd preserve these platforms effectively forever.
Re:Javascript Hero: Change Computer History Forever
by mechanical_fish on Friday October 28, 2011 @09:22PM
(#3170763)
Let's be fair: The old green-screen monitors had much larger font sizes. Maybe that was less harsh. Also, I had younger eyes. ;)
Does anyone have an actual Apple II green-screen display (40 or 80 columns, 24 rows) emulated in Javascript to share with us? I found an Apple II emulator but it only plays games.
Re:Javascript Hero: Change Computer History Forever
by daeken on Friday October 28, 2011 @10:02PM
(#3170839)
The shapes on old green-screen monitors were also significantly softer, which I believe helped readability as well. Small, sharp green text on a black background is just killer on the eyes.
Re:Javascript Hero: Change Computer History Forever
by nknight on Saturday October 29, 2011 @02:07AM
(#3171293)
What's your OS?
OS X defaults to much softer font rendering than most systems, and Windows/Linux can be tweaked (try googling for things like "OS X style font" or "soft font rendering" with the name of your OS tacked on)
I was talking to a friend of mine about the "Digital Dark Ages." He didn't believe me that we were unable to view data that we had sitting around on computers anymore; one of my prime examples was computer games from the 80s that relied on bugs in the hardware to run. I'm glad that emulators exist to be provide that service.
But, man, being able to say, "Yeah, here's the URL to the gist of Choplifter," would be something completely different. The level of accessibility provided by the World's Largest Runtime (tm) would be unreal.
Every layer of software builds upon the lower software (and hardware) layers (and bugs). It's like a Jenga tower of dependencies. It would be nice if some middle layers could be excised/refactored to simplify our technology stack.
The advantage of JS as a runtime environment is that it's got the most extensive cross-platform app ecosystem in the world, with a lot of eyeballs on it. Every new difference that arises between the behavior of a JS engine and that of its peers is greeted by a hundred thousand screams from the mouths of a hundred thousand web developers.
Plus, I believe the pain required to get your app to run in all the popular JS engines is mild when you compare it to the ins and outs of cross-platform C libraries.
I dare you to actually try SDL sometime; it is far less pain than doing browser work in JS.
ASCII is intensely simple and, for its intended purpose, very close to perfect. JavaScript is... not.
JavaScript is, at best, the most common language used for today's GUI applications. It and its "toolkit" (the DOM and HTML) need a lot of work, particularly wart removal, if they're going to have the timelessness of ASCII or its successor (UTF-8).
Fortunately there are many serious efforts at improving the language almost all of which compile down to today's javascript for backwards compatibility.
It may or may not meet your particular needs, but that has very little relationship to its perfection.
[1] http://brendaneich.com/2005/06/javascript-1-2-and-in-between...
One of these days, I should find out if it still works or not.
- Yes, it is difficult in some ways. Easy in others. - Emscripten is very likely to be involved. - It will run slow for some things. That's fine. Things get faster. - Yes, this is really important.
I'm at [email protected] if people want to work on it.
From here, what I'd love to do is this: develop emulators for common platforms in the clearest way possible (no optimizations -- that can be separate) and simultaneously document the hell out of older platforms. In the end, you'd theoretically have a repository comprised of a set of documentation and a set of "reference emulators".
It wouldn't be fast, but it'd preserve these platforms effectively forever.
My lawn: get off of it.
Does anyone have an actual Apple II green-screen display (40 or 80 columns, 24 rows) emulated in Javascript to share with us? I found an Apple II emulator but it only plays games.
OS X defaults to much softer font rendering than most systems, and Windows/Linux can be tweaked (try googling for things like "OS X style font" or "soft font rendering" with the name of your OS tacked on)
The bookmarklet will make it (and other sites) easy to read.
http://www.readability.com/articles/s15uh64p