JavaScript for the Haters

Fireship · Intermediate ·🌐 Frontend Engineering ·3y ago

Key Takeaways

The video discusses the criticisms and quirks of JavaScript, highlighting its history, design flaws, and ecosystem issues, while also acknowledging its evolution and importance as a programming language.

Full Transcript

JavaScript an embarrassing toy language used exclusively to build things it's not supposed to it was created by Brendan Ike in 1995 who was given requirements to build a language like Java but for words it only took him seven days to execute flawlessly it became an overnight dumpster fire but really hit the fan in 2005 when Ryan Dahl made the Epic mistake of bringing JavaScript to the server with node.js just like Alfred Nobel and dynamite he would go on to apologize for his invention many years later and it's my fault and I'm very sorry the language is designed for only one use case to annoy people with browser pop-ups but today it's used to build memory hogging desktop apps with electron janky mobile apps with react native and unreliable apis with express.js no matter what you're trying to build there are hundreds of different game-changing next-gen libraries to get the job done that's because whenever a JavaScript developer encounters a problem it will instinctively create a brand new framework and upload it to GitHub with a bunch of emojis in the readme in fact there are so many npm packages that Al Gore is now predicting the Arctic will be ice free by 2013 you have stolen my dreams in my childhood unlike languages people actually like JavaScript doesn't have a mascot but they are working with David Cronenberg to design one it's a Loosely typed language and by that I mean completely detached from reality when you add an array to an object obviously it returns a string that says object object now switch the order of the operands and predictably it returns zero if you want a good laugh for yourself try adding two objects together you'll get object object object object now with that knowledge what do you think two arrays will equal obviously an empty string that makes total sense because the number zero is equivalent to an empty array and also equivalent to a string of zero and that means the only possible same conclusion is that a string of zero is also equivalent to an empty array but amazingly it's not everybody knows you never go full retire it got this way because Netscape did a focus group in the 90s with some homeless web developers they found on the street who thought two plus two should equal 22 and of course that's why 2 minus two equals zero when a language is this bad and this popular at the same time it creates an ecosystem where libraries like is odd which does exactly what the name implies can get over 400 down or no 400 000 downloads per week the fun thing about packages is that there's multiple module systems like common JS and esm so you never know if the package you're installing is actually going to work now if you do manage to build something with JavaScript it'll probably never see the light of day because then you have to learn module bundling with a tool like webpack and it's just not worth it man this has been my cathartic release from over 10 years of JavaScript development despite its problems it's evolved into an awesome language in 2022 and I love programming with it today is Thanksgiving and I'm extremely thankful for JavaScript because it puts food on my family if you want to master the basics all this reverse psychology should motivate you to buy my JavaScript course and if you don't buy it I won't make any money thanks for watching and I will see you in the next one assuming I'm not entirely canceled after this video

Original Description

Why does everybody hate JavaScript so much? A complete roast of JS that highlights the strongest criticisms against the world's most popular programming language. #javascript #roast #comedy 🔥 Black Friday Discount https://fireship.io/pro 🔥 Use code BLACKFIRE at checkout for 40% off 💬 Chat with Me on Discord https://discord.gg/fireship 🔗 Resources - Full JavaScript Course https://fireship.io/courses/js - JavaScript in 100 Seconds https://youtu.be/DHjqpvDnNGE - React for the Haters https://youtu.be/HyWYpM_S-2c 🎨 My Editor Settings - Atom One Dark - vscode-icons - Fira Code Font 🔖 Topics Covered - JS Roast - Funny JavaScript features - Worst aspects of JavaScript - JavaScript pitfalls - JavaScript drama
Watch on YouTube ↗ (saves to browser)
Sign in to unlock AI tutor explanation · ⚡30

Playlist

Uploads from Fireship · Fireship · 0 of 60

← Previous Next →
1 Angular 4 Development and Production Environments with Firebase
Angular 4 Development and Production Environments with Firebase
Fireship
2 OAuth with Angular and Firebase Tutorial
OAuth with Angular and Firebase Tutorial
Fireship
3 Anonymous Authentication with Angular and Firebase - Lazy Registration
Anonymous Authentication with Angular and Firebase - Lazy Registration
Fireship
4 Angular Router Guards for Firebase Users
Angular Router Guards for Firebase Users
Fireship
5 Angular Firebase CRUD App with NoSQL Database Tutorial
Angular Firebase CRUD App with NoSQL Database Tutorial
Fireship
6 Upload Files from Angular to Firebase Storage
Upload Files from Angular to Firebase Storage
Fireship
7 How to Deploy an Angular App to Firebase Hosting
How to Deploy an Angular App to Firebase Hosting
Fireship
8 Sharing Data between Components in Angular
Sharing Data between Components in Angular
Fireship
9 Loading Spinners for Asynchronous Firebase Data
Loading Spinners for Asynchronous Firebase Data
Fireship
10 Angular 4 Transactional Email with Google Firebase Cloud Functions
Angular 4 Transactional Email with Google Firebase Cloud Functions
Fireship
11 Firebase Database Rules Tutorial
Firebase Database Rules Tutorial
Fireship
12 Autocomplete Search with Angular4 and Firebase
Autocomplete Search with Angular4 and Firebase
Fireship
13 Reddit Inspired Upvoting System with Angular and Firebase NoSQL
Reddit Inspired Upvoting System with Angular and Firebase NoSQL
Fireship
14 Angular Drag-and-Drop File Uploads to Firebase Storage
Angular Drag-and-Drop File Uploads to Firebase Storage
Fireship
15 Text Translation with Firebase Cloud Functions onWrite and Angular 4
Text Translation with Firebase Cloud Functions onWrite and Angular 4
Fireship
16 Custom Usernames with Firebase Authentication
Custom Usernames with Firebase Authentication
Fireship
17 Twitter-Inspired Follow Unfollow Feature with Firebase and Angular 4
Twitter-Inspired Follow Unfollow Feature with Firebase and Angular 4
Fireship
18 Simple Pagination with Firebase and Angular 4
Simple Pagination with Firebase and Angular 4
Fireship
19 How to Connect Firebase Users to their Data - 3 Methods
How to Connect Firebase Users to their Data - 3 Methods
Fireship
20 Add Toast Message Notifications to your Angular App
Add Toast Message Notifications to your Angular App
Fireship
21 Facebook-Inspired Reactions System with Angular and Firebase
Facebook-Inspired Reactions System with Angular and Firebase
Fireship
22 Learn NgModule in Angular with Examples
Learn NgModule in Angular with Examples
Fireship
23 Lazy Loading Components in Angular 4
Lazy Loading Components in Angular 4
Fireship
24 Stripe Checkout Payments with Angular and Firebase - Part 1
Stripe Checkout Payments with Angular and Firebase - Part 1
Fireship
25 Process Stripe Payments with Firebase Cloud Functions - Part 2
Process Stripe Payments with Firebase Cloud Functions - Part 2
Fireship
26 Selling Digital Content in Angular with Stripe Payments - Part 3
Selling Digital Content in Angular with Stripe Payments - Part 3
Fireship
27 Angular 4 Full Text Search with Algolia - Part 1
Angular 4 Full Text Search with Algolia - Part 1
Fireship
28 Algolia with Firebase Cloud Functions - Part 2
Algolia with Firebase Cloud Functions - Part 2
Fireship
29 Firebase Phone Authentication in Angular 4
Firebase Phone Authentication in Angular 4
Fireship
30 Top 7 RxJS Concepts for Angular Developers
Top 7 RxJS Concepts for Angular Developers
Fireship
31 Learn Angular Animations with 5 Examples
Learn Angular Animations with 5 Examples
Fireship
32 Advanced Firebase Data Filtering (Multi-Property)
Advanced Firebase Data Filtering (Multi-Property)
Fireship
33 Realtime Maps with Mapbox + Firebase + Angular
Realtime Maps with Mapbox + Firebase + Angular
Fireship
34 Angular Reactive Forms with Firebase Database Backend
Angular Reactive Forms with Firebase Database Backend
Fireship
35 Send Push Notifications in Angular with Firebase Cloud Messaging
Send Push Notifications in Angular with Firebase Cloud Messaging
Fireship
36 Top 7 Ways to Debug Angular 4 Apps
Top 7 Ways to Debug Angular 4 Apps
Fireship
37 Infinite Scroll with Angular and Firebase
Infinite Scroll with Angular and Firebase
Fireship
38 Use TypeScript with Firebase Cloud Functions
Use TypeScript with Firebase Cloud Functions
Fireship
39 Realtime Graphs and Charts with Plotly and Firebase
Realtime Graphs and Charts with Plotly and Firebase
Fireship
40 Role-Based User Permissions in Firebase
Role-Based User Permissions in Firebase
Fireship
41 User Presence System in Realtime - Online, Offline, Away
User Presence System in Realtime - Online, Offline, Away
Fireship
42 Location-based Queries with GeoFire and Angular Google Maps
Location-based Queries with GeoFire and Angular Google Maps
Fireship
43 Angular ngrx Redux Quick Start Tutorial
Angular ngrx Redux Quick Start Tutorial
Fireship
44 Angular Ngrx Effects with Firebase Database
Angular Ngrx Effects with Firebase Database
Fireship
45 Progressive Web Apps with Angular
Progressive Web Apps with Angular
Fireship
46 Angular Ngrx with Firebase Google OAuth User Authentication
Angular Ngrx with Firebase Google OAuth User Authentication
Fireship
47 RxJS Quick Start with Practical Examples
RxJS Quick Start with Practical Examples
Fireship
48 Send SMS Text Messages with Twilio and Firebase
Send SMS Text Messages with Twilio and Firebase
Fireship
49 Firebase Database Performance Profiling
Firebase Database Performance Profiling
Fireship
50 Native Desktop Apps with Angular and Electron
Native Desktop Apps with Angular and Electron
Fireship
51 Subscription Payments with Stripe, Angular, and Firebase
Subscription Payments with Stripe, Angular, and Firebase
Fireship
52 Firestore with AngularFire5 Quick Start Tutorial
Firestore with AngularFire5 Quick Start Tutorial
Fireship
53 Angular HTTP Client Quick Start Tutorial
Angular HTTP Client Quick Start Tutorial
Fireship
54 Google Sign-In with Firestore Custom User Data
Google Sign-In with Firestore Custom User Data
Fireship
55 Star Review System from Scratch with Firestore + Angular
Star Review System from Scratch with Firestore + Angular
Fireship
56 Angular Chatbot with Dialogflow (API.ai)
Angular Chatbot with Dialogflow (API.ai)
Fireship
57 Learn @ngrx/entity and Feature Modules
Learn @ngrx/entity and Feature Modules
Fireship
58 Infinite Scroll Pagination with Firestore
Infinite Scroll Pagination with Firestore
Fireship
59 Faster Firestore via Data Aggregation
Faster Firestore via Data Aggregation
Fireship
60 Contentful - CMS for Angular Progressive Web Apps
Contentful - CMS for Angular Progressive Web Apps
Fireship

The video provides a humorous critique of JavaScript, covering its history, design issues, and ecosystem problems, while also highlighting its importance and evolution as a programming language. It motivates viewers to learn JavaScript despite its flaws.

Key Takeaways
  1. Learn JavaScript basics
  2. Understand JavaScript history and design
  3. Explore JavaScript libraries and frameworks
  4. Use tools like Webpack for module bundling
  5. Master JavaScript ecosystem and best practices
💡 Despite its flaws, JavaScript has evolved into a powerful and important programming language, and understanding its ecosystem and best practices is crucial for effective software development.

Related AI Lessons

Had my Frontend Developer interview with Capgemini (Application Developer) today, and I wanted to…
Prepare for a frontend developer interview with Capgemini by reviewing JavaScript fundamentals and practicing common interview questions
Medium · JavaScript
10 Frontend Developer Tools to Boost Productivity in 2026
Boost frontend productivity with 10 essential tools for modern web app development
Medium · Programming
10 Frontend Developer Tools to Boost Productivity in 2026
Boost frontend productivity with top 10 developer tools in 2026
Medium · JavaScript
The US Frontend Engineer Market in 2026: A Data-Driven Reality Check (and the Bias That Stops Us Seeing It)
US frontend engineer hiring demand peaked in 2022 and remains flat-depressed in 2026, contrary to common assumptions
Dev.to AI
Up next
The masks we wear | Zora Krstić | TEDxLuxembourgCity
TEDx Talks
Watch →