Netscape and Sun Announce JavaScript (1995)
web.archive.org
web.archive.org
> With JavaScript, an HTML page might contain an intelligent form that performs loan payment or currency exchange calculations right on the client in response to user input. A multimedia weather forecast applet written in Java can be scripted by JavaScript to display appropriate images and sounds based on the current weather readings in a region. A server-side JavaScript script might pull data out of a relational database and format it in HTML on the fly. A page might contain JavaScript scripts that run on both the client and the server.
We tend to think of JS as having started out as just a way to dynamically show/hide elements, maybe add an animation or two, on top of fundamentally HTML-based web pages. But I see here described what we now think of as "web apps", and even web servers (!) written in JS. They even talk about code-sharing on the front and back ends, a la React in hybrid-mode. I had no idea those things were in people's minds at its inception.
Edit: Apparently they already ran JS on the server! I had no idea
> Netscape LiveWire enables JavaScript programs to be installed, run and managed on Netscape servers
The things being done with JavaScript today are not new, nor is the idea that a server and client would coordinate to run interactive apps. That fundamental concept has been reimplemented in many different ways until we've landed on the current rube goldbergian monstrosity that are web apps.
It shows that the desire to have users interact with a service in particular ways will not go away. The technology used to do that is mostly irrelevant.
Specifically the inclusion of a prototype OO system is confusing if you aren't aware what that is and have only been exposed to Java-like OO programming. But in fact it's very powerful and not so hard to learn once you realize you have to.
As with other web technologies, it's simple at first glance but the learning curve gets steeper at some point.
It's just a matter of understanding the langauge. That said, it's been my favorite language since well before the "good parts" book.
But I don't think it's controversial to say that the following were objectively bad decisions (in hindsight, of course, but still):
- Automatic casting behavior between the core types (you're the only person I've ever heard suggest that this might be a good thing)
- Automatic semicolon insertion
- A core Date object that lacks basic control over time-zones and reasoning about time-zones
- Assigning to an undeclared variable silently creates a global
- Allowing duplicate function parameter names where later ones just hide the earlier ones
- Distinction between undefined and null (this one might have a few defenders)
Some of these are now prevented by "strict mode". Others have been patched-over, for example by the addition of === which prevents casting behavior for comparisons at least. Others can be bridged by libraries (Moment.js) or by best-practices (use foo == null to smooth over the null/undefined distinction, never use a value's implicit falsiness in a conditional, etc).
But the point is that JavaScript has this giant asterisk that will never go away, of things you need to do/avoid/utilize in order to get the most basic behaviors right.
This is (mostly) awesome for quick/light glue scripting and a (almost entirely) a horrible pain for most other programming. As the scale of JS apps has gone up, this has gone from probably being a net win from the way JS was used early on on the web to being a net harm.
> Distinction between undefined and null
This existence of this distinction is, IMO, a very good thing, but there's some big ergonomic issues with the implementation. (The rest of your list I agree with.)
"foo" - 1
//raises "is not a numeric literal"
"" == false
//raises "is not a numeric literal"
"foo" + new Object()
//"foonull"
"foo" + new Array()
//"foonull"
0 + true
//1
0 + false
//0
1 + new Array()
//raises "null is not a number"
new Object + new Object
//raises "null is not a number"
true.foo
//raises "true has no properties"
1..foo
//raises "1 has no properties"
Ten days language was not that silent.I didn't like TS at first, but using the most recent version has been relatively pleasant and working with less experienced devs has been almost required in order to do further refactors. I killed a month trying to do a complex refactor ad-hoc, in circling around, I was able to convert the entire project to TS in a couple days, introduce typing for core state and a few other areas which allowed me to do the rest of the refactor in a couple days. That sold me on TS, as long as I don't HAVE to type everything, or jump through the hoops as I did on my first experience with TS, which was combined with Angular projects.
The casting behavior is definitely a foot-gun, but it's powerful as I mention for validation and ETL type workflows. The "falsy" values list is literally my guide marker in interviews for JS devs. It's usually a pretty good benchmark for how well a developer understands the language itself..
Totally agreed on the Date object. Absolutely horrible, and moment, while useful was huge and most other hacks aren't all that great either. The Date object really should be extended as probably the next major bump in usability in the system. Even if it was just extended enough for parity for what C#/.Net offers for their DateTime/DateTimeOffset then other libraries could flush it out and be much smaller.
One useful thing to know, is that assigning an object property to undefined will skip that property as part of json serialization and is faster than delete on the property I'll often do something like return JSON.stringify(Object.assign({}, original, {propToHide: undefined}) in node APIs. This is about the only useful bit from undefined I can think of off hand.
Global variable assignment by default is definitely a flaw.
If you're simply referring to code that could run on both client and server, your point is clearer to me.
Let's face facts...AJAX is the real secret sauce with JS and what makes it truly useful.
Or NeWS[2], also based on PostScript.
So say we all!
Indeed, your absolutely correct in saying it was obvious where webapps had to go, and that HTML and CSS just wasn't going to get us there.
https://philip.greenspun.com/wtr/livewire.html
You can see that the current JavaScript tooling complains are nothing new under the sun:
So what used to be a few keystrokes in Emacs or Netscape
Gold now requires three steps:
edit the .html file
recompile the .web file
restart the LiveWire app from the appmgr"This approach has several disadvantages, the first of which is speed. You are gratuitously transporting potentially many kilobytes of data back and forth across the network."
But loading pages was really slow, mainly because browsers were slow. No parallel loading of images, no progressive rendering. Those were the first optimizations.
[1] https://developer.valvesoftware.com/wiki/Latency_Compensatin...
Edit: introduced in IE3 (1996) apparently. https://en.m.wikipedia.org/wiki/Internet_Explorer_3
Hmm, I started work as a web developer back in 2000, and I don't remember ever coming across such a notion. The first time I heard of JavaScript being used server-side was NodeJS many years later.
<HTML>
<HEAD> <TITLE> Hello World </TITLE> </HEAD>
<H1> Hello World </H1>
<P>Your IP address is <SERVER>write(request.ip)</SERVER>
But client side JS had to write() too (there was no DOM), and so we have 'foo'.link('http://example.com')
// "<a href="http://example.com">foo</a>"
'bar'.bold()
// "<b>bar</b>"
http://web.archive.org/web/19961115040956/http://developer.n...His browser had many features, including:
- Stylesheets, similar to CSS
- Scripting support, using a scripting language (like JavaScript).
- The equivalent of Iframes
Pei-Yuan Wei is the man.
Isomorphic app?
> Java programs and JavaScript scripts are designed to run on both clients and servers, with JavaScript scripts used to modify the properties and behavior of Java objects, so the range of live online applications that dynamically present information to and interact with users over enterprise networks or the Internet is virtually unlimited.
Was this level of integration ever achieved? Did Java applets actually have a JS API? Or is this just corporate double speak.
It was possible to expose something:
https://www.codejava.net/java-se/applet/liveconnect-the-api-...
That said, the nomenclature was pure marketng bs.
It is still funny to see a job offer with a mistaken Java and JavaScript posted in a title or in requirements section.
Edit: expanding my not very common claim — I first started using JavaScript when it was called LiveScript in Netscape betas, the second non-static website I built was Java (using DB/2 on OS/2 — I sure could pick winners!), and I worked at a web development company until 2001. During that time, you'd commonly hear about Java (along with Perl, PHP, Cold Fusion, and even C++) and we used JavaScript heavily but I never once met a client who was actually using server-side JavaScript although they certainly existed.
So it'd be like if whoever was announcing this hypothetical C#Script was doing so together with Microsoft..
This press release itself even says it in the first sentence
>Netscape Communications Corporation (NASDAQ: NSCP) and Sun Microsystems, Inc. (NASDAQ:SUNW), today announced JavaScript
In early 90s my uncle (now 60 years old electrical engineer) taught himself clipper from 0 (no programming background whatsoever, and no English language) and wrote a software for capturing and analysing temperature curves of polymer ovens at a factory where he works that is still used to this day. They keep a DOS PC just to run it :)
I don't think it's possible to do this with modern programming technology, there's too many layers of abstraction and unrelated asides blocking people from "just making it work".
But yeah, Borland really messed up.
Java was one of the biggest buzzwords of the late 90's.
Oracle now owns that trademark today
https://tsdr.uspto.gov/#caseNumber=75026640&caseType=SERIAL_...
For what it's worth, Microsoft lost a lawsuit over their Java clone called J. Their Javascript clone was called JScript.
They made .net and C# instead and probably would have tried to make a new web language except that there was no room. One could argue that that VB.net was that language to some degree.
I ended-up using it extensively for a period of time from 1998 to 2002 to automate webpages that only ran in the intranet. I also used Wscript to run certain OLE or ODBC based automation (ie. grab data from Excel and write to a file) that was clunky to write in Perl.
Zuckerberg’s not-so-subtle message to Facebook employees: Don’t end up like Sun Microsystems
Facebook CEO Mark Zuckerberg has put a pretty hefty reminder for Facebook employees to keep striving for relevancy right outside the front door. An aging Sun Microsystems sign, on the back side of the Facebook sign, is a well-placed message to them.
https://www.geekwire.com/2014/zuckerbergs-not-subtle-message...
I'm pretty sure Java came from the work James Gosling did on Oak, which was mostly used for embedded systems. I remember a lot of the early documentation being OO designs for devices like microwaves and CD players.
Yes, when it was conceived it was indeed intended for embedded systems but when it was released it was intended as a tech for building client-side smarts into web pages.
Java was originally conceived as Sun's response to General Magic's intelligent agent technology. Microsoft's response to General Magic was Microsoft Bob, because they saw General Magic's social interface as a threat to Windows.
https://www.infoworld.com/article/2653798/javascript-creator...
>It was all within six months from May till December (1995) that it was Mocha and then LiveScript. And then in early December, Netscape and Sun did a license agreement and it became JavaScript. And the idea was to make it a complementary scripting language to go with Java, with the compiled language.
>[The idea of an accessable scripting language] was very strongly held by Marc Andreessen and myself. Bill Joy at Sun was the champion of it, which was very helpful because that’s how we got the name. And we were pushing it as a little brother to Java, as a complementary language like Visual Basic was to C++ in Microsoft’s language families at the time.
"JavaScript would have been the ideal name because that’s what everyone called it and that’s what the books call it. Microsoft couldn’t get a license from Sun so they called their implementation JScript. So ECMA wanted to call it something and they couldn’t get anybody to donate or they couldn’t get everybody to agree to a donation of the trademark, so they ended up inventing ECMAScript, which sounds a little like a skin disease. Nobody really wants it. "
Why didn’t that happen? And why did it take so long before we got Groovy instead, if Sun wanted was imagining something like it way back in 1995?
Then they were hoping that no one would buy them, not even themselves cared to own Java after their trick.
So now they push Kotlin, while researching Fuchsia, and keep a bunch of lawyers quite happy.
Interesting logic.
Thankfully we are going to have that settled in the near future, and then Android folks can party all night long with their Kotlin implementation and rename ART into KVM.
Not what I would call a tornado in the meaning pf destruction.
And about the license, well, it is disputed, right? I only read about it tangential, but the case seemed far from crystal clear to me.
No one needs Android Java slowing down the Java ecosystem by imposing additional burdens on Java library authors that also want to target Android.
Besides Google that is.
AFAICT the whole fight is over API's and not "don't pay what the license specifies" as they give you the ability to do a clean-room implementation without paying royalties.
It explicitly only allowed the use of JavaSE on desktop deployments, OpenJDK was yet to be made available.
I was the only PC guy on my gang, and that was just due to other factors not commodity.
Looking back at interviews and industry articles from that era, there is a common theme of Sun hating Microsoft. Lots of companies and people hated Microsoft but Sun seemed to make it their central ideology. As a result, they took their eye off of making great technology that customers could use to solve their problems. It's a pity because they were so far ahead of the game at that point that they could have developed into something wonderful instead of being absorbed by Oracle, with little trace left besides Java sleepwalking through the modern era.
I think basically everyone did back then. There was a pervasive understanding that if you were small enough, Microsoft would use underhanded business practices to crush you if you became a threat. If you made a compelling product, Microsoft would clone it and use their might to make it win.
It felt like taking a pottery class with a grizzly bear in the room. Really hard to be like, "I should just make the prettiest bowl I can" when you know at a moment's notice your head might be swiped off.
I had an internship at Sun in 2002. I distinctly remember a town-hall meeting hosted by Johnathan Schwartz (CTO at the time, later to be CEO) where an engineer asked something to the effect of "this all sounds great, but how does this actually make us money?" The engineer was told in no uncertain terms that he shouldn't ask such questions, that he should focus on engineering and that he should trust that other people would handle the money side.
Netscape did try to position server-side JavaScript as part of its Enterprise Server package though, but it was not JVM-based. But the environment was proprietary and not compelling enough for a myriad of reasons. It ran server JavaScript in CGI mode.
JavaScript took a long time to actually make it server-side. First with standalone interpreters (ie. Spidermonkey) and later with a full-fledged runtime and development environment (NodeJS).
Sure, but that's not an argument against JavaScript having potentially been a planned part of the JVM ecosystem (or, at least, a language playing a role in the JVM ecosystem, without itself being hosted on the JVM, instead maybe interacting with the JVM through some kind of IPC or FFI bridge.)
Remember, Sun used to be trying to squeeze the JVM into web browsers as well, in the form of Java applets. But we never saw any real ability to script against these applets. "Java applet 'engines' under JavaScript control", could have been the portable equivalent to "ActiveX components under JavaScript control."
You know how modern games involve 1. a self-contained game engine written in C++ or C#, plus 2. the game itself being mostly Lua scripting? If Sun had pushed harder, we could have seen something like that in 1995, with web browsers running JavaScript-scripted games calling into Java game engines; long before we got equivalent HTML5 APIs like Canvas.
Probably, if the world had gone down that path, we would have seen JavaScript gradually moving "into" the JVM; and the JVM gradually coming to take the position that the JavaScript engine takes in modern web browsers.
If the Java@Netscape story came about earlier than 1995 then maybe yes, the JVM could have made into the browser as THE scripting environment for an eventual JavaScript language, because Java the language was not suited for webpage designers to throw something together un a highly evente environment. The browser was the place to be and Java just didn't make it there (they fought hard though with their applet crap).
https://en.wikipedia.org/wiki/Telescript_(programming_langua...
These days, ironically, Telescript is a model for how distributed computation works in the 3rd world, and even in the first world. But Telescript basically would have made the lattice structures more hybridizable to project information and jobs within the context of already existent social networks and maybe provided a better nexus for useful work done vs power given up (it was made on a very astute observation about the energy, work, power, time, information, transmission nexus) before anyone named a "peer to peer network", a distributed consensus protocol, or introduced money into the picture.
Why not call it e-Java or Java XYZ or something?
It was only kind of true back then, and not even remotely true now. There really isn't a solid line you can draw between a "script" and a "programming language". To me, something like Python is right in between.
Additionally, explicit compilation/linking/assembly shouldn't be required for a scripting language, even if the interpreter does stuff kind of like this behind the scenes for performance.
“To me, if something acts logically like it is run from top to bottom, it's a scripting language.”
I don’t see them as scripting languages, but that definition would include them.
Example, consider this mutually recursive definition at the top level:
a = 1:b
b = 2:a
It doesn't, by any means logical or not, look like it runs from top to bottom. If so, the first line would have immediately been an error because `b` is an undefined name.http://stackoverflow.com/questions/28711563/ddg#28711778
You broadly dismissed my entire comment, which was completely correct about Ocaml, but I accept that you are correct about Haskell.
https://docs.microsoft.com/en-us/dotnet/csharp/whats-new/csh...
I think "scripting" vs "programming" language differentiation is elitist nonsense. This isn't a meaningful boundary. It's more useful to speak of languages in terms of strong/duck/loose typing, syntax, supported programming paradigms, ecosystems, available libraries and tooling, and intended use cases.
I think it's easier to draw the line if you have the requirements right. That's not the line that was being drawn. it was scripting vs compiled languages. It was very clear then which sides Java and Javascript fell on. There are some weird cases now like compiling scripts into different scripts, but in general it's pretty clear, and Python is definitely a scripting language.
Python is actually compiled to bytecode, just like Java. Is it not a scripting language?
Or is the distinction that the Python bytecode is interpreted whereas Java is JIT compiled to machine code? Well, Java didn't get the JIT compiler until version 1.3 - so was Java 1.2 a scripting language?
(Thank you, genuine question)
The whole JavaScript thing was just marketing. In 1995, Java was THE hottest thing so associating it with Java might fuel adoption/acception.
There is an old saying; Java is to JavaScript what Car is to to Carpet.
Re. your compiled question. It's up to the browser on how to execute JavaScript. E.g. Chrome has the V8 engine. This is the VM that compiles and executes JavaScript within Chrome. Other browsers might have different engines.
Java code has lots of structure required to write a minimal program. Java is transformed by compilation into a set of .class files. Then, in turn, a loader loads, resolves all the classes, and begins transforming and executing code.
These distinctions can be muddy sometimes.
The twist is that the JVM (Java Virtual Machine) is also a kind of interpreter, but can do on-the-spot ("just-in-time") compilation of parts of the code as well.
Java is great at what it does, which is not scripting.
But there's a lot of magic involved in transforming Java to class files, and then there's a lot of further magic in resolving, loading, and eventually executing classes.
It's not like writing a basic cache is very hard...or just "borrow" one from an OS implementation.
The super pedant in me, of course, would say they're a sliver in the middle because they're targeted at running in a software-implemented VM instead of on a real machine architecture, and that this isn't all that different from in-memory interpreter bytecode or something like a .pyc written to disk...
But then something like the more complicated loaders for native executables is a sliver in the middle, too. And then you look at something like the AS/400 with super-high level "instructions" and these distinctions get super, super muddy.
The idea was similar to how web components are used today. Your web page would contain custom applets for a fancy input field, a calendar control date picker, and whatever other controls html didn’t provide, all implemented as Applets.
It could have worked out and the web today would have looked very different except that Java applets always performed terribly on first load. Nobody wanted to have their customers wait 30 seconds for the custom controls to initialize.
I sometimes wonder what might have been if Sun had actually fixed the initialization of Applets. In many ways Applets were nicer to develop than today’s web components.
Was it JVM startup time, Java xfactory-begat-y-begat-z code init time, what?
Also, applets run outside the browser, correct? I.e. on the browser's host system in a separate JVM process?
Remember Javascript was slow as ass too until the late 2000's when browsers were implementing efficient JS engines. If web pages would've been build like common JPAs they would've been as bad as applets.
The Applets ran fast enough (even on 1995 machines) once loaded, at least fast enough to be useful. But that delay at startup when your CPU went to 100% and your hard drive buzzed away, freezing everything else you machine was doing, just killed any interest the public had in using applets.
Part of the problem is that they JIT'ed everything without caching it and that included the standard Java libraries. So every applet started to execute, called some standard API, the API was JIT'ed, that called some other part of the API which was JIT'ed, etc, etc. I could never understand why they didn't compile at least the standard libraries on install or first use and save the result.
As in "Well, just learn to deal with it. And be grateful you have a graphical interface at all."
Making things better, or pushing the state of graphical presentation art never seemed to even be a core interest, much less competency.
Which is ironic, because a lot of that organizational choice seems reflected in Java, e.g. having to boil the ocean and re-implement everything for major arch changes.
Anything would have been better than CDE or OpenWindows at the time, and the NeXT GUI was quite innovative in the 90s.
JS eventually won the game here after IE advanced Web 1.0 with great support for AJAX, etc.
The funny thing is that if Sun was on the ball and didn't abandon HotJava, your modern day browser would have been a Java app.
Not so distant to J2ME browsers like Opera Mini, and today with Android I am not sure. Chrome is C++, but on Android everything gets blurred.
Two things caused people to backpedal from the applet strategy:
1) Because there was a large hiring pool of millions of fresh grads leaving college with a little Java under their belts, it having displaced C++ and Pascal as an introductory language, companies began Java projects and Java came to be seen as an enterprise language.
2) The JVM that Microsoft implemented inside IE had proprietary Microsoft extensions for greater Windows integration. Sun sued Microsoft over this, and won. After this, Sun pivoted to having Java be a browser plug-in in order to provide a consistent cross-browser experience, rather than having each browser vendor provide their own implementation. The browser plug-in was way clunkier even than the original embedded JVM was.
It really hurt Java in the browser when Microsoft refused to ship Sun's code with Windows. Not sure why Sun assumed that after suing Microsoft about the JVM, they'd be willing to distribute Sun's bits for them. They really seemed surprised and angry when this happened and were unprepared for it. Maybe pivoting to browser plug-ins was the only way forward they could see. Seems like the actual path forward would have been to make the Sun JVM better.
Now, there's a straightforward business case and examples of the many strategic and financial benefits of owning development and guidance of an open platform.
Then... you either owned a platform completely (closed) or didn't (someone else owned it). Vis: all the bs machinations around proprietary Unix distributions.
Sun + Microsoft was likely seen more in the context of "ceding ownership to Microsoft" than "growing the platform, that we still have majority ownership of."
Ultimately, hardware vs platforms thinking. Or my-share-of-zero-sum vs growing-the-market. Unfortunate.
Even today JS is interpreted before compiling to bytecode because the startup latency is much lower (JIT only kicks in once the background parsing is complete). Back in those days, the extent of JS was a few click handlers or similar. The JS interpreter would be done long before the JVM was even loaded into memory.
The applets themselves performed alright. They took a few seconds to initialize but we were used to waiting for JPEGs and hover effects to load over a 14.4 modem so that wasn't too bad relatively.
Definitely. Even the fourth edition of Javascript: The Definitive Guide (published in 2002) still had an entire chapter on Java/Javascript compatibility.
Pretty cool, too bad Java was so heavy...
Sure. LiveConnect was commonly used as glue to invoke and interact with applets from JS.
I wouldn't necessarily say that it enabled a virtually unlimited blah blah enterprise parp, but it had its uses. A common hack was to put some shared storage in an applet so multiple documents could use it to persist and communicate cross-document data, back before browsers could do that natively.
There was some really tedious bug in IE with the Sun VM that occasionally allowed JS events to fire concurrently whilst LiveConnect was waiting for a response from a method called on an applet, which we never quite figured out. This was one of many things that made JS+applet development unreliable and unpleasant.
I think people forget that the early web had a proliferation of plug-ins. JavaScript was most often used as glue between HTML and plug-ins which had fewer platform incompatibilities than the browsers. One of the reasons Flash became the dominant plug-in was because it was universal enough to duplicate the features of other plug-ins, including asynchronous communication via Java applet.
https://developer.mozilla.org/en-US/docs/Archive/Web/LiveCon...
FWIW as a Clojure/Script developer this technology would have been kind of mind-bending if it still existed.
Are you referring to Nashorn? If so, wouldn't "was" be the correct verb, not "is"?
I once had a boss who thought I could write Java Android apps because I knew Javascript from web development. "They're the same thing, right?"
Lifting a line from somewhere deep in the bowels of the internet, I told him that, "Java is to Javascript as ham is to hamster."
Got fired shortly after that. Company folded a couple of weeks later. Life moves on.
And so the language was compromised in its name, and arguably in its syntax and (lack of) macro system.
This also helped with their LiveConnect stuff which allowed the two to talk to each other. I think it was a huge selling point that the languages felt similar, and felt comfortable to those who already knew C and/or C++.
In those days I was doing a lot of pasting from one language to the other, and editing "int" into "var" etc. Java and JavaScript were similar in that, compared to C and C++, you just sort of forgot about pointers and pointer syntax. (even though they still sort of existed).
They sure seemed to me to be related. This is obviously most true for light use of the languages (JavaScript especially was designed for very light use)
As for the API, yes. You could control the DOM from Java without the big grey square of an applet through an API built into browers at the time:
https://web.mit.edu/java_v1.5.0_22/distrib/share/docs/guide/...
However, it was rarely used. The world might be a far different place if folks had used a higher performance (and at the time far more capable) language for manipulating the DOM early on rather than the focus on recreating the whole UI of the application on a canvas.
Keep in mind that I learned pure html when I was 10, my websites were all very static (apart from a animated GIF here and there). The only way you could do a cool menu, effect or animation, was with Java Applet (which I learned after purchasing a online Java course that was taught over ICQ - it doesn't get more 90's than that).
I have this love relationship with javascript ever since I wrote my first "alert('hello')" and I wish it a happy birthday with many more years to come.
That said, ask them if they'd prefer the backend in PHP or Coldfusion.
Also RIP to separation of concerns on the frontend (document [html], style [css] and behavior [js]) since it's all buried in javascript nowadays.
ColdFusion of course is pretty out of vogue, but places like Invision like it still.
A better comparison would be with ASP 3 or Perl.
>JavaScript scripts are designed to run on both clients and servers, with JavaScript scripts used to modify the properties and behavior of Java objects, so the range of live online applications that dynamically present information to and interact with users over enterprise networks or the Internet is virtually unlimited.
JS has come a long way in 25 years :-)
... has it? ;-)
(Note: joke with deference to the huge pool of incredibly talented js developers! But there are still a lot of mind bogglingly terrible js devs too)
Java became a language that you can toss a 100-developers onto a project for, and incrementally grind out something that has a mostly-consistent architecture. Aka the perfect IBM Services language.
JavaScript became a language you can toss up a SPA in a day from boilerplate glueing together frameworks and only writing the use-specific bits. Aka the perfect web developer language.
As other commenter said, bad developers are probably a consequence of demand > supply for any language.
I'm guessing there are some very unpopular languages out there that the % of highly skilled devs is pretty high, but I don't know if that means much ;)
Are there bad COBOL developers still practicing? FORTRAN?
What about Ada? Erlang? Smalltalk?
The mainframe families?
I bet most js devs would not be able to make a "hello world" in C. And pointers? What is that?
So for those people(not meant in a negative way) it is good that they can use a language to get things done, even if they have no academic background.
However there are toooo many "jQuery developers" with no understanding of the underlying things, while JS+libraries enabled them to do quite fancy things.
Also, it did help me recently, working with wasm. Not compiling it yet, but using a libary.
Being capable of two different languages (TS and JS doesn't count ;)) however is a useful indicator.
Those people have to be naturals, though. Or really just focused on javascript and only javascript if they know about software architecture but nothing about compilers or pointers.
But sure, you definitely can write bad JS, if you are forced to use JS, when you wanted to use C (++) ... which probably happened to a lot of people, which is why we see the hate of JS in that intensity.
Like if you just gave them a text editor and the gcc manpage? Why would they know? It's an entirely new language to them. How are you going to learn a new language's syntax or library functions without a reference?
If you gave a JS programmer a C programming textbook or tutorial they'd type out and run Hello World in about 2 minutes, like anyone else.
There are lots of js programmers, who do programming by modifying copy and paste bits of code in a try and error method.
They don't know they use a dynamic scripting language. They don't know what a compiler is. They oft even don't know exactly what a variable is. So I doubt they boot up and run C in about 2 minutes. And man page? Terminal? What is that?
And if they manage after a while, they still don't understand printf, as it already uses pointers. They don't understand types. Etc.
Those are the people, who are eventually able to make a website somewhat work, but they never learned the basics. Thats why there are lots of terrible js devs around.
Oh and like someone else has mentioned, of course because people coming to js and insist to write js code in C style or in java style. When js is a prototype based language, requiring different methods. (even today when there is finally class support)
Please define this term. Especially "scripting".
> So I doubt they boot up and run C in about 2 minutes.
It took me about 10 minutes into my intro to programming class in high school, starting from zero programming knowledge, to run hello world.
> And if they manage after a while, they still don't understand printf, as it already uses pointers. They don't understand types. Etc.
You're moving the goalposts. Why would they know all things? Those are language features and they don't know the language. A C programmer doesn't know the prototype chain.
> because people coming to js and insist to write js code in C style or in java style
News flash. Everyone writes code in the idioms they already know, until they learn the language better.
What you're saying boils down to "JS programmers are some special class of people that are incapable of learning". Which is elitist nonsense.
No. It boils down to JS programmers often have a background in design and not math and engineering.
The former is helpful for nice UI and UX. The later good for efficient algorithms and code design.
And is your question about JS being a dynamic scripting language, a serious one? Well, feel free to check wikipedia.
Again, you keep moving the goalposts. You started with the claim that most JS programmers were incapable of writing Hello World in C.
That claim is still valid. Have you worked with designers?
Also, have you checked wikipedia by now?
Yes. I have. I'm telling you that people with zero knowledge of programming can write Hello World in 10 minutes if you teach them. That's why I'm calling your statement elitist nonsense, because it is.
I was asking you what you think a "scripting" language is, not what Wikipedia says it is.
Yeah well, lots of javascript programmers are not formally taught. That is still the point.
Anyone can write C programms if taken by the hand. But not without.
But allmost anyone can write javascript without being taken by the hand.
You just open the console/integrated dev tools.
Type in some commands you see on some website - voila, first programm. Then you can make experiments on the fly - because, wait for it - scripting language.
The enviroment is already there and you manipulate it with some scripts. You see immediately what works and what not.
In C you have to build your enviroment. Means setting up compiler etc. .. which means knowing the terminal or setting up complex software with nonintuitive design. Many ways of fail for the unguided beginner before the first programm succesfully compiles and .. then it still can fail on runtime.
Is that difference so hard to grasp?
A textbook is hardly "taken by the hand". But never mind that.
> You just open the console/integrated dev tools.
And how does someone with zero knowledge of web programming know these even exist?
> Type in some commands you see on some website - voila, first programm
Right. How is this any different from a JS programmer looking up "Hello world" on a C programming website?
> The enviroment is already there and you manipulate it with some scripts
How do you know what "scripts" to try if you've never written JS?
> Then you can make experiments on the fly - because, wait for it - scripting language.
As opposed to...saving a .c file and re-running a single compile command? That's not a huge barrier.
> You see immediately what works and what not.
Does a Hello World program in C take multiple minutes to compile and run?
> Means setting up compiler etc. .. which means knowing the terminal or setting up complex software with nonintuitive design
Lmao at "knowing the terminal" and "setting up compiler". These "designers" you scoff at use Macbooks. Which have a perfectly operational terminal and clang installed by default. I can tell someone in once sentence how to open a terminal, compile and run a C file. I've personally taught multiple designers how to use a terminal. We're allowed to assume that "designers" know how to open a text file and save it right? Or does that take more "math and engineering" knowledge than the average designer has?
> Many ways of fail for the unguided beginner before the first programm succesfully compiles
More than for an unguided beginner writing JS? I doubt it.
As someone who writes C++ for a living, I think you should re-examine your beliefs about C and JS programmers' ability and proficiency.
Or just actually try to teach people JS and then try to teach them C++.
Funny how long it took node.js to appear and make this bit of press release a common reality.
There were two buttons, one labeled "Our Web Site", the other labeled "Our Competitor's Web Site".
When you moved the mouse over the "Our Competitor's Web Site" button, it would quickly slide out from under your cursor before you could click it!
Then when you stopped moving your mouse, the "Our Web Site" button would slyly slide right underneath your mouse!
Dammit Microsoft!!! ;)
The first dark pattern on the web?
I blame the failure of Java applets on Microsoft who deliberately undermined them.
I rather think JS was more appropriate as dev found more use in dynamically altering the very html markup that users saw, and after it was actually rendered.
MS definitely had a lot to do with Java applets failing though; after SUN fought to avoid being embraced/extinguished by VisualJ++, MS just pushed their own ActiveX tech to do the same thing, which was inevitably more performant (because it was based on COM+ and other Windows-specific innards).
ActiveX was winning, but that really was a security nightmare.
Eventually enough of the useful parts of ActiveX crept into JS enough to build real stuff with it.
I didn't care at the time. I hated all things HTML, CSS, JS. Such a downgrade from state of the art. I regarded the browser as terrible means to deliver, bootstrap applets. Just like Flash.
One thing I didn't appreciate at the time was the genius of HTTP and URLs.
I'm still completely baffled by the "worse is better" thesis. I just can't understand why JavaScript was created, much less why it succeeded.
One can understand how mistakes like \0 terminated strings and SQL's NULL happen, become hard to undo. But JavaScript is the original sin that just keeps poisoning. Other platforms, ecosystems learn and grow and mature. JavaScript stubbornly refuses to acknowledge truth and goodness, and is all the more successful for it's belligerence.
Amazing.
I think people will probably hear that and think poorly of today's more permissive JS, but it's worth mentioning that there wasn't much of a browser security model at that time. Browsers/pages weren't sandboxed, and there was no concept of "Allow site to do X?" like we have now.
This lead to some iffy things with even early JS, such as allowing sites to set the user's homepage just by clicking a link.
Everyone knows that we are so far removed from assembly that it creates zero confusion in reality.. javascript caused real confusion.
https://www.joelonsoftware.com/2009/01/12/by-installing-java...
Maybe it's because I was 20 back then, but there was a sense of fun and exploration in most computing that is somewhat missing in this age of smart-everything, JS-everywhere, and total surveillance.
Everything was awful, and everyone was happy. Remember being super excited the first time you saw an animated GIF!? Or you could mouse-over a picture and there would be a popup that said "hey don't touch my face"! Everything was slow and crashed all the time, but it was new and really interesting and fun. People were just figuring things out, and the new stuff that was coming out was amazing at the time. Everything was getting faster and better, but damn, it was hard to get anything done.
And you're right - nowadays we can stream video, audio, games, compile and run code from numerous languages right in the browser, and the web has more interesting and rich content than ever, but everyone is mad because that means the web has moved beyond their childhoods and gotten complicated with time.
There is a bit of that, but there is also a realization that we probably did not really need most of these "advancements".
Totally this!
Not sure if times were actually different, or it's just that I was young then...
Java was everywhere pretty much as soon as it landed in 1995, because SUN pushed it like crazy and loads of shops were actually looking for something better than C/C++ for a large number of apps. By the time Python 2.0 was released in 2000, OOP was pretty much a requirement for anything, and I'm pretty sure that had classes. Python didn't reach popularity in the mainstream until the late '00s anyway.
I didn't know that server-side JS was a thing back then.
EDIT: Okay, server-side JS indeed long predates Node.js. See below.
https://docs.oracle.com/cd/E19957-01/816-5653-10/816-5653-10...
https://en.wikipedia.org/wiki/Rhino_(JavaScript_engine)
Albeit it was two years after the announcement.
The Netscape Server had JS in 1998.
https://docs.oracle.com/cd/E19957-01/816-6411-10/contents.ht...
When I think back IE browser was the top browser and there were all sorts of workarounds to get it html compliant (or rather IE compliant). Easy to learn html, but hard to get it working right. Then adding in javascript for the added dynamic flair.
I wanted to learn javascript & I ended up learning first java not knowing the difference at the time. Fun times were also spent at Barnes & Nobles / Borders (bookstore in U.S.) - checking out technical books and eventually I toiled through learning VBScript / Windows IIS to extend out a simple ecommerce site and possibly paving my way into the technical field.
Didn't Netscape also have email integration? I can't recall anymore as I went through multiple internet providers like Aol.
What is the same between us however is I also learned coding practically by first starting to make HTML pages, and some Javascript, and that was also my way into the technical field (decade and a half of working as a software engineer now). Like, sure, there were computer programming classes in school and every class used Pascal at the time (Quick or Turbo). It didn't feel like creating anything useful for the real world though; whereas with the web, I was immediately creating something for the world to see. I'd say learning to make web pages on my own was 99% of the reasons I became a software engineer later. The programming classes in high school, not so much.
I enjoy Rust the days. Modern C++ certainly ain't bad, but nostdlib Rust is also the first serious threat to full spectrum C in a long time.
The way I understand it, early JavaScript could only address HTML forms, links, and images. Can't modify HTML tags. Can't insert new elements. Can't update the page and re-render until DHTML in the version 4 browsers. Can't query the network until XHR.
Ok, so now what?
Do you just pop up an alert() when someone types 4 digits for a Zip code instead of 5? Image rollovers? Is that it?
But yeah, there wasn't really a whole lot of functionality. You could do fancier things with the Layer API in Netscape, but it only worked in Netscape.
I see so many "you don't need JS" articles that mention some of the basic HTML type form field validations and they're nice-ish... they're never enough.
Of course, this brings back painful memories of multiple occasions where somebody said, "this is dumb, we already validated it on the client side, we don't have to re-validate it on the server side" and took out the server-side validation (even after I tried in vain to explain to them why that was a security hole...)
If at all possible I think of client side as "active" validation with lots of feedback and such built in. Back end is "passive / defensive" where validation is more 'nope just not gonna do that'.
Every time I think "let's see how much I can do this on the back end" it ends up being kinda wonky, I'm sure it is possible but just human interaction type stuff, I like it on the front. Security, detailed rules, etc, back.
for Navigator 2.0 http://web.archive.org/web/19970613234917/http://home.netsca...
for Navigator 3.0 http://web.archive.org/web/19970614042441/http://home.netsca...
You have frameset and can document.write() — enough to implement ToDo MVC — dynamic list on Netscape 2.0:
Marcin Szczepanski: What's new in Netscape Navigator 2.0 | JSConf EU 2017 https://www.youtube.com/watch?v=Z-nXRZkge2U
All three HTML, JS, and CSS could have used one Lisp-like dialect.
Also, I remembered that JS was horribly misunderstood for a long time because people weren’t used to the prototypical inheritance. And this is where jQuery comes in and took JS to the next level.
Other than being aesthetically pleasing to a demographic of programmers, what would be the benefit? Modern sites already have a problem with JS being used to generate CSS and HTML, and separation of concerns being completely abandoned, and that's just created a mess where three separate, more explicit languages were simpler.
By who? You? Because there’s tens (hundreds) of thousands of programmers and thousands of companies working on JavaScript. Just because many here consider JavaScript bad doesn’t mean everyone does. JavaScript has many problems, but it’s not “widely regarded” as bad.
"In the beginning the Universe was created. This has made a lot of people very angry and has been widely regarded as a bad move."
12-year-old me was very happy with such a low barrier to entry language, especially given that I didn't have an internet connection until years later, so I had to learn mostly via trial and error.
Some time before 2000 (though I forget which year precisely) I even submitted some Javascript to Planet Source Code (anyone remember that website?) that simulated a Windows 95 desktop; complete with interactive start menu and task bar. That submission was the highest rated for that month and was awarded some free software as a prize -- though I never claimed that prize in the end.
It's true that the early days of Javascript was rather lacklustre (not helped with the the IE/Netscape wars) and thus few people took it seriously as something that could displace Java applets nor Flash. But it was still widely used as something to make traditional web design a little more flexible (eg Javascript refreshes).
Part of my actually misses those days. Web design was simpler in some ways (it was predominantly backend generated* HTML with JS sprinkled about sparsely). Though I don't miss browser incompatibilities -- even basic things like displaying a table (not a grid of divs, a literal <table>) was fraught with different browsers rendering the table differently.
* and in fairness, I was always more of a backend engineer rather than frontend designer anyway
This one document certainly captures the state of the software industry before it was transformed by the Web (then Mobile then Cloud). The vision of JavaScript being both server-side and “isomorphic” is clearly articulated but it was a convoluted road getting there.
Let’s credit Google’s V8 and Node.js for making performant and concurrent/evented JavaScript ubiquitous. Netscape/Sun, Microsoft, and Sybase abandoned their server-side JavaScript efforts for Java/.net bytecode. Microsoft was the only relevant browser until Firefox rose from the flames like a phoenix. Linux and OSS software killed or maimed most of the companies mentioned.
I still test with Netscape 2.0 out of respect, and some JS features work with it on my site.
The Web is just amazing, I can write across 25 years of platforms from a dozen different vendors, totally unrelated, and it works in all of them!
However, as I got to know the language better, my enthusiasm dwindled due to what I thought to be a strange type system. Also, I got access to Java implementations on HP-UX and Macintosh, so I never went back to JS. This has always limited my ability to do web front-ends, but now I'm looking to using Blazor for that.
Mocha1995 - The world's first JavaScript engine written in 1995 by Brendan Eich, now compiled back to JS and WASM
https://github.com/doodlewind/mocha1995/blob/main/blog/about...
I was born in 1981, and the "cool" technology places to be when I was growing up were Microsoft, Sun and SiliconGraphics.
Enter Perl and PhP server-side.
Then there was JSP, ASP, and ColdFusion, all server-side.
Rails! Also server-side.
Then back to JS.
Disclaimer: I like types, I hate automatic casting.
Still a pretty funny talk for sure.
hmmm... i see more and more schools/unis teaching JS to beginners. it's beginning to be more of an elephant in the room than a poor kid that's bullies all the time.
isn't calling this "weaponized cynicism" a way to silence dissent against the mainstream? JS clearly is mainstream now.
I first used the web in early-mid '95; it must've been around April-May of that year.
I'm no JS-hater, but it's still nice to think I had a brief few months of script-free web use before the JS era dawned.
Hopefully Brython[0] which lets you do client-side Python scripting takes off.
Imagine doing full stack web dev without seeing a single line of JS.
I don't see the point.
I think you're better off placing your bets on newer ECMAscript features and full-conversion libraries like React.
Seriously though, I'm putting a lot of hope in the LiveView/Stimulus Reflex/etc approach.
Those words “open source” and “cross platform” are still in vogue today.
That’s just amazing for an industry that changes every year and in the land of JS every month.
i can't remember if in 1995 we would write the code to be AT&T or if that came a bit later.
perhaps the scraper thought it was an HTML entity starting with the & followed by the T and it added the semi-colon.
or maybe it originally was posted in 1995 without the semi-colon and before it got indexed in 2002 by archive.org someone ran a regex style replacement on old static html files at netscape to "fix" html entities.
it just doesn't seem likely that a static html file from 1995 would have had AT&T; in it, it seems more likely that it was transformed either by the scraper or some internal script run after it was originally posted.
i found an old email version of the press release on Lunds University website that does not have the semi-colon. http://www2.ldc.lu.se/temadag95/javascript.txt
and what looks like an archive of the 1995 version of the java website hosted at University of Oviedo: http://www6.uniovi.es/java-http/pr951204-03.html
The link to netscape.com at the end is mysteriously missing still, "Additional information on Netscape Communications Corporation is available on the Internet at ,"
[1] https://web.archive.org/web/20020606002913id_/http://wp.nets...
After this, I thought that everybody should learn C/C++ at school, it's like Latin to other languages (I learned Turbo Pascal at school and didn't like how it handled pointers and its overall elaborative style).
JavaScript has come a long way, to where the shame of any self-respecting engineer has been reduced to a bearable minimum!
Was on a conf call with VPs from Sun, and i said, and I quote myself:
"So youre telling me that you have this shitty b2b system that youre not happy with and you want us to implement XML to accomodate"
and this VP was nixing it the whole time iwth "hand cut across the neck" manurisms...
later I hired Dave Sifry - and had his team implement a b2b FTP between us and sun...
I later went to him and stated " You should really make a linux support company"
Linuxcare was founded, worth unicorn.
I got nothing
The Tcl War (1994) (vanderburg.org)
https://news.ycombinator.com/item?id=12025218
https://vanderburg.org/old_pages/Tcl/war/
Why you should not use Tcl. Richard Stallman (rms@gnu.ai.mit.edu). Fri, 23 Sep 94 19:14:52 -0400
https://vanderburg.org/old_pages/Tcl/war/0000.html
John Ousterhout's classy reply:
https://vanderburg.org/old_pages/Tcl/war/0009.html
Personally, I was on the side of ScriptX at the time (essentially object oriented scheme with a more traditional syntax and a nice multimedia class library including QuickTime), but it wasn't mature or open enough at the time, and we lost too:
ScriptX and the World Wide Web. "Link Globally, Interact Locally". By Don Hopkins, Kaleida Labs.
http://www.art.net/~hopkins/Don/lang/scriptx/scriptx-www.htm...
https://en.wikipedia.org/wiki/ScriptX
The real tragedy is that the script of choice for the web was't Lua:
https://news.ycombinator.com/item?id=12027092
by DonHopkins on July 3, 2016 [–]
Around the time leading up to the TCL war, Lua was peacefully and quietly born in a manger at the Pontifical Catholic University of Rio de Janeiro, Brazil:
"In 1993, the only real contender was Tcl, which had been explicitly designed to be embedded into applications. However, Tcl had unfamiliar syntax, did not offer good support for data description, and ran only on Unix platforms. We did not consider LISP or Scheme because of their unfriendly syntax. Python was still in its infancy. In the free, do-it-yourself atmosphere that then reigned in Tecgraf, it was quite natural that we should try to develop our own scripting language ... Because many potential users of the language were not professional programmers, the language should avoid cryptic syntax and semantics. The implementation of the new language should be highly portable, because Tecgraf's clients had a very diverse collection of computer platforms. Finally, since we expected that other Tecgraf products would also need to embed a scripting language, the new language should follow the example of SOL and be provided as a library with a C API."
I guess it also complements Erlang.
That didn't go so well. It's well integrated with Webkit at least ;)
Scheme’s not bad, but I think if you compare The uptake of both, Ruby did better? (Not counting Lisp.) It was a cool language though; a lot of problems that would’ve been avoided, if people could type all the braces in correctly... for Lisp at least.
[1] https://en.wikipedia.org/wiki/Grail_(web_browser)
[2] http://grail.sourceforge.net/info/papers/restofus.html#apple...
So now, you have a poor language, with another layer of a different programming language. Is it any surprise that the web is so slow these days, with all these indirections?
What a dream.
What a pleasant way to begin my day. Thank you for this moment of bliss.
That existed without JavaScript (and IIRC it was somewhat common back when JavaScript was a novelty): <meta http-equiv="Refresh: 60">
Why would I ever want to touch a webmail interface with a 3 m pole?
That would've been a better world. Imagine the web that isn't an application platform. (it still isn't, but it's being actively shoehorned into becoming one)
Server-side applications (CGI) started the trend of the web browser becoming an application interface. Javascript made the web browser the application platform. But of course it was not designed for this, so a million hacks have been added to shore it up. To the point of literally including a standard to ship arbitrary binary executable programs into it. There used to be another tool and language which allowed you to ship arbitrary binary executable programs to remote systems... it was called Java.
The Web is the best example in history of how successful turd polishing can be. The global economy now rests on it.
Phones were invented to only make phone calls.
Coca-Cola was originally created as a way to counter morphine addiction.
Listerine was originally a floor cleaner.
None of those were turds and neither is the web as an application platform. Quite the opposite- Native apps suck compared to web apps. The only native apps I personally use besides the browser on my phone are Maps, Messages, Slack, Camera/Photos and those are only because there's no other choice. Imagine having to use an app instead of popping open the web browser to order from Amazon? Yeesh
Oh wait. Yes there is. It's the web app as a native app, because the browser experience literally wasn't good enough.
Saying web apps are superior to native apps is like saying a bicycle with a 2-stroke is superior to a motorcycle. Maybe for your use case it's better, but objectively it is literally a crappy imitation of the real thing that can't even do things the real thing can. A web app is the Visual Basic of applications (but not really since VB is so much more useful!)
Nope, it's not like saying that at all.
Your entire argument rests on denying that Electron is a browser too. That's incorrect. Electron is just another browser, one that the web app developer happens to have more control over than they do Chrome. Every Electron app is a web app. Browsers have always handled the native bits for the web app and that's exactly what Electron does. (On the mobile side of things, React Native via something like Expo would be the equivalent of Electron on the desktop.)
Together, the browser and the web app form a native app because a browser is basically a scriptable native app. So, your argument is that "native apps > scriptable native apps" which makes no sense.
> Maybe for your use case it's better...
Web tech is absolutely better for every user-facing (GUI) use case. Even with 3D games which are streaming via browsers right now - performance might not be the greatest right away but since browsers have all the capabilities that any other native apps has (because they're native apps themselves) - it wouldn't be inconceivable that 3D web games could perform on par with native 3D games.
Personally, I develop all of my CLI/server apps with web tech as well (that'd be JavaScript running under Node.js). There's really nothing better - and that's why JavaScript is the most popular programming language in the world by far.
> A web app is the Visual Basic of applications (but not really since VB is so much more useful!)
Having started my career with VBA I couldn't disagree more. But even so, is VB (VB5/6/VBA/VB.NET?) your go-to native development environment? Any of those choices are laughable IMO, but okay - I guess enjoy developing all of your apps in VB then :)
Down the following thread, Brendan suggested googling "constructive separation" -- but I'm not sure if he meant for that euphemism to apply to how he left his job at Mozilla, or to how he wanted to cancel and destroy existing happy same sex marriages in California against their consent. All of the google results have to do with marriage, not employment. Brendan, care to clarify?
As JavaScript proves, Brendan Eich never really understood the concept of equality: https://dorey.github.io/JavaScript-Equality-Table/
https://news.ycombinator.com/item?id=24127716
DonHopkins 3 months ago | on: Mozilla lays off 250 employees while it refocuses ...
Eich was not forced out or fired. In fact, just the opposite: the board actually tried to get Eich to stay, but he decided to leave all on his own. Don't try to rewrite history to make an ideological point. It's all very well and unambiguously documented what really happened, and there's no excuse for you spreading that misinformation.
https://blog.mozilla.org/blog/2014/04/05/faq-on-ceo-resignat...
Q: Was Brendan Eich fired?
A: No, Brendan Eich resigned. Brendan himself said:
“I have decided to resign as CEO effective April 3rd, and leave Mozilla. Our mission is bigger than any one of us, and under the present circumstances, I cannot be an effective leader. I will be taking time before I decide what to do next.”
Brendan Eich also blogged on this topic.
Q: Was Brendan Eich asked to resign by the Board?
A: No. It was Brendan’s idea to resign, and in fact, once he submitted his resignation, Board members tried to get Brendan to stay at Mozilla in another C-level role.
Imagine if you said that the pain and suffering of every developer for the last 25 years was largely your fault. There would be lawsuits. Class action. We'd all travel to come testify.
Hyperbole and nonsense. No one was "suffering" under Javascript until Node and compile-to-js languages and the Byzantine nightmare of a development environment that they created came along. No one was shouting "Javascript Delenda Est" when all you needed was an FTP account and a text editor to configure a JQuery plugin.
I mean, Javascript development used to be reasonably simple, straightforward and fun. It's Silicon Valley's fault that it no longer is, not the language.
Personally, I'd lay this at the "copy & paste, boot camp-trained" webdevs community's feet, along with their customers.
Js has an unfortunate ecosystem dynamic where its primary customers (I want to X on the web) don't understand it, so its primary developers don't have any standardization pressure (fragmentation / spaghetti at the wall), browsers are forced to enable this behavior via monkey patching standardization in presentation, so its end users (browser users) are oblivious to everything under the hood.
It's like the perfect storm of hidden sausage-making.
You can be a Java dev for years (forever really) without understanding how the JVM works. I don't see why the web has to be any different.
Ime, the less visibility and knowledge customers have into an implementation, the more opportunity there is for developers (especially contract) to go off the rails.
When the code behind "it works in my browser" is completely opaque... that doesn't set up the best technical incentives in the market. Past "minimize time-to-deliver".
In a slightly different turn of events, web software ecosystem perhaps could be different from the pile of hacks on top of hacks it is now.
https://www.jwz.org/blog/2010/10/every-day-i-learn-something...