8 ms·
JavaScript: The First 20 Years
- endgame 6y agoLet nobody ever again say, "we'll ship it now and fix it once it's in prod".
- jimbob45 6y agoIt’s not like Microsoft’s culture was any better. There are stories of engineers sleeping under their desks during the browser wars. It’s a testament to JS that most don’t even remember Microsoft’s answer to it (Hint: it starts with a ‘J’ and ends in “script”) https://en.m.wikipedia.org/wiki/JScript https://en.m.wikipedia.org/wiki/JScript
- itslennysfault 6y agoDon't forget her ugly sister (Hint: it starts with a 'VB' and ends in "script") https://en.m.wikipedia.org/wiki/VBScript https://en.m.wikipedia.org/wiki/VBScript
- ComputerGuru 6y agoI’m not really sure what the point you’re trying to make with this is? JScript was just Microsoft’s implementation of the same spec, and was by and large interoperable with JavaScript in both directions.
- jimbob45 6y agoParent poster said it’s bad to ship early and buggy. However, Eich won out over MS doing exactly that.
- earthboundkid 6y agoExcept JavaScript is a wild success and basically all of its initial defects were eventually addressed in a backwards compatible way?
- austincheney 6y agoPart of what made JavaScript such a success is that there were somethings it got stunningly right despite all the thorns and sloppiness.
- dang 6y agoPlease don't post shallow/snarky one-liners as first comments to HN threads. Threads are super sensitive to initial conditions, so a blank thread is like a fragile ecosystem, and a comment like this is something of an oil spill.
- dang 6y agoSee also http://www.wirfs-brock.com/allen/posts/866 http://www.wirfs-brock.com/allen/posts/866 for the interesting backstory to this paper.
- jolux 6y agoSidebar to this: does anybody know if there's a full list of all the HOPL IV papers with links anywhere? A lot of them sound really interesting but I can't find them.
- ngcc_hk 6y agoI tried to get hold of these but seems nearly all mentioned in this web site (in Chinese but easy to read as very light in words) are in here. Still: https://zhuanlan.zhihu.com/p/113124925 https://zhuanlan.zhihu.com/p/113124925 Others are seems to be referenced but embargoed (or need membership). If you can access it, please inform: https://www.conference-publishing.com/authors.php?Event=HOPL20 https://www.conference-publishing.com/authors.php?Event=HOPL...
- ngcc_hk 6y agoPlease note as mentioned by others and me that the javascript one discussed here has a new version
- cxr 6y agoNow all available: https://dl.acm.org/toc/pacmpl/2020/4/HOPL https://dl.acm.org/toc/pacmpl/2020/4/HOPL https://news.ycombinator.com/item?id=23509956 https://news.ycombinator.com/item?id=23509956
- _hardwaregeek 6y agoI'm starting to develop a theory that a person's stance on JavaScript reflects their ability to critique reasonably and therefore their maturity as a developer (to an extent). JavaScript undeniably has some problems. It's also undeniably useful and eating the world. If you can hold both of these stances in your head and reconcile them into a nuanced opinion, then that's a great sign. If your viewpoint collapses into "JS sucks!!!" or "JS rules!!!" then you're not providing an opinion as much as a dogma, often one that is regurgitated from some other source. I'm not saying that one should find JavaScript good or bad by the way. Someone who abjectly dislikes JavaScript but also understands its utility is quite useful. The creators of TypeScript, ReasonML, etc. all had to dislike JavaScript in some form. But they had to dislike it in a productive, nuanced manner.
- slimsag 6y agoReplace "JavaScript" with anything and the theory remains the same: those who can articulate and declare nuanced opinions about software they have had to interact with to a reasonable degree are able to critique reasonably. I dislike the idea that all opinions must be in the form of productive, nuanced statements about how exactly technology should be changed in the service of 'one true set of technology' I think it's OK for people to declare they enjoy or do not enjoy a particular technology without signaling how exactly they would change it. It's also OK to ignore or accept others opinions of personal taste. That's one of the things that enables us to have many different programming languages today, and enabled us to have JavaScript instead of FORTRANScript.
- _hardwaregeek 6y agoThat's true, but JavaScript is something especially controversial :D. I've yet to find a programmer who doesn't have some sort of stance on JS Also yeah it is fine to say "I don't care for JS" sans explanation. But if someone were to ask why, it'd be reasonable to expect a list of justifications that had some nuance.
- orange8 6y agoI'd say that controversy is in direct proportion to its ever growing widespread use. “There are only two kinds of languages: the ones people complain about and the ones nobody uses.” ― Bjarne Stroustrup, The C++ Programming Language
- randombytes6869 6y agoI don't think its physically possible to read this in the time since its been posted, but since people are commenting anyways I might as well join in. I've been using JS since the JScript days, and let me tell you it was horrible. Awful. I would rather use VBA, Perl, early PHP, really anything I've touched besides COBOL. It was buggy, horrifically slow, had an even worse standard library than it does now, didn't work the same way between anything. I remember testing performance and getting 1000 integer increments a second in an empty for loop. Even back then an alarm clock running C was orders of magnitude faster. But the massive popularity of the web has made it decent. Its a good example of the (overused) axiom that you can pour enough money into anything and make it good. With JS, this actually happened. Probably because the other choice was transitioning the web to Flash, Silverlight, and Java Applets. The proprietary solutions lost the battle thankfully, even though admittedly they were better than JS for a long time after they died. There's still lingering problems, some which may prove un-fixable. The standard library is a joke. The 1 million line ancient Java monolith at work pulls in less libraries, by count and space then create-react-app. And not having threads is just terrible. People that don't know better ape over async, not knowing that most languages have async, threads, sometimes fibers, and fast shared memory between them. And NPM works decently but putting 5 million files into my node_modules folder is absurd. NPM is the only reason I know that most OS'es still have a path length limit. You would think the world could standardize on putting libraries into a zip or something like even ancient crufty languages like Java do. If it wasn't for SSD's modern JS wouldn't even be usable. And can we just compile JS already? Minification seems so normal that everyone's forgotten its a shitty hack. If you're going to minify to the point that JS resembles bytecode why not just standardize a format. People say "JS runs right away because its not compiled"... Well... How long does your WebPack take to transmogrify 150MB of spaghettified JS into a pile of chunks you can actually feed a web browser in prod? Probably longer than it takes most languages to compile. If we just compiled to a reasonable format like other VM languages, we wouldn't waste so much time parsing and keeping these tools working with every semantics update. Here's to the hope that money poured into JS will finally fix the remaining issues. I give it another ten years and I'll finally enjoy most of my time in JS land.
- orange8 6y agoNPM is not the standard JS library, more like the most popular third-party JS package manager and repository. It does not really have an official standard library. The closest to that is are its built in objects (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference https://developer.mozilla.org/en-US/docs/Web/JavaScript/Refe...).
- forgotmypw17 6y agoVery grateful ``this`` was posted. I've been working on making my project compatible with early JS, and ``this`` is a great reference.
- garyclarke27 6y agoTo appreciate the extraordinary power of modern Javascript, I think one must also be proficient in HTML/CSS/SQL. Postgresql for shared state management + Web components for code reuse/organisation + Web Sockets = blazing performance without the overhead of huge frameworks. I love: functional JS, Async/Await, Generators, Template Literals - Not so keen on Clases but if this makes it accessible to Java developers that’s good. All we need now is first classs status on IOS/Android.
- giantDinosaur 6y agoWhat's 'extraordinary' about 'functional js', or async, or generators, or template literals? They seem alright. Nothing particularly extraordinary, though. They don't change the way I really think about problems which is what I usually classify as extraordinary.
- randompwd 6y agoLink is outdated. Newer version(as highlighted & linked on page) is at https://zenodo.org/record/3710954 https://zenodo.org/record/3710954 Newer filename is jshopl-preprint-2020-03-13.pdf (published 14 March) Older filename is jshopl-preprint-2020-03-11.pdf (published 12 March) > There is a newer version of this record available.
- frandroid 6y agoA 190 page "paper" is usually called a book...
- ngcc_hk 6y agoThere are lots of comments and no doubt JavaScript really has its problem. But one year still I watching this and how he used mainly JavaScript to demonstrate how to think in clojure way. It is not that bad, guys https://youtu.be/vK1DazRK_a0 https://youtu.be/vK1DazRK_a0 (solving problems the clojure way by Rafal Dittwald).
- ngcc_hk 6y agoNew version: https://zenodo.org/record/3710954 https://zenodo.org/record/3710954