views:

1285

answers:

21

I once built a very good web application in ASP (classic) back in 2001 and extensively used XmlHttpRequest object in it. (I was lucky that the clients were only using IE, and only IE supported this object at that time).

Then later when people started talking about AJAX in 2005, It felt good to have used something ahead (or early) of its time.

Well, maybe this does not qualify to be listed as something done ahead of its time.

Which programming technology/technique/practice have you done that was ahead of this time.
One story per answer please.

The title for this question taken from an opposite question here.

+2  A: 

AJAX has been around longer than the buzzword. It was originally called Javascript callback.

Chris Ballance
Yes, it been there since MS launched IE 5.0(check the links in the question). And please move ur answer as a comment on the question.
Binoj Antony
@Shawn, really? please explain.
Chris Ballance
Answers should be used to answer the question, rather than comment on it.
justinhj
+1  A: 

I helped optimize a web application around 2002 before the "AJAX" buzzword. The main goal was to reduce roundtrips to the server.

We were still supporting Netscape 4 at the the time. Essentially, I built a javascript library which stored settings in an object client side and changes were posted back to the server asynchronously via an invisible frame.

It involved lots of docuemnt.write. Thankfully things are SO much easier now.

Mark Renouf
+10  A: 

In 1999 I set up a site using a frameset which contained a main content frame and a hidden "UI updater". In this hidden frame I placed a site that refreshed regularly via the http-equiv meta tag, sending a session ID to the server that way and getting back data that I merged back in to the main frame's DOM. Using this I could implement chat like messaging between members and update information on the fly without the user having to reload a page. This even worked across browsers and was way before AJAX. When AJAX become known as a "Web 2.0" thing, I smiled a little, because it was old news to my users already.

Daniel Schneller
Pics or it didn't happen!!! (errr... what was the page, sorry)
DFectuoso
www.wiec.deThat seems to be all that's left of it: http://web.archive.org/web/20020824110501/http://www.wiec.de/mainPage.aspOn the left you can see a "Derzeit (currently) online" panel, which was updated in the way I described.
Daniel Schneller
I did something similar in 2001 using plain asp and javascript :)
Albert
+2  A: 

Well, back in the late 90ies I was thinking about separating my web apps into logic and views (and also did that). While of course the concept of MVC was already quite old back then it seems to me now that it wasn't really in wide use at least for webapps (it was more about mixing everything in a webpage).

But it was a sort of crappy implementation anyway and was abandoned at some point. I then jumped onto the Zope train, where it at first wasn't so much about that separation. This came later again with the advent of views and the component architecture in Zope3 and now I am actually sort of back to the root with a very pure MVC framework called repoze.bfg.

MrTopf
+3  A: 

Since 2006 I'm using self implemented (and still improving) concept of futures for asynchronous programming. Combined with C# delegate/lambda syntax it allows you to produce a very elegant code.

Michael Damatov
so since 2006 your using a concept introduced in 1977 to be ahead of your time? This stuff is confusing.
simon
You are right, the stuff is really old, however, there no standard implementation in the BCL. .NET 4.0 includes futures, promises, lazy initialization, and lots of other interesting stuff.
Michael Damatov
+3  A: 

'98-'99 I read a document about Smart SMS for Nokias high-end mobile phones. Thought it looked fun and wrote some small apps for Palm PDA to send pictures and ringtones to the phones though SMS. I released my software for free. I couldn't imagine later there would be an industry charging over 1 USD per message...

epatel
+2  A: 

In 1987 I attended a presentation on a new way of writing code called 'object oriented programming' (we were writing FORTRAN code at the time). The only response I can remember was "it would be great for writing Adventure type games'. Unfortunately we didn't pick up on this for many years.

DJClayworth
If you look at the most common languages for writing Adventure-type games (at http://www.ifarchive.org), you'll find that you were right.
David Thornley
Just think, near enough exactly 20 years after the introduction of OOP (simula 67)
simon
+3  A: 

All of these may or may not be officially ahead of time, but there was nothing I'd encountered previously or available commercially for the right requirements at that point

I tried to write a form of hyperlinking in a diary/database type program (blog-esque, I suppose!) on the ZX81/ZXSpectrum. I can't recall if I got it 100% working....

Test Driven Development with test harnesses back in 1988 at uni.

OO in Vb4 (using code generators I wrote).

ORM tools (that I wrote) in '96.

Continuous intergration (checkout, build, check, test, make msi, publish to network, check back in) in VB6/VSS environment (again we wrote it) in 2000. [some elements e.g DailyBuild were in place at that time, but nothing to do it all, or the concept of the whole process in the VB arena].

Passing + using function pointers - just about forever back to when I was a kid doing assembler....

and what would now be called Agile development in '95.

kpollock
+1  A: 

Not me, but my boyfriend at uni wrote a program to do predictive text back in '88. Never imagined there would be much use for it outside of computers for disabled people...

kpollock
+40  A: 

Everything I wrote that I thought was ahead of its time, I later found out was invented by Xerox PARC in the 70s.

Joe
lol - probably true for me too! Or BT...
kpollock
How dare you, sir! Everyone knows Steve Jobs invented the GUI. Pure coincidence that Xerox PARC showed him everything they'd been doing for decades.
MusiGenesis
+1  A: 

I did similar with XmlHttpObject, but it was grossly insecure and not cross-browser compatible. Still. More recently, I found myself writing code to take classes that followed various conventions, including a few attributes, and render completely functional 0-code web forms and grids based on that.
A few months later, ASP.NET Dynamic Data came out and copied me =). One of my attributes was even named UIHint. Again, smarter people did a better job.

Daniel
+3  A: 

I did a Mapquest/Google Maps type application in 1980. Type in an address, display a map - zoom in or out, pan side to side or up and down. It was only for one city, although there was map data available for many others; disk capacity was a big problem back then.

Mark Ransom
I'd love to see a screenshot!
Christopher
Back then, a screenshot meant pulling out a camera and taking a picture. I don't think we took any pictures of that application, although I do have a print of another application done with the same hardware.
Mark Ransom
+1  A: 

First job I had in 1987 they had been using a custom meta-data driven UI approach for several years. WPF is finally catching up (although in my opinion, poorly).

Jeff Kotula
+1  A: 

Back in 2000 for a school project I started working on a system where anybody could post messages about jobs/events/classified with a really simple layout ( craigslist ). We called it Web-Post-It.

jfar
+1  A: 

When I first learnt web development with classic ASP, I was quickly frustrated with the spaghetti style of meshing ASP code with HTML markup; that was simply a style of coding that I could not reconcile with.

I converted nearly everything into a function written in another code-only .asp file, so the markup look something like

<div>
 <%
   render_dropdown(parameter, parameter, parameter...)
   render_table_data(parameter, parameter, parameter...)
 %>
</div>

It was only after ASP.NET was released did I realise what I had essentially done in the past was writting "Server controls" in the limited ASP manner.

icelava
I did something in PHP like this, I have a single function that generates the entire <html> to </head> tags using loops and code stored in a database. Most people would consider it ugly and improperly designed for an OOP situation, but it looks so beautiful to me and is bassically one function to rule them all. It even tabs the code to make it pretty. Now I only did this least year, obviously nothing groundbreaking, but I just though it was interesting and worth sharing.
teh_noob
Charles Carroll (aspfriends) had a utility belt that had helpers that did exactly this.
Binoj Antony
Same thing here. Once I finally "got it", man did it make things easier.
Allbite
+3  A: 

In 1985 we realized that we got much more correct code written while pair programming. To some extent that could be blamed on the machine code monitor on the C64 we were using at the time...

Jonas Elfström
+3  A: 

Back in 1997, I worked at one of the original webhosts. I was tinkering with this new "Javascript" language, and I made a webpage such that it reopened itself on close. On the company employee listing I put a link to this horrible page off my 'about me' page, with the link being an image that read in big letters "Don't Push This Button". At the time, Netscape was very adamant about following the directions of reopening upon close, so it was pretty difficult to get Windows to stop opening it. I had customers calling to complain that they had to reboot their computer to get my horrible Javascript page to stop opening on close.

Now, I did this page as a joke test of Javascript. Needless to say, I was horrified once companies starting using Javascript in this manner to get their advertisement pages to stay open.

ZacharyP
A: 

In 2000, I wrote a web app that used showModalDialog to achieve AJAX-icity. I would use it to open an ASP page that wrote HTML into the object returned by the modal dialog window. Upon return, I would put this HTML into a SPAN or DIV on the main page, thus changing its contents without reloading. I could even show a progress bar on the modal dialog window (by using Response.Write to add little update script chunks to the page as it was being built).

I would say this was more orthogonal to its time than ahead of its time, since XmlHTTPRequest already did this, sort of.

MusiGenesis
+2  A: 

I read about a feature of the new VAX 11/780 computer. It was called "exceptions", and it allowed a method further down the stack to "throw" an exception that might only be "caught" by one higher on the stack, unwinding the intervening stack frames.

I then implemented something like that to do error handling in an "interactive" (console) program. A subroutine five levels deep could "signal" that it was time to pop back to three levels deep, for instance, based on user input.

This was written in COBOL on a DECSystem-20, about 1978 or so.

John Saunders
+3  A: 

Damn, this question hurts :-{

  • Timesharing on a minicomputer. Delivered 4 User system on Data General Nova #3 in 1970.
  • Designed and implemented a 16-bit minicomputer with virtual memory (1973) plus all the dev sofware needed to support it. Tried to talk Western Digital into making a chip out it; they couldn't see the idea at the time. (3 years later WD was making PDP-11 chips, no VM).
  • Bit-mapped raster-scan computer graphics terminal (see picture in 1978 Byte magazine); except for CPU and block of RAM for raster display, implemented entirely in software. Even the dynamic RAM refresh was done in software using the horizontal sync pulse as an interrupt. Tried to talk 24x80 CRT vendors into making this; they couldn't see the idea at the time. (All those vendors are dead now). Bitter lesson: those folks at the top of today's market just can't see next generation technology.
  • Distributed general-purpose OS (1978) running on 8 bit computers; IBM PCs came along and wiped out the hardware.
  • PARLANSE multi-core parallel progamming language (1997, currently in use in next item in this list). Intel didn't bother with serious multicore systems until 2008.
  • DMS Software Reengineering Toolkit, (starting in 1997) a system for automating changes to code. People still seem to want to do mass change by hand. Now in use for commercial activities; read about B2 Stealth Bomber migration using DMS. I keep working on DMS, due to the bitter lesson :-{ Then again, maybe it just me that's nuts.
Ira Baxter
Wait, WHAT?! ITS was on the PDP-6 and PDP-10 in the '60s. You delivered timesharing on a minicomputer in 1970. This was ahead of its time? (I'm deliberately ignoring CTSS and DTSS since you'd likely argue that these were on small mainframes, not minicomputers.)
JUST MY correct OPINION
ITS and Multics were earlier, true. Not by a lot. I worked on a PDP-10 timesharing system several years *after* the DataGeneral systems were delivered. The first DG system operated in 8K words of 16 bits with 128b hard disk.
Ira Baxter
I think just that you were programming ahead of my birth warrants an up-vote.
Allbite
+1  A: 

Back in the early '80s as a programming project I used techniques from fractal geometry to compress data mostly as a performance improvement to sending digital imagery across the wire where it was ok to be lossy and pipes were 300 baud.

Of course, I didn't come up with the concept because I don't have four brains stuffed into my one head (bowing to Mandelbrot and Barnsley), but it was back in the day when those concepts were known only to those in a small dark corner probably before anyone had patents. Well, or foreign to anyone who did not read The Fractal Geometry of Nature I guess.

And then later people are wearing Mandelbrot Set hats and shirts and... uughhh they don't know the power they are playing with! :-)

Those were the days. Coding on a terminal with no monitor, and then frantically debugging for about 3 minutes during television commercials -- swapping the t.v. to being a monitor while the family was watching something. Ah, the indiscretions of youth.

Allbite