Why Does Everyone HATE JavaScript? (Yet Still Use It?)

preview_player
Показать описание
Whenever people rank programming languages by adoption, Javascript is the most popular programming language in the world, but few programmers, even Javascript programmers, claim that it is a good programming language. So is Javascript a bad language, and if it is, why is it so popular? Is Javascript a good beginner’s programming language and are its days numbered. JS is a bit if a language smorgasbord but in reality it currently plays an important, even a vital role in modern software development.

In this episode Dave Farley, author of best selling books “Continuous Delivery” and “Modern Software Engineering” explores the vital role that Javascript plays, talks about its creations and history and how that vital role was established.

-

⭐ PATREON:

Join the Continuous Delivery community and access extra perks & content!

-

-

👕 T-SHIRTS:

A fan of the T-shirts I wear in my videos? Grab your own, at reduced prices EXCLUSIVE TO CONTINUOUS DELIVERY FOLLOWERS! Get money off the already reasonably priced t-shirts!

🚨 DON'T FORGET TO USE THIS DISCOUNT CODE: ContinuousDelivery

-

🔗 LINKS:

BOOKS:

-

CHANNEL SPONSORS:

Рекомендации по теме
Комментарии
Автор

"The strength of JavaScript is that you can do anything. The weakness is that you will." - Reg Braithwaite

jimhumelsine
Автор

There are only two types of languages: the ones people love to hate on and the ones nobody uses.

Ogbobbyjohnson
Автор

100% of JavaScript's popularity stems from its entrenchment in the browser as the only language choice. It's evolved over the years and has gotten a lot better, but without the browser monopoly, it would have died on the vine many years ago, IMO.

EricKing
Автор

I am a software developer by passion. I enjoy writing game engines from scratch. I enjoy being in control of the program and understand what is going on under the hood. I've worked to develop new programming languages to tackle the problems of the future. But as of right now, I have a job that actually gets me an income and it is on the web. I understand very little of what is actually going on. Nobody really seems to care of what is going on as long as it doesn't crash. Abstractions skyrocket and actively prevent understanding the code at a lower level because everything is behind interfaces that can't be inspected. Performance is abysimal. Memory consumption is beyond all reason. But apparently I am the only one here who as a problem with it, so it is a me problem. I really hate my job right now. Javascript is just the little seedling that made my current existence possible.

krux
Автор

Getting JS instead of a Lisp dialect as the browser scripting language of choice is one of the great tragedies of our time.

pepineros
Автор

people just like to complain. you don't pick a fight with the smallest guy to prove how tough you are.

sixbutton
Автор

The managers of JS need to bite the bullet and deprecate the features of the language that allow for slop code, with ever-more-noisy notifications to the user, and eventually remove them from the language altogether.

disgruntledtoons
Автор

I remember when ECMA put the class keyword into the standard, and all the JAVA and C# programmers rejoiced. "we now have classes!" they said, "full-fledged OOP!". but JS does not support classes, and assuming it does because there is a class keyword, has led to a lot of pain, especially because most of the industry went and adopted the class keyword in their code.

I think the main reason why JS is hated so much, is because most people who use it know some OOP, probably class-based OOP, and don't take the time to learn about the paradigms that make JS tick. Classless OOP, combined with JavaScript's functional features (functions as first-class citizens and closure in particular), in my opinion, is much cleaner than it's class based OOP, because you don't have to define interfaces explicitly. it can lead to some messy code, but if done right, there are some really elegant patterns that emerge from this little language.

also, fun fact. ASP - as in active server pages, microsoft's response to a www-enabled reality - supported JScript, which was a rewrite of the original JavaScript, done for IE, that fixed a ton of issues with the language and its implementation at the time. I remember learning ASP with vbscript in 1998, and switching to JS made for much better code at the time.

if anyone is interested in learning the functional aspects of JavaScript, there's a talk by Douglas Crockford, called "fun with functions". it's a deep dive into how functions work in JS and will change the way you see the language, and vastly improve your codebase as a result.

oh, btw, in case it wasn't clear... I LOVE JavaScript :D

YonoZekenZoid
Автор

I really enjoy writing JS, and do so professionally. I started working after ES6 came out, so lots of the historical baggage that pervades programming culture was lost on me until I started looking into the history of the language. I think JavaScript is great, it's fun to write, there is always something new and interesting to learn about it. It's maligned too often. Being a JS dev is more than writing code, too. It's writing web pages that would ideally contain semantic HTML, be accessible to individuals, and takes SEO into consideration. I get to work with users, designers, and back end devs.

christopherscholl
Автор

My Javascript hate has abated over the years because I'm no longer forced to use it. Between it, Typescript, and Clojurescript, I have options these days.

As far as programming models go, I'm kinda interested in seeing how the electric clojure project matures, whose aim is to abstract the programmer from having to deal with client/server state sync.

bobbycrosby
Автор

Thank you for this recap on JavaScript history, there were details I did not know! I remember back in the day, when JQuery saved our sanity by hiding under an abstraction layer the incompatibilities between browsers. It's the opposite now when each framework claims to solve problems differently despite the foundations are the same.

FuturaInteligencia
Автор

JS is the same as python2, both belongs in history

d.s.dathaniel
Автор

It's not that I hate JS, I hate server-side/native JS. Keep it in the browser.

_orangutan
Автор

I've watched the software delivered via
- mainframe with dumb terminals,
- to client-server
- to servers with static browsers (pretty much the same paradigm as the first)
- to servers with rich clients (pretty much the same paradigm as the second)

I wonder with ever-faster internet connections do we go back to most of the processing taking place on the server, with the browser doing the minimal display out.

We've also decided that most of our workload can be done by what is essentially an interpreted language (yes I know it kinda pseudo-compiles).

craigiedema
Автор

I used to like JavaScript (dynamic language, first order functions, prototype based OOP) but I didn't like all the frameworks that emerged from it. jQuery is truly a definition of good library design, as evidenced by its staying power with so little changes. While things like Angular have to keep saying "yeah, the old version was bad, but this new one is good". Anyway, bad comparsion, framework vs library.

What I still don't understand, probably because I don't program much in JS nowadays, is why people didn't profit from the awesome prototypical inheritance but insisted into getting back to the classes system. Yeah, it can be done (because prototype based OOP is awesome) but it's like "nah, these round wheels are too dangerous, we must get back to square wheels".

Winnetou
Автор

Javascript has enough features that it can be translated to from another language, even one that adheres to strong typing. Typescript is one such language, but it should be possible with other strongly typed languages as well, with APIs wrapping critical functionality (eg. typed array handling, sockets, persistent local storage, etc).

It's not ideal, but you needn't write in Javascript to emit Javascript either on the web, or on the server!

Additionally since Javascript is typically used on the web, Web Assembly is a very good substitute with near perfect compatibility -- that is, if you don't mind your own memory management, and can live in a single-threaded environment (or put up with web-worker _insanity_). Web Assembly offers more freedom of language, near native performance, and is also increasingly being used for cloud function sand-boxing as well -- a nice enough substitute for JS.

WebGPU is also another coming technology that provides a nice enough API for targeting GPU rasterization and compute on the web. Again, with proper wrappers, it should be possible to create very portable code.

If navigated carefully, the web needn't be a bad development environment. But freedom of choice, means freedom to make poor choices, so weigh said choices carefully!

SeanLumly
Автор

I use TypeScript now, and never want to go back to regular JS. JS is janky and makes it way too easy to write buggy code. End of story. TS is a massive improvement, and while it doesn't solve issues with data mutations causing unwanted side-effects, it does do a lot to make major improvements to the developer experience with JS.

Also, AssemblyScript is a native WASM language based on TS. In fact, AS can compile TS files to native code. I haven't used it yet myself, but it looks like such an obvious next step for web development on the client.

justsomeguy
Автор

This was a very nice overview of the historical context of JavaScript!

HansLemurson
Автор

I started with PHP in the Web Development world on the server side and got in touch with JavaScript in the early 2000th.
My daily work required more and more JavaScript over time to get the right UX and comfort in Web Applications. Nowadays I also write a lot of TypeScript and my JS experience helped me a lot to understand what is going on under the hood. I also saw that Server Side Rendering of Web Content is slowly coming back to us in different ways. Software Development in the Web is an ever changing experience so stay tuned. 😊

Oliver-rhbv
Автор

Well, it is moving towards harmony. I used to be an actionscript (3) developer. It was an incredibly comfortable language to use so I like the current direction.

The major difference of feel between AS3 and JavaScript is the difference how they handle class members. Getting rid of "this" could help allot to increase code quality by introducing the risk of clashing with local variables. That risk for me served as a subconscious measuring device that told me when my class is bloated and naturally forced me to refactor. Instead of having 15 reasons for change, it kept me at 2-3 reasons per class. Coupled that with business requirements, I ended up with mostly 1 effective reason per class.

szeredaiakos
visit shbcf.ru