I used to be a frontend guy, really got sick of it due to the constant churn ("what do you mean we need to rewrite all our forms to use the newest library? we haven't even finished the LAST two form-rewrites!"). Moved to what I thought was my real passion, devops, got into the same situation with cloud providers and container orchestrators, and then realized this is a problem in every area of tech and I should really just move into a cave in the woods and raise chickens. Edit: due to Blackrock buying up all the houses, caves are now trendy and selling for $800k on Zillow. I might need a new plan.
Or you know, don't always run after the newest tech. There is a reason C is still used, especially in critical areas and that even though it's factually bullshit for safe applications. (A shit ton of unsafe functions that nobody needs are part of most standards, like "strcmp", "memcpy", "malloc", "setjmp" etc.) People still try to sell a shit ton of linters on conventions for embedded computing, as that's the biggest problem there. But C didn't really change, even with C11 or newer. The "newest" feature there coming is finally being able to write in a binary notation like "0b0011101", that should have been there 40 years ago, because it's importance for embedded can't be understated. At the end of the day, if the user can't feel the difference (for example because you will be able to deliver features much faster, or because it fixes certain visible annoying bugs), updating libraries beyond vulnerability patches should be on the buttom of your priorities, imo. My brother works in GameDev and every time they update UnrealEngine I get pissed for him, because I know it will be another week or two spent on going through all obsolete or changed functions and adjustments to their new behavior. But that's the great thing, most libraries offer some sort of LTS version with only security patches being applied as not to break your application.
@@Littlefighter1911 I agree with you, but churn is unavoidable in some areas of software development. Security is fast-paced because it has to be, because there are always new exploits. Frontend dev is constantly evolving because needs and platforms are constantly expanding. Even if you don't chase new tech, you're forced to try to keep up because if you don't, engagement/revenue/whatever KPIs fall off, vulnerabilities get exploited, etc. You're comparing software areas that are completely different from each other, like saying "oil painting almost never changes, the last major change was switching to synthetic brush bristles because wild boar hair is hard to come by, why don't those 3d film animators just stop chasing new shiny stuff like me?" - they're different fields.
@podcouchcast Everything is C (or C++, or Rust sometimes, or whatever), if you look deep enough. The world of software is much larger than just web and mobile apps, and JS engines running those TypeScript apps are written in C++, and the OS running that engine is written in C, and all the system software on the box running the webserver is written in C and C++.
Yeah, I've been kind of bringing my knowledge of the latest programming practices up to par and I'm starting to notice that particularly with frontend dev, the tech world has become over-saturated with libraries, and there's seems to be a rat race to 1UP last year's number 1 with yet another. Everybody and their mama seems obsessed with trying to compartmentalize JS & CSS into libraries. Most of the libraries I've learned about - particularly Bootstrap, React, & Tailwinds - are nothing more than "templates" that developers can use to speed up the dev process. I get that most clients want their stuff done last week, but honestly I prefer the absolute control working in pure JS & CSS offers. Using Bootstrap regularly is just one step above using WordPress; you end up with a bunch of different sites that all look the same. Even JS itself has undergone some recent practice changes that for me, are real head scratchers. For example, "var" has been the keyword used to declare variables in JS since the 90s, but only recently...some 25 years later, we decide to start using "let" and "const?" Why? JS worked fine without this distinction, so I've yet to understand why this was implemented? Nothing wrong with occasionally updating a code base with new features or tech, but let's be honest here....what has React honestly done for JS dev? For all I can make out, it's just another way of modifying/writing to the DOM, which JS can already do *_without_* React. If a company wants to pay me $80k a year to forever rewrite existing code stacks, fine. Their money, their problem. But for my own personal projects? Never. I wouldn't rewrite my stack every two years, let alone every month. Tech evolves too quickly for that sort of pursuit to be fruitful. By the time you finish a rewrite, tech has already moved on.
the perfect phrase, there are a lot of ergonomics in JS but is a bad idea to do everything in JS, specially because is one of the languages that changes a lot.
@@laas29 with only 30 years or so of cruft accumulated from sixteen major groups developing JS to run on 5,000 different software stacks that change every month, what could possibly go wrong with a language that allows you to load an infinite number of possibly conflicting libraries into memory on every single tab and window open on machines with already poor security?
I don't get it. JSDoc has been the de-facto standard for longer than even Node has been around. It's so well implemented, it can even be used as a typescript replacement in both vscode and jetbrains. And you can generate an html documentation from it by just typing like 3 npm commands. How could this possibly be easier?
@@NevelWong because.... they rewrite their codebase nine times each month. It's a little overstatement but yeah, if you have documentation, rewrite your code and update documentation, then do it again and again.. Documentation is just more work to rewrite when the updates come out. You can litterly write a perfect application today, Sleep for 3 months and come back that app is so outdated you need to update everything again... ITS SOFTWARE DEVELOPERS. NOT REACTIVE DEVELOPERS.
@@NevelWong its not about the tools, its about the workflow. Many teams that are staffed lean have the mentality of 'just ship it and we'll perfect later'...and later never comes
@@Microphunktv-jb3kj xkcd 927 "what do you mean there are 14 competing standards? that's too many we need a universal standard that everyone uses" 2 weeks later: "there are now 15 competing standards"
This is so true though, I had such a hard time explaining this to people... Typescript is just design time guards, it doesn't really do anything at runtime, it's just developer time type checking basically. So if you have an http fetch to an interface in typescript and then it actually runs in the browser that api might return a field that's not on your typescript type, Javascript doesn't care, the field will be on the object even though typescript says it won't be. Typescript is really just to help developers write better code, it's like training wheels for developers. Putting training wheels on a bicycle doesn't mean it won't go 50mph down a hill and end up wrecking horribly in a ditch.
As a 'fullstack' JS developer I laughed so hard at this, all the way through until the end (but to be honest at the end I realise I was actually crying) XD
I like the fact that out of all the parodies you made, the javascript guy feels the most deranged of them all, and this is exactly how I feel as a javascript dev.
"We had callback hell, and then we went to promises. Await came out, we went back to promises. And now we wrote everything back to callbacks... because it's just more comfortable." 🤣🤣 God dammit.
@@JDLuke Glad I don't have such a negative approach to learning. I enjoyed the process. Crazy that I needed less time than you, though, being a new dev. But that's probably because of the approach.
As a senior developer I can confirm that this is exactly how JavaScript developers sound like. They make all these strange noises this guy makes, also they always seem to be busy rewriting their code to match some new library that came out.
React has had essentially 0 breaking changes over several major versions. React 17 brought 0 new features, just switched the render functionality to babel so you don’t have to import the default react library. React is actually quite stable, that is one reason it destroyed Angular and Vue 3 is a fragmented dumpster fire now.
@@JC-hp7pc It's not React alone that's the problem. It's the potentiation of the different JS tools and the disdain towards old-and-stable technologies that makes for a mess, especially when trying to apply client-side concepts to server scripts.
@@alivepenmods Fair points. Personally I have always felt javascript data types were insufficient. Even with lodash, the tools for manipulating data are very under-developed. If javascript had an associative array, it would become 1 billion percent less awkward so you could avoid stuffing associated data into objects which have 0 tools for parsing. So when you look at what JavaScript was created with, it is easy to see why everyone decided “hey this language cannot do what I want, I am going to build an abstraction on top to try to make things easier.” JavaScript by itself feels incomplete.
@@JC-hp7pc wtf are you talking about. objects are literally the definition of an associative array. if you need an ordered associative array there is map.
@@aylictal wtf are you talking about. You cannot perform map, sort, forEach, etc on an object. You can transform it with Object.entries() if you want a key, value pair, but it doesn't return an associative array as the result after you map the object. An object is an associative array that you cannot perform data manipulation on. Javascript data manipulation is garbage and full of hacks. Tell me more about things I already know.
@@Bunty793 if you're starting the ad hominems, who am I to take such an advice from a gamer ? ;-) Oh that might be why your sarcasm translator would be off, which is risky on such a website.
I can't believe how great this is. I've watched it 5 times since discovering it yesterday and I can't stop laughing out loud. I thought that the C++ developer was the best, but no, this one wins hands down. The editing is absolutely brilliant. One hell of a comedic genius, too bad this is such a niche subject. Kudos.
honestly he coulda just talked about npm or node_modules the entire time, let alone javascript as a whole, as its probably javascripts biggest fuckup pattern. the babel / typescript crap is funny too though.
@@aylictal "JavaScript is probably biggest JavaScript's fuckup" does indeed sound like something straight out of this video :))) possibly with an editing cut after the first "JavaScript"
@@felixjohnson3874 I'm not even sure JS devs are able to learn a language that actually works and is predictable. "What?? You can't compare NULL to an int?"
Same I love JS and don't recommend it. If you can't understand why NaN doesn't equal NaN because NaN is a number and therefore it is not NaN, then why even program?
I saw this video 1 year ago and I said to myself: "I'm going to learn programming with Javascript" At the time, I had no clue what 90% of this video meant, I just loved the chaotic nature and figured if the jokes are like this the job is probably for me. Now, I understand everything in this video, and it's just as funny as the 1st time I saw it with zero knowledge.
@@paultapping9510 yes, I enjoy it so much that I got my GED, now I'm enrolled in online uni for CompSci Bach; although, I likely won't stay Javascript long term as it's way too saturated for my tastes; lately I've been looking into ADA, and I've had PERL bookmarked for learning
@@ds_7 There are definitely a lot of problems with python. It is slow. It's a scripting language so it doesn’t scale to large projects. It is only best for AI, data science. In most cases outside of those fields, it's not the best option available. For example: You can write native android/iOS apps in python but Swift/Java/Kotlin do it better. You can write cross-platform mobile apps in python but flutter does it better. You can write web apps in python but JS, php do it better. You can write rest apis in python using flask but spring boot does it better. Granted Python isn't hated as much as JS but there is a portion of devs that hate python with a passion.
@@mazymetric8267 As I said, *most people* don’t think it’s crap. I never said it was the best choice for all use cases or that there aren’t haters. And Spring boot means you have to use Java -> I’d honestly rather quit programming forever than use Java, and this is coming from someone who grins and bears JS. And yes, I have written a bunch of Java. Ugh.
"I have three production outages named after me". ROFL. I am a Systems Architect w 30 actual years of experience (I'm old). I can vet all of the videos on this channel as being 100% spot on. PERFECT.
I worked as web developer for 4-5 years, started with vanilla js, html and css. Ended with vanilla js html and scss. This video makes me feel good about my choices, frameworks felt over complicated, unnecessary and unstable. Even typescript feels very hacky and janky, used it for a bit then got sick of wrangling with it. My final verdict is to not use javascript anywhere except for making web pages (web pages, not web applications) and when you do use it, use it without any frameworks/libs. Js is great for doing that. For other applications use languages better suited for those tasks. Don't abuse js, it's been through too much already.
Vanilla JS/HTML/CSS can do anything you'd ever want in the DOM. If you want backend, use PHP and an SQL server. This is how the web should be structured, not because I said so, but because these are the technologies that the web is designed for, they have the most documentation, and it has been proven over decades that they work. Typescript tries something that will never work because JS wasn't designed with types in mind. Very few people actually care about getting good at Vanilla JS, they want to `improve` JS, even though JS is the only thing in the JS ecosystem that isn't broken. Package managers have ruined any hope of an understandable, standardized web dev methodology. JS devs are fueled by chaos for some reason.
@@jextra1313 One of the 'reasons' is that many of them come into an existing shop where - due to the necessity of speed / deadlines - they learn whatever experimental ecosystem was already adopted so they can modify it and get it shipped quickly. Even though rewrites of one kind or another are more common in this space, that doesn't mean the up-and-coming devs will have the ability or option to suggest abandoning ship re: their core frameworks or dependencies. They then end up building more code in the same stack and promoting it, or some variant of it, and trying to keep it working while everything churns around it. (Speaking from experience as a dev who originally learned in BASIC and C as a beginner, got jobs in sysadmin, databases, and PHP, and only more recently ended up working in a full-stack JS / TS shop almost by accident ... I had to build code rapidly, while learning the ecosystem, on a framework scaffolding originally selected and demo-implemented by a part-time / offshore temp worker who was at the time still in college; he began the project as just a smoke-and-mirrors show with 'new', 'hot' and, in some cases, barely-supported dependencies. I'm not the only person I've talked to in this vertical who had some kind of similar experience in JS-land.)
0:30 Did you know JS was written in 7 days? Handel wrote the entire score for his Messiah Requiem in just 24 days. 53 movements for full orchestra. So of course a tidily-wink language like JavaScript could be run off in a week. It was done by copy and pasting the Java compiler and taking out type checking and casting. (BTW: I copy and pasted the previous sentence from a History of JS website. But then most of programming career was just copy and paste from Stackoverflow.)
"We need a scripting language in the browser. Yesterday." "Oh, ok, Scheme then." "NO! It needs to be new, and modern, and Java-like!" "Scheme with Java syntax, ok." "And objects! It must have objects!" "Oh. You realise that'll double the time, right? Really, this could blow out to, uh, 4 weeks."
Watching this as a Full Stack dev and realizing how true and funny this is, you are great man, I love this channel and your contents, you got me cracking today
Made me cry: "transpile it to es5, load it with system.js, file for bankruptcy, bundle it all up with webpack" I set up a build pipeline and was proud that I learned all these steps needed. Created a PR, and got a "☹️ approved."
@@KingJellyfishII This step is optional, but you'd have to rewrite the codebase to make it more stable so that you don't have to rewrite it again... till next month.
@@ReshiramR52 oh it's just a joke because they're spending so much time rewriting the codebase that they don't have enough money to survive so they must file for bankruptcy
tbh, most of the time, you either get people who don't understand the language, so when it does something they don't expect they bitch about it, or you get people who evangelize the hell out of the language and think it needs to be used everywhere. everyone else just does their job and doesn't make opinion posts on the internet about the hammer they happen to be using at the time.
@@kathrynnlynn9790 you hit the nail on the head (no pun intended). These arguments about which language is good, better, best is really non productive and just confuses new developers. Find the best tool for the job, and use it. You don't need to compare it to other tools; there are simply too many now.
The problem is not the language (it's not perfect but what is) - it's the ecosystem which got out of control. And that's what this video is about. (And about null, of course ...)
@@kathrynnlynn9790 but it helps us newbies when other people share personal ins and outs about using that hammer, even if they cannot explain them in detail. We learn by example even from bad examples.
I’m a frontend designer ( making things look pretty) but somehow got a job as a junior software engineer. And this skit is 100% accurate. This dev teams methods are nonsensical. If there’s a way to overengineer something, they will do it. Every Friday in our tech stand ups, they’re always talking about the lasted ‘cool’ new package, that come out 30-seconds ago, to ram into the enterprise-grade application. Boy, if only the CEO would see the people that are leading his products development.
This is 100% my life every single day (just add a little Python to spice up the back end). You had me rolling I was laughing so hard. I almost spit out my coffee.... almost.
php as horrible as that syntax is (possibly uglier than javascript) at least you can avoid A LOT of this JS framework/library nonsense (people seem largely settled on Laravel/Composer as the framework - though it did go through these JS growing pains)
JavaScript, I love it... No, I don't recommend it... I liked the video on the 10th second mark, on the 1st minute mark I subscribed to the channel. Pure gold.
I've been doing front end since the 90's and keep up to date with the latest as well as anyone can. Best library I ever used was knockoutjs. It did a couple of things well and that was it. I have one ste that's still in production with it 13 or so years later and happy as larry.
Magnificent. Thank you youtube for this video suggestion. "We tried coffescript, rewrote our codebase. We tried Typescript, rewrote our codebase. And then we went back to vanilla javascript because it's just more comfortable" Same. I hate TroubleScript rofl (that's the loving nickname I gave to it).
Did you know? The byte order of typed arrays depends on the executing computer's endianness[a][1], which can cause compatibility issues when reading a smaller value from an array buffer modified by a larger-element typed array. This makes JavaScript platform-dependent. Did you also know? `Function#toString()` depends on the JavaScript engine's implementation of it.[2] These two make JavaScript simultaneously platform-dependent and implementation-dependent. So much for interoperability and standardization. [a]: The choice of endianness is actually implementation-dependent too (see table 29 of section 9.7 of the ECMA-262 specification), but most engines[citation needed] use the computer's endianness. [1]: ECMA-262, 25.1.3.17 "SetValueInBuffer" [2]: ECMA-262, 20.2.3.5 "Function.prototype.toString"
this was soooooo good xD nearly blew a gasket every time he said: "so we had to rewrite or codebase" or "so we went back to vanilla cause its more comfortable" xD being a JS developer is the best. 🤣⚡
my senior project was in node/js/express, i've never self taught anything so quick in my life, and it was still a struggle. LUCKILY theres like 100k tutorials out there for some version of whatever monster you're putting together for basic stuff. but man when i got express working it was like hallelujah
This is the best video from the channel. I watched it three times and laugh out loud every time. This video reinforces what Alan Kay said once: "The Internet was done so well that most people think of it as a natural resource like the Pacific Ocean, rather than something that was man-made. When was the last time a technology with a scale like that was so error-free? The Web, in comparison, is a joke. The Web was done by amateurs."
"Nobody knows what a variable's type is. We use typescript and we still don't know!" Nothing could better sum up the JS Ecosystem. I would love to say "this year", but this has been true for the last 10 years.
3:14 I literally had a situation when a PATCH (0.0.X) version change in one library broke the whole application. When you have lots enough dependencies, and your project lives through a year or so, that is inevitable. P.S. Everyone though: "Project lives through a year? We have a fake javascript developer here!"
I like your sweater. Would you mind telling the brand? Great video btw!
Jack & Jones Men's Jprblastudio Sweat Hood Noos Sweatshirt Dark Coat Sweat Fit .js
@@programmersarealsohuman5909 Ima steal your look
@@programmersarealsohuman5909 Can it be transpiled into a pair of jeans?
@@programmersarealsohuman5909 is it portable?
@@evenzero not really
"Easy fix, will just take me 3-5 days to *find* it".
No truer words have ever been said.
That deeply hurt my soul 🤣😭
That is assuming his estimation is correct. ;-)
I was already laughing but this is the line where I lost it
hilarious! and true
The Linux video he says the same but it takes WEEKS
I used to be a frontend guy, really got sick of it due to the constant churn ("what do you mean we need to rewrite all our forms to use the newest library? we haven't even finished the LAST two form-rewrites!"). Moved to what I thought was my real passion, devops, got into the same situation with cloud providers and container orchestrators, and then realized this is a problem in every area of tech and I should really just move into a cave in the woods and raise chickens.
Edit: due to Blackrock buying up all the houses, caves are now trendy and selling for $800k on Zillow. I might need a new plan.
Or you know, don't always run after the newest tech.
There is a reason C is still used, especially in critical areas and that even though it's factually bullshit for safe applications.
(A shit ton of unsafe functions that nobody needs are part of most standards, like "strcmp", "memcpy", "malloc", "setjmp" etc.)
People still try to sell a shit ton of linters on conventions for embedded computing, as that's the biggest problem there.
But C didn't really change, even with C11 or newer. The "newest" feature there coming is finally being able to write in a binary notation like "0b0011101",
that should have been there 40 years ago, because it's importance for embedded can't be understated.
At the end of the day, if the user can't feel the difference (for example because you will be able to deliver features much faster, or because it fixes certain visible annoying bugs),
updating libraries beyond vulnerability patches should be on the buttom of your priorities, imo.
My brother works in GameDev and every time they update UnrealEngine I get pissed for him, because I know it will be another week or two spent on going through all obsolete or changed functions and adjustments to their new behavior.
But that's the great thing, most libraries offer some sort of LTS version with only security patches being applied as not to break your application.
@@Littlefighter1911 I agree with you, but churn is unavoidable in some areas of software development. Security is fast-paced because it has to be, because there are always new exploits. Frontend dev is constantly evolving because needs and platforms are constantly expanding. Even if you don't chase new tech, you're forced to try to keep up because if you don't, engagement/revenue/whatever KPIs fall off, vulnerabilities get exploited, etc. You're comparing software areas that are completely different from each other, like saying "oil painting almost never changes, the last major change was switching to synthetic brush bristles because wild boar hair is hard to come by, why don't those 3d film animators just stop chasing new shiny stuff like me?" - they're different fields.
@podcouchcast Everything is C (or C++, or Rust sometimes, or whatever), if you look deep enough. The world of software is much larger than just web and mobile apps, and JS engines running those TypeScript apps are written in C++, and the OS running that engine is written in C, and all the system software on the box running the webserver is written in C and C++.
Yeah, I've been kind of bringing my knowledge of the latest programming practices up to par and I'm starting to notice that particularly with frontend dev, the tech world has become over-saturated with libraries, and there's seems to be a rat race to 1UP last year's number 1 with yet another. Everybody and their mama seems obsessed with trying to compartmentalize JS & CSS into libraries.
Most of the libraries I've learned about - particularly Bootstrap, React, & Tailwinds - are nothing more than "templates" that developers can use to speed up the dev process. I get that most clients want their stuff done last week, but honestly I prefer the absolute control working in pure JS & CSS offers. Using Bootstrap regularly is just one step above using WordPress; you end up with a bunch of different sites that all look the same. Even JS itself has undergone some recent practice changes that for me, are real head scratchers. For example, "var" has been the keyword used to declare variables in JS since the 90s, but only recently...some 25 years later, we decide to start using "let" and "const?" Why? JS worked fine without this distinction, so I've yet to understand why this was implemented?
Nothing wrong with occasionally updating a code base with new features or tech, but let's be honest here....what has React honestly done for JS dev? For all I can make out, it's just another way of modifying/writing to the DOM, which JS can already do *_without_* React.
If a company wants to pay me $80k a year to forever rewrite existing code stacks, fine. Their money, their problem. But for my own personal projects? Never. I wouldn't rewrite my stack every two years, let alone every month. Tech evolves too quickly for that sort of pursuit to be fruitful. By the time you finish a rewrite, tech has already moved on.
What version of Chicken are you running?
"The strength of JavaScript is that you can do anything. The weakness is that you will." - Reg Braithwaite
the perfect phrase, there are a lot of ergonomics in JS but is a bad idea to do everything in JS, specially because is one of the languages that changes a lot.
@@laas29 with only 30 years or so of cruft accumulated from sixteen major groups developing JS to run on 5,000 different software stacks that change every month, what could possibly go wrong with a language that allows you to load an infinite number of possibly conflicting libraries into memory on every single tab and window open on machines with already poor security?
love it!
"This is not production code.
It will be tomorrow though."
Was the highlight for me
"Is it scaleable? No. Is it maintainable? No. Is it portable? No. " that made me laugh so hard!! 😂🤣 This is one of the best ones.
This isn't our production code.
It will be tomorrow, though.
"now we're stuck with this messy language"
@@PixelPenguin77 "I love it - Javascript"
sounds like he is talking about using frameworks rather than js and a proper serverside language. Tip never use react.
"My job is to keep our code running while other packages are changing theirs." That's gold 😆
"The major version breaks our code, but our code breaks the minor version"
I felt that
DLL hell - recreated
LOL 😂😂😂😂
@@ogcontraband right in the feels
“Documentation…hehehehe”
This hits way too hard
I don't get it. JSDoc has been the de-facto standard for longer than even Node has been around. It's so well implemented, it can even be used as a typescript replacement in both vscode and jetbrains. And you can generate an html documentation from it by just typing like 3 npm commands. How could this possibly be easier?
@@NevelWong because.... they rewrite their codebase nine times each month. It's a little overstatement but yeah, if you have documentation, rewrite your code and update documentation, then do it again and again.. Documentation is just more work to rewrite when the updates come out. You can litterly write a perfect application today, Sleep for 3 months and come back that app is so outdated you need to update everything again...
ITS SOFTWARE DEVELOPERS. NOT REACTIVE DEVELOPERS.
It's so truuu tho
@@NevelWong its not about the tools, its about the workflow. Many teams that are staffed lean have the mentality of 'just ship it and we'll perfect later'...and later never comes
Documentation? The code is self explainable. For me atleast when I look at my code.
hahah, "no one really knows what the value is, until you get an error" 🙌absolutely killed it.
Lol
It's funny because the code works perfectly when I put a breakpoint on line 32.
@@marcgoodman4862 Well time to package up the debugger and ship it with the breakpoint lol
@@JackPunter2012 lmaooo
Typescript helps alot, you can avoid these types of behaviour easily
I’ve started saying “I love it” when something explodes while I’m developing. This video is too accurate.
👍👍👍😂😂
@@AntonAdelson I'm doing the same thing! I love it! :D
lol
Imagine a language so good that you put as many libraries/packages on top of it as possible to not actually touch that language itself.
js needs standard library.
@@Microphunktv-jb3kj congratulations we now have a new whaterverJS library. 😂💀
@@Microphunktv-jb3kj xkcd 927
"what do you mean there are 14 competing standards? that's too many we need a universal standard that everyone uses"
2 weeks later: "there are now 15 competing standards"
It's built for the Internet, so it's designed to be compatible with as many different devices as possible. And isn't fully compatible with any of them
@@Microphunktv-jb3kj It has one. It's called jQuery. Or in our case, jjQuery.
best part: "how do you debug node apps? you don't! you just write good code"
We can't. We won't. We wouldn't. We don't.
"node inspect script.js"
But how do you debug the transpilers?
@@decentlabs probably end to end testing
Lmao. Me too. 🤣🤣
@@decentlabs you don't.
“Nobody knows what type a variable is … I mean, we use typescript, and we still don’t know.” That part got me laughing so hard.
cracked me up the way he delivered it
This is so true though, I had such a hard time explaining this to people... Typescript is just design time guards, it doesn't really do anything at runtime, it's just developer time type checking basically.
So if you have an http fetch to an interface in typescript and then it actually runs in the browser that api might return a field that's not on your typescript type, Javascript doesn't care, the field will be on the object even though typescript says it won't be.
Typescript is really just to help developers write better code, it's like training wheels for developers. Putting training wheels on a bicycle doesn't mean it won't go 50mph down a hill and end up wrecking horribly in a ditch.
Typescript is a great way to add a lot of complexity and boilerplate to a problem and then solve it half way.
Expected null, received undefined and type is declared as unknown. I wonder why it doesn't work as expected...
@@Ryan-hp6xt Just use class-validator.
Not that we do..
As a 'fullstack' JS developer I laughed so hard at this, all the way through until the end (but to be honest at the end I realise I was actually crying) XD
Imagine spending nearly 2 decades in a strongly typed language and the jobs in JS simply are more common and pay more.. whelp, guess I'm in JS.
Me too man. I mean, love TS, love JS, to death. Was the first language I noticed i was fluent. But man, all his points are true.
???
@@R67K There is a followup video, Junior JS developer, just for you.
Oh, you're a fullstack JS developer? You must know how the foreign language interface in C works then.
Man you can't even write comedy this accurate without having spent years with JS
the fact that this guy made a jjquery website just for this joke is dedication to the max
LMAOOOOOO best website ever actually
honestly tho i'd just go straight to jkjquery
"we rewrote our codebase around 9 times... THIS month" 😂😂
that one had me dying
his untrimmed beard is the witness of the endeavors
Seems legit.
so basically he rewrote his entire codebase every 3 days
I caught that too😂
I like the fact that out of all the parodies you made, the javascript guy feels the most deranged of them all, and this is exactly how I feel as a javascript dev.
That's because you haven't met the Javascript guy who uses vim. ;)
@@mikicerise6250 I am that guy
🤣
The feeling of "derangeness" comes because the guy keeps contradicting himself.
- Such a messy language... I love it ! :)
@@Hexanitrobenzene No, I don't recommend it.
"We had callback hell, and then we went to promises. Await came out, we went back to promises. And now we wrote everything back to callbacks... because it's just more comfortable." 🤣🤣 God dammit.
At least you know it's bad...
Promises and await are great
Savage.
@@JDLuke Glad I don't have such a negative approach to learning. I enjoyed the process. Crazy that I needed less time than you, though, being a new dev. But that's probably because of the approach.
pretty accurate tho
"I don't want to do the Sub Zero Fatality, I just want to show data in the table from the server."
Best JS phrase I ever heard.
As a senior developer I can confirm that this is exactly how JavaScript developers sound like.
They make all these strange noises this guy makes, also they always seem to be busy rewriting their code to match some new library that came out.
I have written javascript for the last 10 years and this is painfully accurate
React has had essentially 0 breaking changes over several major versions. React 17 brought 0 new features, just switched the render functionality to babel so you don’t have to import the default react library. React is actually quite stable, that is one reason it destroyed Angular and Vue 3 is a fragmented dumpster fire now.
@@JC-hp7pc It's not React alone that's the problem. It's the potentiation of the different JS tools and the disdain towards old-and-stable technologies that makes for a mess, especially when trying to apply client-side concepts to server scripts.
@@alivepenmods Fair points. Personally I have always felt javascript data types were insufficient. Even with lodash, the tools for manipulating data are very under-developed. If javascript had an associative array, it would become 1 billion percent less awkward so you could avoid stuffing associated data into objects which have 0 tools for parsing. So when you look at what JavaScript was created with, it is easy to see why everyone decided “hey this language cannot do what I want, I am going to build an abstraction on top to try to make things easier.” JavaScript by itself feels incomplete.
@@JC-hp7pc wtf are you talking about. objects are literally the definition of an associative array. if you need an ordered associative array there is map.
@@aylictal wtf are you talking about. You cannot perform map, sort, forEach, etc on an object. You can transform it with Object.entries() if you want a key, value pair, but it doesn't return an associative array as the result after you map the object. An object is an associative array that you cannot perform data manipulation on. Javascript data manipulation is garbage and full of hacks.
Tell me more about things I already know.
"Do you know there is a library for that?"
This is soooo javascript
This skit is hilarious. Also quite realistic. Keep em coming!
it is hilarious BECAUSE it is eerily realistic.
It might even BE the reality.
@@Bunty793 if you're starting the ad hominems, who am I to take such an advice from a gamer ? ;-)
Oh that might be why your sarcasm translator would be off, which is risky on such a website.
That first line...."I have three production outages named after me....four"... OMG I was rolling 😂
Been doing exclusively JS for over 10 years now, and this is 100% accurate !
I can't believe how great this is. I've watched it 5 times since discovering it yesterday and I can't stop laughing out loud. I thought that the C++ developer was the best, but no, this one wins hands down. The editing is absolutely brilliant. One hell of a comedic genius, too bad this is such a niche subject. Kudos.
agreed. this is brilliant comedic execution that so few people will understand.
honestly he coulda just talked about npm or node_modules the entire time, let alone javascript as a whole, as its probably javascripts biggest fuckup pattern. the babel / typescript crap is funny too though.
@@aylictal "JavaScript is probably biggest JavaScript's fuckup" does indeed sound like something straight out of this video :))) possibly with an editing cut after the first "JavaScript"
It's not a niche subject.
@@aylictal npm is not owned or created by js. js' biggest fuckup would be anything related to the weak and quirky dynamic typing it has.
Also sprinkling "rust" in the conversation as if it will solve every problem, but they haven't even tried it, is 100% accurate.
"For the fifth consecutive year in a row 98% of JS devs say they plan on learning Rust sometime next year"
@@felixjohnson3874 I'm not even sure JS devs are able to learn a language that actually works and is predictable. "What?? You can't compare NULL to an int?"
I have literally starting learning rust to spite the trend
@@segueoyuriDoesn't Rust simply upfront all your problems into before your program compiles?
@@aoeu256 I don't follow, my dear sir. What that has to do with anything I said?
I've watched this three times. This is a work of art.
JavaScript, I love it.
Same I love JS and don't recommend it. If you can't understand why NaN doesn't equal NaN because NaN is a number and therefore it is not NaN, then why even program?
Do I recommend it? No.
Do you have another option?? No.
Such a messy language... I love it.
To be honest, NaN != NaN is a requirement of IEEE 754 and not a fault of Javascript. You get the same in C, Java, Rust...
Do I reccomend it? undefined
You are a legend sir. I return to this video periodically and somehow it just gets funnier
I saw this video 1 year ago and I said to myself: "I'm going to learn programming with Javascript"
At the time, I had no clue what 90% of this video meant, I just loved the chaotic nature and figured if the jokes are like this the job is probably for me.
Now, I understand everything in this video, and it's just as funny as the 1st time I saw it with zero knowledge.
Lol I love your experience
Don’t say you weren’t warned…
but was the industry for you?
@@paultapping9510 yes, I enjoy it so much that I got my GED, now I'm enrolled in online uni for CompSci Bach; although, I likely won't stay Javascript long term as it's way too saturated for my tastes; lately I've been looking into ADA, and I've had PERL bookmarked for learning
As Bjarne Stroustrup once said: "There are two kinds of languages: the ones people complain about and the ones nobody uses".
Kind of false, most people don’t think Python is crap, but everyone thinks JavaScript is crap
@@ds_7
There are definitely a lot of problems with python.
It is slow.
It's a scripting language so it doesn’t scale to large projects.
It is only best for AI, data science. In most cases outside of those fields, it's not the best option available. For example:
You can write native android/iOS apps in python but Swift/Java/Kotlin do it better.
You can write cross-platform mobile apps in python but flutter does it better.
You can write web apps in python but JS, php do it better.
You can write rest apis in python using flask but spring boot does it better.
Granted Python isn't hated as much as JS but there is a portion of devs that hate python with a passion.
@@mazymetric8267 As I said, *most people* don’t think it’s crap. I never said it was the best choice for all use cases or that there aren’t haters. And Spring boot means you have to use Java -> I’d honestly rather quit programming forever than use Java, and this is coming from someone who grins and bears JS. And yes, I have written a bunch of Java. Ugh.
@@ds_7 why do you hate to code in Java?
There is also Python as a third kind.
"So the major version breaks our code but... our code breaks the minor version"
Best line out of many amazing ones
"I have three production outages named after me". ROFL. I am a Systems Architect w 30 actual years of experience (I'm old). I can vet all of the videos on this channel as being 100% spot on. PERFECT.
Four
Oh, he said "outages"... hilarious :)
Thank you for pointing out.
"I still don't know how to fix peer dependencies to this day."
I felt that.
I just spent 4 hours in peer dependency hell. Thought of this clip.
Senior JS engineer here - this is so accurate I'm not sure whether to laugh or cry :D
"Node is technically multi-threaded"
I've never felt so attacked by a portrayal in my life 🤣
Ha, lot of these are really funny.
"We use typescript, and still don't know the types"
"I still don't know how to fix peer dependencies to this day"
hey, yarn 2 actually fixes peer dependencies.
shame that it breaks everything else though
npm audit fix and then it tells you to fix it manually so you just give up
@@flying-sheep You win some, you lose some.
@@flying-sheep I love it!
It's reassuring to know that seniors face the same harshness from JavaScript. 😂
“It’s a bit hacky, I admit it... but JavaScript is hacky by design”
I worked as web developer for 4-5 years, started with vanilla js, html and css. Ended with vanilla js html and scss. This video makes me feel good about my choices, frameworks felt over complicated, unnecessary and unstable. Even typescript feels very hacky and janky, used it for a bit then got sick of wrangling with it.
My final verdict is to not use javascript anywhere except for making web pages (web pages, not web applications) and when you do use it, use it without any frameworks/libs. Js is great for doing that. For other applications use languages better suited for those tasks. Don't abuse js, it's been through too much already.
Vanilla JS/HTML/CSS can do anything you'd ever want in the DOM. If you want backend, use PHP and an SQL server. This is how the web should be structured, not because I said so, but because these are the technologies that the web is designed for, they have the most documentation, and it has been proven over decades that they work. Typescript tries something that will never work because JS wasn't designed with types in mind.
Very few people actually care about getting good at Vanilla JS, they want to `improve` JS, even though JS is the only thing in the JS ecosystem that isn't broken.
Package managers have ruined any hope of an understandable, standardized web dev methodology. JS devs are fueled by chaos for some reason.
@@jextra1313 One of the 'reasons' is that many of them come into an existing shop where - due to the necessity of speed / deadlines - they learn whatever experimental ecosystem was already adopted so they can modify it and get it shipped quickly. Even though rewrites of one kind or another are more common in this space, that doesn't mean the up-and-coming devs will have the ability or option to suggest abandoning ship re: their core frameworks or dependencies. They then end up building more code in the same stack and promoting it, or some variant of it, and trying to keep it working while everything churns around it.
(Speaking from experience as a dev who originally learned in BASIC and C as a beginner, got jobs in sysadmin, databases, and PHP, and only more recently ended up working in a full-stack JS / TS shop almost by accident ... I had to build code rapidly, while learning the ecosystem, on a framework scaffolding originally selected and demo-implemented by a part-time / offshore temp worker who was at the time still in college; he began the project as just a smoke-and-mirrors show with 'new', 'hot' and, in some cases, barely-supported dependencies. I'm not the only person I've talked to in this vertical who had some kind of similar experience in JS-land.)
0:30 Did you know JS was written in 7 days?
Handel wrote the entire score for his Messiah Requiem in just 24 days. 53 movements for full orchestra. So of course a tidily-wink language like JavaScript could be run off in a week.
It was done by copy and pasting the Java compiler and taking out type checking and casting.
(BTW: I copy and pasted the previous sentence from a History of JS website. But then most of programming career was just copy and paste from Stackoverflow.)
"We need a scripting language in the browser. Yesterday."
"Oh, ok, Scheme then."
"NO! It needs to be new, and modern, and Java-like!"
"Scheme with Java syntax, ok."
"And objects! It must have objects!"
"Oh. You realise that'll double the time, right? Really, this could blow out to, uh, 4 weeks."
Watching this as a Full Stack dev and realizing how true and funny this is, you are great man, I love this channel and your contents, you got me cracking today
Oh, you're a full stack dev? You must know how the C foreign language interface works then.
JavaScript is like smoking crack. It's good at first but eventually it starts destroying your life.
Just watched it 3 times straight. This guy is a genius.
I'm on my 6th rewatch and I still keep literally LOLing. The editing is brilliant.
I keep coming back to this one. It's perfect.
Every sentence here is gold. Thank you so much for this caricature of our job!
this has got to be one of the funniest programming-related skits I've ever seen
Made me cry: "transpile it to es5, load it with system.js, file for bankruptcy, bundle it all up with webpack"
I set up a build pipeline and was proud that I learned all these steps needed. Created a PR, and got a "☹️ approved."
Don't forget filing for bankruptcy, it's the most important step
@@KingJellyfishII
This step is optional, but you'd have to rewrite the codebase to make it more stable so that you don't have to rewrite it again... till next month.
@@KingJellyfishII Maybe I don't get the joke but why is it an important step? In case something goes wrong?
@@ReshiramR52 oh it's just a joke because they're spending so much time rewriting the codebase that they don't have enough money to survive so they must file for bankruptcy
@@ReshiramR52 its a joke. It basically declare your company dead. nothing to do with the code.
I have been up to my eyeballs in JS infrastructure for years. Everything this man said is correct.
Flipping dying.
This is the best one you guys have done so far.
Honestly thank you, hosing myself all the way through.
"We rewrote everything back to callbacks" = GOLD!
Why use Typescript when you can just compile your JS to TS and them transpile it to ES6
As a "modern" UI engineer that specializes in all things javascript. I absolutely loved this. And yes, it is accurate.
uI eNgInEeR
@@TheCsakbalintBro, you can't even center a div.
@@niazfaridani-rad2147 nice reaction :D
@@TheCsakbalint fRoNt EnD dEv Is EaSy
> ships electron notetaking app w/ 100% RAM usage
A lot more honest about the JS shortcomings than most JS developers.
tbh, most of the time, you either get people who don't understand the language, so when it does something they don't expect they bitch about it, or you get people who evangelize the hell out of the language and think it needs to be used everywhere.
everyone else just does their job and doesn't make opinion posts on the internet about the hammer they happen to be using at the time.
@@kathrynnlynn9790 you hit the nail on the head (no pun intended).
These arguments about which language is good, better, best is really non productive and just confuses new developers.
Find the best tool for the job, and use it. You don't need to compare it to other tools; there are simply too many now.
The problem is not the language (it's not perfect but what is) - it's the ecosystem which got out of control. And that's what this video is about. (And about null, of course ...)
@@kathrynnlynn9790 based take
@@kathrynnlynn9790 but it helps us newbies when other people share personal ins and outs about using that hammer, even if they cannot explain them in detail. We learn by example even from bad examples.
I’m a frontend designer ( making things look pretty) but somehow got a job as a junior software engineer. And this skit is 100% accurate. This dev teams methods are nonsensical. If there’s a way to overengineer something, they will do it. Every Friday in our tech stand ups, they’re always talking about the lasted ‘cool’ new package, that come out 30-seconds ago, to ram into the enterprise-grade application. Boy, if only the CEO would see the people that are leading his products development.
I nearly chocked to death watching this video. 11/10 would and did watch again.
I primarily use C, C++, Rust, PowerPC assembly and it's clear this channel writer uses javascript the most because his javascript ones are the best
yeah :D no wonder its the most used language.
"PowerPC assembly" jesus fucking christ. Hope they are paying you well.
I use Rust for almost everything these days
@@RiwenX it can be broadly applied from embedded to front end...
Have you ever tried intel itanium assembly? Also, that’s cool, I used to have an iMac G4 and an Xserve G5 dual core
This is 100% my life every single day (just add a little Python to spice up the back end). You had me rolling I was laughing so hard. I almost spit out my coffee.... almost.
And I love it 😂
And you like Zidialav Beksinski...
I like you :)
php as horrible as that syntax is (possibly uglier than javascript) at least you can avoid A LOT of this JS framework/library nonsense (people seem largely settled on Laravel/Composer as the framework - though it did go through these JS growing pains)
Don't spit your coffeescript
Javaspit
"this is not production code... it will be tomorrow though"
3:32 "Global variables? No one uses them." "It must be somewhere in the `window`..." LOL
JavaScript, I love it... No, I don't recommend it...
I liked the video on the 10th second mark, on the 1st minute mark I subscribed to the channel. Pure gold.
"Atleast you know its bad." I felt this one
This channel is going to blow up bro.. quality content
I've been doing front end since the 90's and keep up to date with the latest as well as anyone can. Best library I ever used was knockoutjs. It did a couple of things well and that was it. I have one ste that's still in production with it 13 or so years later and happy as larry.
I laughed at every single word of this video. Love it. Thanks for making this brilliant video on RUclips.
4:29 "Documentation? *Nervous laugh*"
too real man... too real...
As someone who has spent years and years of working as a front-end dev, this hurts on another level, I can tell you that.
This is one of the best skits done and too real. Hence, so funny with bitterness of truth.
This is brilliant. This perfectly represents my experience with JS.
that "it is somewhere in the window" right after talking about global vars was brilliant
Magnificent. Thank you youtube for this video suggestion.
"We tried coffescript, rewrote our codebase. We tried Typescript, rewrote our codebase. And then we went back to vanilla javascript because it's just more comfortable"
Same. I hate TroubleScript rofl (that's the loving nickname I gave to it).
This is still absolute gold and I’ve rewatched it so many times
"No one really knows what the value is. Until we get an error"
Sounds about right, yes.
As someone who uses mostly C++ and python, my heart goes out to JS developers.
It's not that bad bro
'No one really knows what the value is... until they get the error'.
Genius.
As a DevOps Engineer the "Documentation?.. heh heh.." part gets me every time.
“Load it with system JS, file for bankruptcy, load it all up with webpack…” I choked when I heard this 😂
How did we end up here? Who is steering this ship? Oh well, hopefully there's a zero config bundler that will fix it all
Senior JS dev is actually 19 yo guy w/o beard.
Looool 😂
Did you know? The byte order of typed arrays depends on the executing computer's endianness[a][1], which can cause compatibility issues when reading a smaller value from an array buffer modified by a larger-element typed array. This makes JavaScript platform-dependent.
Did you also know? `Function#toString()` depends on the JavaScript engine's implementation of it.[2] These two make JavaScript simultaneously platform-dependent and implementation-dependent. So much for interoperability and standardization.
[a]: The choice of endianness is actually implementation-dependent too (see table 29 of section 9.7 of the ECMA-262 specification), but most engines[citation needed] use the computer's endianness.
[1]: ECMA-262, 25.1.3.17 "SetValueInBuffer"
[2]: ECMA-262, 20.2.3.5 "Function.prototype.toString"
We need another one for Interview with Senior Android Developer
this was soooooo good xD nearly blew a gasket every time he said: "so we had to rewrite or codebase" or "so we went back to vanilla cause its more comfortable" xD being a JS developer is the best. 🤣⚡
This is fantastic, had me giggling away. You've gotta do one of DBAs.
Holy hell, this is so outrageous yet spot on. Killed it.
my senior project was in node/js/express, i've never self taught anything so quick in my life, and it was still a struggle. LUCKILY theres like 100k tutorials out there for some version of whatever monster you're putting together for basic stuff.
but man when i got express working it was like hallelujah
*whatever.js
I learned Doug Crockford vanilla JS like 10 years ago. Also used jQuery and Bootstrapjs. This is crazy already
Nice! These doubts down the road are exponentially bigger for learners like me...doubts/issues that set you up all the time!
Well, what can I say, it's definitely reality, so I guess that's why it hits home for so many of us.
“We actually use typescript. We still don’t know what the types are.”
This is the best video from the channel. I watched it three times and laugh out loud every time. This video reinforces what Alan Kay said once: "The Internet was done so well that most people think of it as a natural resource like the Pacific Ocean, rather than something that was man-made. When was the last time a technology with a scale like that was so error-free? The Web, in comparison, is a joke. The Web was done by amateurs."
it's been a year. i still watch this about once a month
"Global variables? no one uses them"
"it must be somewhere in the window"
XDDDDDDDDDDDDDDDDDDDDDDDDD
How do you debug that?
You don't, you just write good code.... Brilliant 🤣🤣🤣
"Noone knows what the value is until we get an error" too trueeee!
"Nobody knows what a variable's type is. We use typescript and we still don't know!"
Nothing could better sum up the JS Ecosystem. I would love to say "this year", but this has been true for the last 10 years.
This video will never not be the most accurate description of JavaScript
Sooo good - this sums it up incredibly well haha nice job!
3:14 I literally had a situation when a PATCH (0.0.X) version change in one library broke the whole application.
When you have lots enough dependencies, and your project lives through a year or so, that is inevitable.
P.S. Everyone though: "Project lives through a year? We have a fake javascript developer here!"
You are not alone; that same situation with a single-library patch (auto-upgraded into by npm) taking a whole app down happened to me last year also
Throwing in a casual “declare bankruptcy” like you’re Michael Scott 😂 4:46
This channel is my main source for programming knowledge
I've watched this over 9 times since yesterday and I still can't stop laughing. Please make a making of of this.