While at work today, the topic of scripting vs. programming came up, and one person said that javascript wasn't really programming. It's just scripting. The idea was that just from the language used, you could determine if something was a program or not. My reaction was, Javascript is as much a language as any other programming language. You can write anything in any programming language for the most part. The example I gave was one of my favourite examples of crazy programming, DHTML Lemmings. Basically, it's the old Lemmings game, rewritten in JavaScript. And I don't mean fancy new HTML5 with canvas JavaScript, I mean raw JavaScript manipulating the DOM in order to make things look animated. You know, Javascript from the day when we still used the term "DHTML".
This got me thinking of other masochistic progams I've run into over the years. Mostly, it's just a list of projects where people have done things not because they are practical, but just because they can. Just for the challenge. What follows is a list of my favorites. Just go and explore with the links provided and with Google, to really get an idea of what these people are doing.
DHTML Lemmings: All that is needed to be said is said above. Completely awesome.
C64 Emulator in SilverLight: That's right. A Commodore 64 emulator written in Silverlight. Usually stuff like this is programmed in C, because it's the only language that is close enough to the hardware, to actually emulate other hardware. But, just to prove you can do it, somebody wrote a C64 emulator in a high level, only semi-compiled (compiled to MSIL) language. Check out the video of this in action.
Pure CSS Menus: Drop down menus coded entirely in CSS, with absolutely no Javascript. So, this isn't really coding, because CSS isn't Turing Complete, but it's a pretty nifty trick. Personally, I think it goes a little far. You can pretty much depend on users having Javacript enabled, at least a lot more so than you can count on them having a browser with enough CSS ability for the menus to function correctly, and even if they don't have Javacript, you can fail gracefully. If you Google around, you can find quite a few other examples.
The Whitespace Programming Language: This is, to put it simply, a programming language in which all the characters are white space. Basically [Tab],[Space], and [Enter] are the only valid characters. Everything else is ignored. Bascially, the opposite of most other languages, where the white space is mostly just thrown own. While I couldn't find any particularly useful whitespace programs, it's a cool project none the less.
TI-86 games: Big list of games that runs on the TI-86 calculator. I had tons of fun playing these games in university. My favourite was Tetris, which could be played in 2 player mode by linking 2 calculators together with the included link cable. Defintely a lot of fun. And the games were probably a lot harder to program than the equivalent on most other platforms.
So, that's my list. Please include any other links to equally crazy programs that you may have come across. I would appreciate seeing some other ones.