Hacker News new | ask | show | jobs
by reflectiv 2313 days ago
Complex javascript apps just weren't a thing...hell, it took google writing Gmail (2004) to really show everyone that a large SPA using javascript was even possible.

After Gmail...things really started to move in the javascript world...people started to put effort into both the runtimes and the libraries.

11 comments

They really weren't a thing, but they also weren't unheard of. Personally speaking, I started working on a complex JavaScript application (web-based ERP/CRM system) in 2000. While it wasn't an SPA, we designed our pages so you didn't have to leave them to do what you needed to do. For example, a user might stay on one page for a few hours because they're speccing out a project.

Updates were often committed live using remote scripting (A precursor to AJAX) and we did a lot of DOM manipulation to update content in-place. At that time, we targeted IE because Netscape's support for DOM manipulation was abysmal.

While I have to give Gmail credit where it's due, I have to give Firefox the real credit for doing the hard work and finally releasing an alternative to IE that kicked JavaScript into high gear. If Gmail had never happened, it would have only been a matter of time before SPAs were going to become a thing. There were more of us doing it before Gmail than most people realize.

Oh my goodness. Flashbacks to an web app I was coding up for Universal Studios Music Group back in '99. It leveraged Visual Basic DCOM components hosted in Microsoft Transaction Server. I took over the UI from a dev that was extremely behind, and in a week threw together a fancy UI with a pop-up menu and some other asynchronous interaction concepts (later AJAX / REST provided the abstractions to make it easy).

That was a fun, well-paid project with lots of (non-exempt) overtime. Then the .com bubble popped.

Should Microsoft get credit for inventing Ajax and having the first real world functioning example of it?
They do deserve some credit for intentionally introducing that feature to the browser as a standard feature, but the notion of fetching data without reloading the page wasn't novel at all.

That's what Java applets and plugins were for.

I'm also pretty sure they weren't the first to fetch data from the server without reloading, because people were doing all sorts of novel things in the mid-90s with plugins.

The reason it didn't really take off back then wasn't because of vision. It was because there was so little you could do with JavaScript. The browsers were still implementing the basic features and a lot of page/component manipulation was very broken. Applets and plug-ins were so much more capable.

Loading into a hidden or pixel-sized iframe (or ilayer in NS) was a thing before XMLHttpRequest as well. In what would now seem a scary technique, you would use JS to load more JS (plus data, of course) that would put the new data into the iframe's host page.
I used Remote Scripting as well. It was a reliable enough hack that we built a lot of stuff on it. But I don’t think it was intended to be used that way when Netscape released JavaScript in ‘95.
I remember when Java first came out. It seemed like a new and improved C++ and I was intrigued. When it became clear that it was being positioned as purely an applet language I lost all interest.

Then along came Javascript with its transparent attempt to ride the coattails of Java by adopting a similar name. No interest in that either.

You're right that Java was being promoted as a front-end language at first (Sun found a customer for Java), but I'm pretty sure the intent was to generate excitement by finding a killer app and then expand the market from there.

Also, Java applets and JavaScript were added to Netscape 2.0 at the same time and were meant to complement each other, not compete. It may seem like Java came first because JavaScript was called LiveScript for the first three months. I also don't think the JavaScript name change was intended to ride the coattails of Java, rather it was clarify and harmonize its relationship to Java.

I still look back and I'm amazed at how much stuff happened between the summer of '95 and winter '96. Windows 95 release. Netscape went public. 2.0 released 1 month later introducing Java and JavaScript, etc. etc. etc.

Sorry, didn't mean to imply that my reaction was any kind of truth about the situation. I'm just recalling the thoughts I can remember from that time, hoping that they have some relevance.
> The browsers were still implementing the basic features

And they are still doing it. CSS Grid is not even 3 years old.

> Applets and plug-ins were so much more capable.

Except that they couldn’t alter the DOM, or handle events on DOM elements, the two things that developers really needed (even if they didn’t know it).

So the DOM was introduced in 1998, three years after applets and plugins. In 1995, you could write JavaScript code to dynamically render a page on load using document.write, but updating the rendered HTML was another story. Otherwise, JavaScript was limited to very very simple things.

When DHTML was introduced in '97-'98, the only major browser that had a reliable DOM was IE until Firefox came around in 2002. Netscape tried, but it was buggy to the point where there were no real workarounds to the huge gaps in missing functionality.

As far as 1995 was concerned, applets and plugins looked like the future. Honestly, the web was so new and so inferior to other things in 1995 (Macromedia, WYSIWYG tools, etc.), I think most of us saw HTML being replaced in a few years by a richer clients, applets or plugins.

Thats why people wrote Applets. Even if u wanted manipulate the dom (u could), u didnt, because the Applet was so much faster and more feature rich.
What did you need plugins for? Netscape and MSIE both were able to add a script tag to the DOM dynamically, and that was all you needed to build the rest of it.
You were able to use document.write somewhat dynamically, but the not reliably across all the browsers. Even if you did make an RPC call, there wasn't a lot you could do with it presentation wise because DHTML was two years away. (Even then, IE was the only one who had a decent implementation for a number of years after that.)

Plugins and applets filled a huge gap functionality wise.

You must have been before me. NN and MSIE 4 both had what we now call DOM Level 1, in 1997.
in 2004 a guy gave a talk about how they wrote large js apps, probably 1999-2000. they made a sturdy full fledged toolkit with nice prototypes. but at the time everything was in house
That's exactly why we were able to use it. For a while, we were IE only, but then we started to support Firefox (Only because the developers were fans and we started recommending it to users).
Please don't repeat this non-fact. There were plenty of large SPAs before GMail. Oddpost existed 2 years before Gmail

https://en.wikipedia.org/wiki/Oddpost

It also felt more like an app than gmail ever has given it had the "standard" 3 panel look of most desktop email apps (same as most of them do today like Thunderbird/Outlook/Apple's Mail)

And before that Outlook had a browser version that acted like a SPA since 1997.

https://en.wikipedia.org/wiki/Outlook_on_the_web

In fact I'm pretty sure that's why Microsoft introduced XMLHttpRequest

https://en.wikipedia.org/wiki/XMLHttpRequest#History

Outlook Web Access is absolute horseshit compared to OG gmail. Sure, it was JS-driven, but it wasn't good.

The apps you mentioned had nowhere near the impact that Gmail had in terms of showing what was possible

GMail had a massive impact, but I didn't really think it was novel from a technical JS perspective. It was really basic, and loaded fast. It had excellent fast search and very good junk mail rejection.

Most email providers had approximately 100Mb mailbox limit (I can't remember specifically), but Gmail had 1Gb.

To me it was Maps in 2005 that really showcased what JS could do.
It was novel to release gmail at that scale in javascript. It hasn't been done before. 1Gb was a crazy size.

Anybody remember gmail invites?

I remember Gmail invites. Ironically, Evan Williams (formerly of Twitter, now of Medium, at the time working at Google after they bought Blogger) was the person who sent me mine—and on the morning of April 1st, 2004. So I've had a Gmail account since the first day it was publicly available.
Yes, had one from an uncle.

I then realised that I could invite a second account, so I created a handful of accounts and still own them today.

Good times.

I actually got an invite from Google because I was on blogger.com back then (sad to admit it...)

I probably could have picked firstname@gmail.com were it not for the 6 letter minimum, so ended up with firstlast@gmail.com which still yields an absurd amount of messages meant to a variety of other recipients...

Sure, I bought one off ebay for 0.10€ :D
I don't think many people knew about Oddpost, whatever it was, so it seems a bit suspect to say it influenced a lot of developers' perceptions of JavaScript.
As someone who was doing web development at that time (since '96 actually), oddpost did have an impact on perception of JS and what was possible among developers. Yahoo buying them was kind of a big deal at the time, and every developer I knew who was involved in web stuff had seen it or at least heard about it.

The biggest drawback at the time was that it was window/IE only, and when gmail was released, google made an effort to be cross-platform.

IMO, Google's 'big win' wasn't so much showing what JS could do, but that complex JS could be done cross-browser and cross-platform.

Never heard of oddpost, and pretty sure most devs at the time had never either. I do remember Gmail really being a wow moment with respect to Javascript and specifically AJAX though.
As someone who was at Microsoft and had connections in the IE team, I can tell you that Oddpost influenced IE itself, in that the team considered it a pretty novel thing to do with the browser and actually had the Oddpost dev team up to Redmond to pick their brains about how the browser should support these types of apps.
Let’s give credit where it’s due. The first large scale use of AJAX was Microsoft using it in Outlook Mail for the web in 2000.
That wasn't just the first large scale use of it, that's when AJAX was invented.
Indeed.

Microsoft also exposed all of that HTML/JS engine as COM or whatever component, so it could be used by applications other than browser.

I remember using Microsoft Money -- personal accounting software -- and it seemed to be all built on that HTML/JS engine.

It’s crazy how Microsoft had all the pieces in place in 2001 to own both the Chrome and Electron spaces. Even Apple was shipping IE as their default browser.

By investing in cross-platform IE and making it both the best browser and the universal runtime for desktop-quality apps, they could have had “Windows Everywhere”.

Instead they did the exact opposite and folded IE into a component of desktop Windows where it received no meaningful investment and lost its once commanding lead. Microsoft’s exclusive focus on their proprietary non-portable APIs was a great blunder.

They had been recently sued for having a monopoly from bundling IE with Windows. The chain of events you describe was in many ways not a choice of Microsoft.
This is a good point, it’s easy to forget about how closely watched Microsoft was by regulators.

But IMO it makes it all the more surprising that Microsoft doubled down on the centralized OS+API+apps leverage combo that had brought upon them the antitrust scrutiny, instead of dispersing their influence?

Dispersing their influence where? Windows was all that mattered then. No one cared about the “beleaguered” Mac that was losing marketshare and Apple was close to bankruptcy. No one cared about Linux. It’s not like now where there are four platforms that matter for consumers - Android, iOS, Windows, and Macs.
IE wasn’t “cross platform” though. The rendering engine for the Mac was completely different and ironically more standards compliant and had a more complete CSS implementation than the Windows version.
I cannot remember the years, but IE ran on linux at some point in the 90s.
In the context of that time, Electron would be considered inferior.
It wasn't gmail -- it was google maps that really made everyone look again at javascript. Although MS added XMLHTTPRequest, it took something like google maps that pushed it further than anyone thought at the time to make JS a real thing.
Yeah, gmail was different than other webmail products but its innovation was really on the backend, giving everyone 1000x more quota than Yahoo was giving them. On the other hand the google maps frontend was what really sold it. Up to then you were getting a full page load every time you panned or zoomed mapquest or yahoo maps. Gmail did not eradicate yahoo mail or hotmail. Google maps promptly eradicated mapquest.
agreed- maps was the real game changer. gmail was just okay
I seem to remember oddpost.com doing 'Ajax email' pretty significantly in 2002/2003, well before gmail.
Outlook was the first true web 2.0 (or SPA) website. It's what XHR was built for.
Gmail was user friendly, but that's it.

I think the v8-runtime changed a lot for Javascript, although it was already normal to use then

It was my impression that Gmail's big hit was its use of AJAX more than just its use of Javascript in general. Until then, it was just this obscure thing MS created, but it wasn't really used in the wild until Gmail.
It was used, but mostly for internal applications or websites that were willing to dictate a minimum browser. Firefox was only released in 2002. By 2004, it had hit a critical enough mass that it was reasonable to tell a user they needed as good as IE or Firefox at the time (for a beta project).
Gmail is a great example of everything that sucks about web applications. Poor information density, crap sliding around underneath your mouse everytime you go to click, GUI changing every month, ambiguous pictograms everywhere.

Maybe users like native applications because native app programming sucks and it weeds out people who carelessly build things like that.

"Complex javascript apps just weren't a thing"

I don't know what you were doing in 1995 and 1996, but I was building Javascript apps. They were "a thing" for me at least.

And even then, gmail wasn't really written in javascript. They compiled Java down to JavaScript because JS itself was such a pain to deal with natively.
I think most of it was written for the Closure compiler (JS-to-JS), with some bits like chat windows in GWT (Java-to-JS).
I was under the impression that the closure compiler didn't exist in 2004, only GWT, and that it was rewritten to be almost all JS later.
Do you have a source for this? Google did create a Java to JavaScript compiler/web framework: GWT but as far as I understood this was never used by the Gmail team. In fact, I heard there was pushback against using this on Gmail.
This is factually inaccurate. Gmail is and was always JavaScript. GWT had some successes (eg AdWords). Gmail wasn’t one of them.
Inbox was definitely written using GWT, as were other major google products, but not gmail as far as I know.
That’s not true. Inbox was written in Angular originally. Not sure what it evolved to but it was always JavaScript.
Angular definitely did not catch on for google properties until much much later. Back when I did nothing but backbone/angular consulting, none of the major google properties used angular.