240 comments

[ 2.8 ms ] story [ 285 ms ] thread
Ok, but what did people actually think about it? These are just quotes from high-up business people, they're trained to never say anything negative.
Yeah, this is all marketing/partnership fluff. I'd be much more interested in seeing flame wars from Usenet. :) I was programming back then but I don't remember what the sentiment was at the time. I just remember Microsoft insisting on calling it "JScript" or "ActiveScript" or something because they didn't want to give Java any mindshare over ActiveX.
Yep. IE went so far as to add support for VBScript (a language based on visual basic) to compete.
I now wish there'd be actual Python on the web.
I haven't tested it and it might not work in a recent IE, but at least at the past IE used ActiveScript so any ActiveScript language could be used. Python can be installed as an ActiveScript engine and used via IE.

The same applies with other languages too (e.g. Perl, Ruby, etc).

It was not well liked.

The majority of webpages did not use it, or it was used very sparingly for things like form validation.

Old versions of IE would have a dialog pop up if there was any kind of error during execution which happened frequently.

This. The tooling and development environment for JavaScript has improved by leaps and bounds. As an early adopted I found JS to be a pain in the ass. These days I dare say it's one of my favourite languages.
With TypeScript and async/await papering over its greatest sins and inconveniences, it's not half bad.
Not only that, for years afterwards the techie crowd and equivalent of places like HN (I suppose I am mostly talking about slashdot) had a lot of people saying it was bad, a nuisance, should be disabled in the browser, webpages should fail gracefully to non-JS content, etc.

I don't know exactly when the tides turned on this attitude. In 2000 the above were not controversial opinions. By 2010 it was gone, and I saw people call it crazy talk, but it probably happened earlier than that. Probably things like gmail in 2004 were a turning point.

>a lot of people saying it was bad, a nuisance, should be disabled in the browser, webpages should fail gracefully to non-JS content,

I still feel like this.

Me too, I think. We're a minority though. I'm giving deference to the new normal.
My love of a paycheck drives me to give deference to the new normal. Meanwhile real desktop programs are still way more pleasant to use and way more respectful of my system resources, and low- or no-JS websites are still mostly nicer to use and better performing than JS heavy ones.
> and low- or no-JS websites are still mostly nicer to use and better performing than JS heavy ones.

I dunno, there are some pretty egregious examples of this being false though. gmail is one such example. I remember using webmail in the days where every action was a full page load -- and we had slower connections then too, which made it hurt even more. Then gmail came out and blew everybody away with its response times. A well thought out AJAX solution could give you minimal load times for data. The issue lately is when the JS code is too big, not well tuned, and gives the equivalent of several 90s-era-website-full-pageloads worth of data with every action. That is to say a lot of websites aren't as lean as they could be.

I'm not a web focused person so somebody correct me if I'm wrong, this is my outsider's perspective.

“AJAX” when it was mostly grabbing chunks of HTML to insert or otherwise not doing much but “grab, render” was sometimes faster. Not so much these days.
It was two things around 2004-5: 1) people using GWT to make SPAs and 2) the ability to lazy load content through XMLHttpRequest.

GWT was essentially what typescript is today but java and it handled most of the nasty DOM related stuff and browser incompatibilities.

I wouldn’t say it was unliked. It enabled image rollovers and people _loved_ those.
People liked the rollovers, not javascript. You'd see people try doing them in flash, shockwave, as java applets, activex controls, and I'm probably missing a few.

If they were done in javascript, the code was heavily cargo-culted and cut and paste.

As far as I can remember, people didn't really think much about it, after all without all the modern libraries the language was useless, and browsers were only marginally able to run Active-X and Java stuff anyway so people weren't even into the mindset that "this new language could be used to write web apps".

To me as a regular user, JavaScript was only there to do annoying popups at the start.

Funny how some things never change...

Back then, most all the Javascript you ever saw was client-side form validation. Single-page-apps were still a long way off, so all web apps were built in form submission style: the user fills out some form data, it gets sent to the server, the server tells them they filled it out wrong and re-presents the form to the user. You could make that a little more user-friendly by having Javascript validate the form _before_ the users submitted it: but you had to validate it again on the server side because the user might have Javascript turned off, or might be a hacker. That meant that, for most web developers, Javascript just meant extra work: you had to duplicate your form-validation logic in a very finicky, untestable, untyped programming language. Browser makers were working on adding some flashier stuff like drop-down menus and image rollovers, but they didn’t work across different browsers (all both of them), so even the few people who did know how to use the extensions were encouraged not to. It seemed like everybody who could avoid Javascript did - I can’t really for the life of me understand how the early Javascript developers actually got anything done in it. It was a really painful way to develop software until maybe ten years ago.
it was something to do very simple things to enhance websites usability. I don't really remember anyone particularly liking it. It was something you tended to learn as little of in a very reluctant way.

More exciting was things like Java applets or Flash. I did a bunch of stuff with Java applets and was quite impressed in 95-96 when java first came out. I wrote some simple 2d games (falling block puzzle games) which got semi popular. No way to do that in the js world at the time.

I remember doing a tutorial from a computer magazine in the 90s. The article was presenting the basic features like for, while, if... So I thought wow, now I can program stuff in the web browser. The tutorial was then starting with hands-on code, like

    document.writeln("Hello world!");
Seems quite a natural thing to do when coming from other languages. But after playing around with it for an afternoon, I came to the conclusion: that's too difficult, I rather spend my time on something else. (If I remember correctly, at that time I was comfortable with Basic and had a little exposure to C++ and Pascal)
The GIFs are the best part
I'm actually very disappointed in the gifs.

Most of the memes are faux retro. The fiji water bottle is representative of the vaporwave aesthetic from 2016 or so. The font animation is also super modern, circa early 2010s. It's all fake.

They should have pulled more stuff from Geocities archive. This is not how things were.

The release of JavaScript was deeply confusing to me as a developer back then. Java applets and Macromedia Flash were already touted by their vendors as the one true way forward for interactivity. The scripting language released at about the same time seemed like an oddball.

It's easy to forget, but for years after its introduction JavaScript didn't work well. It was extremely slow, limiting the complexity of what could be built with it. There were problems galore with cross-browser compatibility of what was written. There was no reliable vector graphics or canvas system, so you really couldn't do much graphically. The DOM interface was hard to understand to be charitable. It didn't run outside of the browser, so how dare you call yourself a developer if you were using it?

To the extent that developers knew JavaScript existed at all, it was not considered a programming language.

These things started to change in the early 2000. So deeply ingrained with the disgust for JavaScript, that it took a very long time for the consensus to emerge that you could actually build very complex software on a post-V8 runtime.

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.

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.
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.
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.
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.
This is factually inaccurate. Gmail is and was always JavaScript. GWT had some successes (eg AdWords). Gmail wasn’t one of them.
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.

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.
> 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.
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.
I'm sorry, I didn't mean to correct you as much as add color for other HN readers. So much happened in a very short period of time and I hope that people take away how much vision and strategy these people had at that time.

I think the point I'm really trying to make is that the Netscape team had a much richer vision of the web than what we use today. Before they built Netscape, Andreessen and Clark were considering building an online gaming platform. I'm sure you remember how big multimedia was back then.

If you look at the timeline, you can see where the were going. They started off with a focus on dominating the browser market, which they did in 4 months. In less than a year after their first release, they released the first version of an online platform. It added Java, JavaScript, and a plug-in architecture with standard plug-ins like Live3D so you could embed VRML into your HTML page. No one was even sure HTML wasn't going to be replaced by something better, so I have to imagine they were hedging their bets by adding three different ways to build on their platform.

If anything, I think your original comment reinforces that strategy. They knew there were a lot of C++ developers who wouldn't take to Java for whatever reason, so they offered a plug-in architecture for people who cared more about performance and experience than being cross-platform.

Had things gone differently (Microsoft not woken up), I can easily see Netscape creating a dominant internet platform that went beyond HTTP and viewing hyperlinked documents. They were already bundling email, website editors, conferencing, news clients, etc.

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.
My recollection at the time was IE4 had a working DOM while Netscape's DOM was buggy and left a lot to be desired. It was there, but it was a struggle.

I don't say that to crap on Netscape. Microsoft was a well-funded company with a lot of experts who had years of experience create applications with DOMs. Also, they had the luxury of delivering a browser for one operation system.

Netscape was a brand new company that went public 7 months after it's first release and 1.5 years after its founding. They sold investors the premise they were going to become the Microsoft of the internet. They had a fraction of the resources while they were trying to creating browsers, email clients, collaboration software, web server, and a host of other software for multiple platforms.

> The browsers were still implementing the basic features

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

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).
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.

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).
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.
In the context of that time, Electron would be considered inferior.
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.
I seem to remember oddpost.com doing 'Ajax email' pretty significantly in 2002/2003, well before gmail.
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

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.
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.

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.

Sure, I bought one off ebay for 0.10€ :D
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...

(comment deleted)
To me it was Maps in 2005 that really showcased what JS could do.
"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.

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.

Outlook was the first true web 2.0 (or SPA) website. It's what XHR was built for.
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
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

Jquery was invented and became massive for decades because it made js basically suck less.
To an extent, yes, but didn't entirely solve the problem. When something goes wrong with Jquery or something that uses it, Jquery is yet another layer to debug or break. There's a point where throwing more layers at a problem has diminishing returns.

The solution (for CRUD makers) is to make common desktop GUI idioms part of a standard instead of emulate them all. This includes but is not limited to: MDI windowing (as an option), modal panels, drop-down menus, tabs, combo boxes, editable column-expandable data grids, expandable trees, tool bars, and a decent multi-select widget instead of using (just) the Ctrl key. HTML frames were helpful, but have since been deprecated. Somebody found them too useful? Mobile land is too different from desktop land. Forcing a lowest common denominator is bad for business IT productivity.

jQuery was invented for basically two reasons, neither of them about making JavaScript suck less.

1. Introduce a "chaining" API.

2. Paper over the differences between how browsers implemented the DOM, with events being the big issue.

Note that the DOM is not JavaScript and JavaScript is not the DOM. The DOM is a language-agnostic API for manipulating markup-based documents.

That's nitpicking. Javascript was the only language that could be used to manipulate DOM so it's normal to conflate the two.
So in other words: 1: to fix js chaining 2: to fix js compatibility Ergo to make js suck less.
No. The first is incoherent, the second ignores half my comment.
You're splitting hairs with that half of your comment so I ignored it.
> didn't work well.

And nearly impossible to debug on top of that. Firebug didn't come around until 2005, and AFAIK that was the first interactive debugger for Javascript. In fact, I remember spending a lot of time debugging without even console.log() support - window.alert() was the only weapon you had for the longest time. Not to mention every Javascript implementation's frustrating habit of just throwing up a blank page instead of an error message if anything was wrong...

Before firebug there was Venkman debugger (mind the Ghostbusters theme) as Firefox (or Firebird and Netscape Navigator 9) as well as Thunderbird and their other components where built using JavaScript+XUL (pronounced Zool, as in Ghostbusters)
And god forbid you got yourself in an alert() loop!
>It's easy to forget, but for years after its introduction JavaScript didn't work well.

I haven't forgotten, and I will never forget.

Re: It's easy to forget, but for years after its introduction JavaScript didn't work well.

And STILL doesn't, at least for anything non-trivial. New browser brands or version often "break" a lot of libraries and code. It's not really JS's fault: HTML wasn't meant to be emulate real desktops, and shoehorning it to do so has made a giant tangled multi-layer mess.

Browser standards should be split into three focus areas:

1. DOC: Document-oriented for text display and editing. It would be similar to existing browser but with more word-processing-like features. [I removed "read only"]

2. GUI: Mouse-centric stateful GUI markup for data-oriented "productivity" CRUD applications.

3. ART: charts, games, music, and movies.

The one-size-fits-all "standard" mostly failed (job security aside), time to split and focus. Let's admit we f!!! up as an industry.

The problem is most pages need to fall in to 1 and 2. Wikipedia is a document website but it also has editing features and it also has interactive mouse things like the hover previews.
Good point. Perhaps I shouldn't have said "read only" in #1. Just plain "document centric", including editing of documents and text.

There will always be some overlap, but that doesn't entirely diminish the value of focus. It may be possible for a given window or panel to select which focus-standard it uses to make mix-and-match a bit easier.

A given "starting" browser, typically the document-oriented one which will contain menus and lists (such as an intranet) could be configured to select the user's or org's desired GUI and Art engine. And each "engine" will contain a minimal common sub-set, mostly around existing HTML.

Websites don't exist in neat silos. Web technologies like JS aren't perfect, but they haven't failed be any stretch of the imagination. What other platforms are still alive and evolving decades after their creation?
VT-100, IBM 3270 terminals, X-Window, Tk, Qt, Oracle Forms (with some caveats).

And just because "web" more or less works doesn't mean we should stop trying. Web UI's for typical CRUD are expensive to build and maintain compared to 90's IDE's. Yes, I realize it made deployment simpler, but programming has at least doubled for the same feature set at the average shop. (There are exceptions, I know, I'm talking average.)

If somebody can justify "it must be that way", I'd like to see the logic. I'm highly skeptical. We just accepted our CRUD Rut as an industry because it's good job security, not because it's efficient. That's somebody else's bill. A good GUI-over-HTTP standard would make a boatload of dev problems float away. I really miss state, for one; it was a good thing. Oh Darling State, I surely miss thee, wherefore art thou? Jetsons tech was yanketh from my finger, and replaceth with Flintstone fiddle diddleth.

(And why are my posts getting bad scores? I don't get it. Ask first, and then neg.)

- Tcl/Tk

- Perl5

- Python

- VT220/VT100 terminals + ncurses

I used to think so, but with reactive components and css layout like grid, you have enough clear paths for most use. This dom thing seems like it's here to stay for a few decades more.
Everything I've seen so far either has a huge learning curve to do right/well, breaks over time, or both. If there is a product out there that solves these, that would be nice. I'm skeptical, but I'll ask around...
>New browser brands or version often "break" a lot of libraries and code.

When has it happened that browsers have broken standardized features? Browsers have gone through large lengths to stay backwards compatible. It's hard for me to think of things that have been broken besides nonstandardized stuff (like plugins, or things that only worked in one browser to begin with like IE).

Back when I first played with Javascript I don't think anyone even used the name. Tutorials were all about "DHTML", where you were building "Dynamic HTML" by writing Javascript to move items around.
It seemed like 99% of the Javascript I found was little hacks to have some string of text move around with your cursor, or to make the status bar scroll some text.
I remember those times. Things like DHTML clocks.
Well, if by 'for years', you mean 25 years, you're right. ECMAScript is still hot garbage that clogs up computers and the internet, ballooning requirements on browsers and nearly forcing the monoculture we have in terms of browsers and rendering. If you want a website, you should write a website. If you want a program, you should write a program. Don't write programs to run in the same space as websites.
> Don't write programs to run in the same space as websites.

Who do you imagine is going to find this advice compelling?

I know right. Why would you ignore the single best distribution channel that has ever existed for software?
I love when HN lets it fly about JavaScript. It would never be acceptable to post something like this about PHP. Lovely!
Java Applets over current connections, on current hardware, and written with Kotlin would be pretty nice. Especially if we still had plain old HTML and CSS too for non-applications.
> These things started to change in the early 2000. So deeply ingrained with the disgust for JavaScript, that it took a very long time for the consensus to emerge that you could actually build very complex software on a post-V8 runtime.

I wonder how history would have looked like if Scheme had been used instead, as was the original intention.

Or perhaps, Lua.

Much better if it had gone with Scheme
With scheme perhaps, but the Lua of 1995 was a much more primitive language which didn't even support closures. It had the opportunity to break backwards compatibility and refine itself numerous times - as the defacto language of the web I think lua would have turned out much poorer rather than the web much better.
Something like TCL would be far better. Or Inferno.
Lua is pretty terrible in how barebones it is. I don't think anyone on HN who raves about Lua yet complains about JS has done much work with either.

There's a reason it has zero traction beyond embedded application and niche application like Pico8.

That which Lua is missing is primarily in terms of its ability to define clear, succinct algorithms. And in this respect the more Algol-derived languages enjoy a substantial advantage by having readily available tools for the task. Tables are a semantic compromise compared to list, array and map primitives, and the standard library assumes little, making it hard to write "native" Lua without encountering a need for R&D on some dependency.

But when it works in its true intended domain, gluing together and applying configuration to structured APIs and data, it's about as good as it gets, having had the benefit of major revision. And that makes it a stable computing platform, even more stable than the Lisp family(which are like BASIC in that it's quite easy to make an incompatible one). As a side effect, that also makes it an excellent source-to-source target.

But to put it another way: Everyone says they like minimalism until they try to live in it. Everyone who needs minimalism knows its limitations and makes exceptions.

That's exactly what makes Lua and JS directly comparable - they're both barebones, when it comes to stdlib.

But as far as the language itself goes, Lua is far superior, with a lot more consistency all around, and fewer traps.

To be honest, I was using JavaScript for years as an OOP language before I actually understood how I could use JavaScript as a functional language.

However, I don't think the limitation was the language. The biggest limitation really were bug ridden browsers. Trying to get something to work across all browsers was incredibly challenging because so many basic features simply didn't work.

Had the syntax been based on scheme, my guess is scheme's reputation would have suffered. I think people have a tendency to blame the thing that they understand the least, so I could see people blaming scheme for the browser's failings.

Also, I went to a university that taught SICP and I'm sorry to say it wasn't popular. Again, when things didn't work, there was a tendency to blame the thing that was least understood.

I could see a Lua-like syntax being approachable, but even that wouldn't have helped. Again, the biggest problem with JavaScript was being tethered to buggy browsers that often failed when you asked them to do simple things.

Then everyone would hate scheme now :-) The primary problems with JavaScript was browser incompatibilities and bugs, mostly related to the DOM, and a limited standard library. Using a different language syntax wouldn't have alleviated those problems.

But I like the idea of angle brackets for content and parentheses for script.

I remember dealing with JS early on the same way I deal with bash today. With all the weird apis no one understood at the time, limited internet resources (and even books at first), it was just a crazy quest to hunt someone who knew what to do, copy it, and try to tweak it (usually unsuccessfully) until something kind of sortoff does what you want.
I always thought the big paradigm shift was the introduction of xmlhttprequest.

Prior to that, it was really just form validation and cool DHTML interactions.

I also wonder why AJAX is not called AJAJ?

The "X" in the acronym comes from XMLHttpRequest, an API that was originally provided by Internet Explorer to enable fetching XML in Outlook Web Access. It wasn't until later that fetching JSON with it became popular – XMLHttpRequest predates JSON by a few years.
This is why you could charge a lot of money for rollover effects (most of the time image swapping).

JavaScript was hard.

I remember writing complex graphic applications in Director. But I think it took at least 10 years before the same was possible in JavaScript.

> It didn't run outside of the browser, so how dare you call yourself a developer if you were using it?

That's not exactly accurate, you could actually do some server-side things with it and I knew people who did it (late 90s, early 00s) - although I never understood why and the company went bankrupt in the end.

To be fair, I didn't start programming in JavaScript until 2000, but even back then I could see that it would be a game changer for the web.
I vividly remember working on my school’s website in 1997 with Microsoft FrontPage. I had built a rather complicated system where it would be possible to arrive at the same page from several origins. Whereas most web-pages had hyperlinks or allowed the user to use the “Back” button on the browser.

I decided I was going to have none of that amateur stuff or reliance on what is now referred to as “browser chrome” (though if the term even existed back then, I surely wasn’t aware of it).

So I looked into this JavaScript thing, and wrote my first ever script embedded into a button:

onclick=“javascript.history.go(-1)”

I was so proud of myself. For about a year users of my school’s website were visibly amazed.

Wow, apparently JavaScript was 100% great and there was nothing at all negative about it ever, according to people in tech!
That's because they hadn't used it yet. :)

In all seriousness, everyone was in on Java. Even Microsoft (Everyone was in on Java, even Microsoft (https://en.wikipedia.org/wiki/Visual_J%2B%2B). So most of us saw browser plugins and applets as the future, and some of those plug-ins were very impressive in those days.

JavaScript was seen as a glue language to manipulate components built in better languages. We thought there was going to be a rich component marketplace that was going to be embedded in web pages. We didn't think we'd still be mucking around with HTML and DOM manipulations.

I also thought Java was the future. But, Java tried to be an entire virtual OS, and gained too many security holes because of that. Flash had a similar fate.

It's not that JavaScript solved that, it's that it's built into the browser such that you can't really skip it. Like the Java and Flash engine, a web browser is also a fat bloated leaky client. However, if you toss the first two, you are then dealing with 1 fat client instead of 3 fat clients. It's easier to keep 1 FC up to date than 3.

Do you think the security holes killed Java and Flash? Or do you think they were just nails in the coffin?

I suspect performance and inconsistent experience killed Java applets and Sun stopped caring about desktop Java when they realized they can't make much money off it. Flash stuck around a lot longer than Java because it was fast, fun and ran consistently. It still lingered for some time after Jobs poisoned it.

Honestly, I don't think people cared that much about running updates. For most people, if the computer tells them they need to update, they update. I also don't think average users cared about security issues back then.

Re: I also don't think average users cared about security issues back then.

Recommendations in common publications to remove them unless absolutely necessary coincided with their market share slide, as I remember it.

Yes, Java applets was imperfect, but generally got better on every release. It was improving about as fast as JavaScript + DOM + CSS + HTML was.

Re: For most people, if the computer tells them they need to update, they update.

It didn't help them in that they tried to trick you into installing extra junk apps during the update process, like tool bars (AKA spam bars) and "free" anti-virus scanners.

Java had a big issue with applications that needed older versions, but the older versions often had security holes. Oracle didn't manage backward compatibility well. Trying to be a virtual OS instead of just an app platform contributed to the too-much-complexity-to-manage problem for Oracle. KISS.

> according to people in tech!

According to CEOs and other businessmen making statements for the press hype machine.

I think that for consumer applications, JavaScript took a while to be really useful - like someone else noted Gmail was the first serious JS app I can think of. But for Intranets, it was pretty essential pretty quickly as web apps took over from Lotus Notes, Access databases, a million dBase applications and other proprietary front ends. And Microsoft was pushing it (and VBScript) hard in Internet Explorer under the DHTML moniker.

In 1999 I worked on a contract for Levi's in SF and clearly remember using JavaScript to pull data from a huge hierarchy of product styles and presenting it to the end user as a widget where they could add/remove/move entries around. I remember abusing the cookies API to save the latest client state between page refreshes as it was the only real way to do that at the time. Something like this would have been a total pain in the ass without logic in the browser. In fact, I may have been replacing some sort of Java Applet or ActiveX widget which did something similar in a slower, less flexible way.

So whether it was a huge success outside of corporations or not, I was using it to make a living pretty much from day one.

First proper JavaScript apps were Firefox/Netscape 9/Thunderbird where the user interface was done in JavaScript+XUL, while not being loaded from a server and most logic was done in C++.
I couldn't make heads nor tails of it when it debuted. But I was only 17.

This article brings me back to a time when every product had a bunch of these "empty suit" quotes about it. The person never said that stuff, it was all written for them. I remember being on a project where marketing fluff was "said" by someone who had no idea what was going on and, besides, the product wasn't doing anything, let alone what he claimed the technology enabled it to do.

JavaScript is a fascinating example of Microsoft successfully getting a giant own goal.

The promise of the web was cross platform applications that required no installation. Microsoft's fear was that cross platform applications would make the operating system irrelevant and reduce Windows lock-in. Both Sun (with Java) and Netscape wanted Microsoft's worst fears to happen.

This was the era of Embrace-Extend-Extinguish. So Microsoft embraced the web and added a variety of extensions that only worked on Internet Explorer and Windows. The browser wars followed, which Microsoft resoundingly won.

Along the way, Microsoft demonstrated the power of their browser by doing everything that they could to encourage people to write web applications that would only run on Internet Explorer. Which, of course, only ran on Windows. One of the things that they did was write web versions of Microsoft applications using various Microsoft extensions.

One of those applications was Microsoft Outlook. Which needed to poll the server and find out if there was new mail. For that purpose they wrote the first version of the XmlHttpRequest object. This was in 1999 and they thought nothing more of it...until gmail and then Google Maps came out in 2004 and demonstrated what could be done with it.

The next thing you know, everyone is talking AJAX. Mozilla makes the web accessible to the world. And then Google decided to throw serious energy into a better JavaScript runtime (aka V8) because they wanted to be able to write more sophisticated applications.

And the result is that Microsoft's nightmare has now been realized. But none of it could have happened without that fateful decision to supply the missing piece for a ton of applications of having an asynchronous way to go back for more data without loading another web page.

I've been listening to the podcast 'Cautionary Tales' about the unintended consequences of certain actions. This seems like it would fit well as a great story.
> Along the way, Microsoft demonstrated the power of their browser by doing everything that they could to encourage people to write web applications that would only run on Internet Explorer. Which, of course, only ran on Windows. One of the things that they did was write web versions of Microsoft applications using various Microsoft extensions.

IE ran on Mac but, in a super-fun fashion, wasn't exactly the same IE, IIRC.

There was a period, pre-Camino (Mozilla fork before Firebird/Firefox for Mac got good), pre-Safari, where IE was the single best browser for Macs, yet still wasn't as good as IE on PC...

Oh I remember those days and yes IE was the better browser even in the early Safari days. Back in '03 I still had get a VirtualPC instance running for a few websites and let that crawl.

The old MS/Apple relationship is kind of weird almost like the Gates/Jobs relationship. For you young folks it may be hard to believe but Excel started as a Mac App.

Back before XmlHttpRequest, you could "poll" for server information using a hidden IFRAME.

XmlHttpRequest + JSON formalized this type of data transfer.

Was going to mention this, it was pretty popular for those of us building corp intranet applications at the time. Not a lot of people used it for generally available web application but there where a few. Several of the web chat applications of the time used it extensively.
game is not over, MS has typescript momentum now
Yeah, but that doesn't drive any kind of lock-in.
True but I kinda believe that MS understood that these days are over (not only for them but in general)
Ironically, Microsoft is in a position to gain rather than lose from web apps these days. The reason is that many apps are developed for mobile first, and getting them into the Windows app store is hard if developer has to spend a lot of time porting. But if the app is HTML/JS, that's a lot easier.

Conversely, Apple benefits the most from native apps, because their development stack is so different from everything else, and yet they are big enough in mobile that everybody has to target them anyway.

Microsoft did a really great job of making MSIE a platform, too, with active scripting you could write browser programs in REXX or Tcl. It was really wide open.
But nobody could view your web page unless they had downloaded the appropriate scripting language.

That made it appropriate for intranet applications, but not the internet.

I wrote my first website in 1995 and started using Javascript in 1996 (only I think it was called Livescript back then)?

I was not impressed. On the client side I would use it for very few things and when I tried the server side version I decided that I would rather stick with Perl and CGI. Although I did not like Perl, I could get things done with it. (Oh, I just remember: also Cold Fusion!)

My opinion of Javascript has not improved over the years. I worked with Javascript for a while and in complex enough problems that my name ended up on 2-3 patents and patent applications. I no longer work on the web, but I have occasional need for Javascript and I always hate my time with it.

This will be an unpopular opinion, but frankly I am perplexed by its popularity, because it is neither simple nor elegant.

I think the accessibility of web browsers and npm allowed the JavaScript ecosystem to explode, hence it's staying power.
Why do you hate it? It’s one of the friendliest languages in current use, a nice mix of OO and FP, with top-notch tooling everywhere, and incredible performance for an interpreted language.
> I think it was called Livescript back then)?

As Encyclopedia Brittanica (!! who'd have thought) puts it,

JavaScript was developed in 1995 at Netscape Communications Corp. and was conceived of as a companion to Java. It was originally called Mocha and then LiveScript before Netscape received a marketing license from Sun.[0]

And then it became 'a dialect of ECMAScript'...

[0] https://www.britannica.com/technology/JavaScript

> This will be an unpopular opinion, but frankly I am perplexed by its popularity, because it is neither simple nor elegant.

If you're going to do in browser development, what choice so you have? I can understand server-side JavaScript, mostly to avoid cognitive load from learning two languages.

Otherwise, I think WebAssembly is a lot more promising of a technology.

I loved building JavaScript apps when JavaScript wasn’t cool yet. (2006-2010)
I built JavaScript apps in 1995-1996... Must have been extremely uncool then...
Fast forward 25 years and we have three different semantics for "not a thing"
When JavaScript first came out, it couldn't do much. Aside from toys (eg: scrolling text in the status bar) the "serious" uses were mostly:

- (hopefully redundant) client-side validation - some styling (CSS was also brand new) - basic animation (eg: changing the on-hover appearance of stuff) - form "tweaking" (eg: disabling/hiding parts of a form dynamically based on other field values).

It wasn't really for writing apps in, just for adding small enhancements to apps that did their real work server-side.

I wonder what the alternative reality could be in which browsers adopted Tcl instead.
That might be an interesting counterfactual for a blog post (or series). What if {x} had been the dominant web scripting language?

What does that language offer that JS can’t match, and what trade offs does it make to get there? I suppose you’d have to write a hypothetical spec for dom APIs, etc that don’t exist in the target language, and then pretend to use it and see what the pain points/unexpected pleasures are.

Instead of complaining about `==` developers would complain about substitution rules :-P.
Should have been Scheme or Logo, although Tcl would be high on my list.
MSIE scripting did and does support Tcl.
All of these quotes are from business/sales/marketing people, not from developers actually using the language, and about a third of the people quoted have clearly mistaken it for Java.
JavaScript was used for very simple things when it was launched. Most pages used it for modifying button images when you hover or press a button, and for handling some web form operations. As others say JavaScript was very confusing, a programming language that was launched with Java in its name and to fill gaps in HTML limitations but there was no clear direction towards web app programming. Another confusing aspect was that Java was created for this purpose (to create web apps via applets).

We should not forget Macromedia Flash, it was a very interesting option offering a better programming language but it was not an standard with an open source reference.

Actionscript 1: a simple little language that could only be entered via a huge dropdown menu

Actionscript 2: basically Javascript, when I was writing stuff in AS2 my O'Riley pocket JS guide saw a lot more use than the pocket AS guide.

Actionscript 3: completely ECMAScript4, Macromedia/Adobe was on the standards board for that, but then Mozilla went a different way, I think, it is a giant mess [1]. Also AS3 was a lot more verbose than AS2 which did not endear it to the people with one foot in art and one in programming that was a large part of Flash's user base.

1: https://auth0.com/blog/the-real-story-behind-es4/

As your source indicates, it was Microsoft that stonewalled ES4. By the time Adobe agreed to let it die, it was a capitulation that they had been vetoed.
Flash embraced ActionScript (ECMAscript 4) when no-one did and ultimately it also killed it. This is like some tree that allows the strangler fig to grow on it.
I remember macromedia Dreamweaver magic rollover templates.
The language Self was just released couple years before that and I thought it was the coolest language since sliced bread. Then Javascript came out and wow, it incorporated the key ideas from Self.
JavaScript is perfect example of Worse is Better http://dreamsongs.com/WorseIsBetter.html

Early JavaScript sucked bad. It sucked small planets.

As PG said 2005 about Web 2.0. http://www.paulgraham.com/web20.html

>Basically, what "Ajax" means is "Javascript now works."

I don't think it is. If JS had any sane competition, I think it would have lost. By some weird conjunction of events, it landed a monopoly on the most amazing plateform in the world.

PHP is a good example of Worse is Better, because it won over the competition, despite its flaws.

HTML vs xHTML as well. Bash, maybe?

But JS didn't win. It was the only one there.

What? JS had loads of competition back then. VBScript, Flash, and Java applets, just to name a few ways to get interactivity on a browser.
"sane" is the keyword here.

The alternative all depended on non technical users with slow connections to install the runtime.

Js code was guaranteed to work anywhere, and with no requirements, giving it practical monopoly.

The article conflates “popular” with “loved”. JS is popular because it’s the only* language in which it’s possible to write browser apps and extensions. The number of people using transpilers for this purpose is minimal.

In actual fact, most people try to avoid JS whenever possible, instead using TS or other languages that compile down to JS.

Saying people love JavaScript because it’s the most popular is like saying people love McDonald’s because it sells the most burgers

[*] since we don’t have Java applets or Flash apps anymore. Writing in other languages still means transpiling to JS in the end

> In actual fact, most people try to avoid JS whenever possible

Eh... if this was actually true, the web would look very different. I just can't square "web programmers hate Javascript" with "web programmers are obsessed with SPAs/CSS-in-JS/NodeJS backends/etc..."

> Writing in other languages still means transpiling to JS in the end

I'm assuming you already know about WASM, but if you don't, the future is starting to look relatively optimistic for other languages on the web. Still some problems to solve, but C++/Rust already have pretty promising toolchains working today.

(comment deleted)
> Saying people love JavaScript because it’s the most popular

I’m sure it gets a lot of hate just because of its dominance.

> is like saying people love McDonald’s because it sells the most burgers

Ok I give up, why is this wrong?

The 101 is the busiest freeway in the Valley, but I doubt many people love it...
Sure, but there's not 20 equally filling and cheap freeways within walking distance of the 101
Meanwhile, you can use any language on the server yet many of us including myself use Javascript. I'd say modern Javascript is easily one of the best languages.
Most server side code is Java, quickly followed by PHP.

And of course next to JS, you have C#, Asp.Net, Ruby, Python, and Go.

I'd say that given that:

- a lot of people only know JS (like designers)

- JS has a monopoly on the front end and is the only language that can be used on the front and back

- JS has existed for as long as Java (C#, Ruby and Go are way younger)

- there are JS materials everywhere given the web popularity

- the web is the most popular plateform in the world

The fact, as a freelancer going from company to company, I see so little JS on the server compared to other languages tells a lot.

JS is used on the server because there are tons of JS developers thanks to it being basically the only language used on the frontend.
Transpiling sucks. It breaks debugging. The JavaScript community tolerates it but you can bet everyone who can avoid it will do so. We’re in the transpilation age, which does, as you indicate, provide an “in” for other languages.

But for me, JavaScript is not about having your dinner made just how you like it. It’s about targeting the lowest common denominator and keeping your code simple because of that.

I think that’s where JavaScript is headed in the limit. We’re at the low point for “just put a file in the browser, it’ll work!” But I guarantee you that style will come back in the next wave. You already see people going that way today. Casting off Babel and using much simpler packaging tools with code that’s natively readable in the most common browsers.

Would you package Rust for the JVM? Maybe. But it would not be fun.

JS was unusable for me before ES6. Hated it back then. Then ES6 came, and it finally became usable, though not great. Types are still missing, apart from several little things. There's Typescript but something native to the language would be preferable;
This obviously lends the question, given it's criticism back in the day, which PL is the next javascript?
Maybe it depends on what's the next platform. C/C++ was sort of a base programming language for desktop apps, javascript for the browser, and Objective C & Java for mobile. Server apps have been a mix of PHP/python/java/ruby/node.js.

I guess my 2 wild guesses for the long-term future might be either or both 1) a visual/block programming tool (which perhaps might perhaps be more usable in virtual reality type environments) or 2) natural language programming (programming in English and/or other natural languages), which might be more usable in both virtual reality and chat environments.

So, Smalltalk/Pharo.
Do you mean "heavily criticized, with significant flaws, but might grow into something with massive use"?

Go, maybe? Or is it not flawed enough and not criticized enough? Or is it already used too heavily?

Not flawed enough, not criticized enough, and not growing into massive use. It's got its niche but there seems to be some competition.
Any language that compiles to WASM.
Find a runtime environment that will ship on every major device this year. Any language that can (relatively) cleanly target that runtime could be the next JavaScript in 10 years.

But your question is equivalent to “what Nation could be the next United States”.

Possible serious answers to your question... which language might be on every device in 10 years... some successor to Solidity might Trojan horse it’s way in. If Facebook built a, like, a “Facebook Platform” or something like that, that could be on every device. Other than that, it’s hard to imagine.

JavaScript came from an era of global platforms. That’s over, now we’re in the era of fractured platforms. I don’t think we’ll see another global platform in a long time. It would need a major new selling point (like Solidity has) that can’t be replicated on existing platforms.

"“Paper Software plans to use JavaScript as the glue which lets our development partners couple Java, plug-ins, and Paper’s multi-dimensional VRML user interfaces within a distributed, online application.”"

These quotes don't sound right. I was working for an ISP around 1995ish and telling people how to set up Trumpet WinSock and MacTCP and Internet Explorer. Java wasn't even public yet, was it? Someone wanted an interactive web page, so I used Perl and CGI.

"JavaScript is a great way to get cross-platform scriptable access to databases and move the resulting data into Macromedia Shockwave, where it can be rendered, animated and made into live interactive multimedia for the Internet."

Live interactive multimedia? At 3.6KB/s? I remember a T1 (24 simultaneous calls) being a big deal, now my phone seems to have about 40 times the bandwidth.

A lot of familiar stuff came out around that general time, but it didn't spring forth fully formed. Someone was creating what would become eBay at the time too, but that doesn't mean it was a thing yet.

Maybe these are all genuine quotes, but they feel like they are from someone who thinks of 1995, 1998, 2002, etc. as all being "a long time ago".

Lol document.write in a table in Netscape 2. Still remember my first experience with a buggy js implementation :-)

My favorite early js story is writing a “life cycle of stars” app in 4 hours in 1997 and getting a full high school semester worth of credit for it :-)

> “AT&T’s support for JavaScript is more than support for cool technology — it is support for an open standards process. Open standards are and will be as important to the success of the Internet as open connectivity.”

Still true, but ironic to hear a huge telco monopoly say it.