9 Reasons People Hate JavaScript
ฝัง
- เผยแพร่เมื่อ 6 มิ.ย. 2024
- Why does everyone HATE JavaScript? We expose its flaws, quirks, and why it's still the king of the web!
✋ Stay connected
- Twitter: / moshhamedani
- Facebook: / programmingwithmosh
- Instagram: / codewithmosh.official
- LinkedIn: / codewithmosh
📖 What's covered
00:00 - Introducing JavaScript
00:14 - History of JavaScript
00:32 - Coercion
00:59 - Equality operators
01:29 - Array.sort
01:50 - Null and undefined
02:08 - The this keyword
02:23 - Classes
02:38 - Module system
03:16 - TypeScript
03:47 - Ecosystem
04:28 - Why JavaScript is the king
#javascript #programming #webdevelopment #coding
If companies or developers stopped releasing new JavaScript libraries or frameworks every nanosecond, maybe I wouldn't hate it.
😅😅
It's kinda your problem if you can't pick one and use it tbh.
Just ignore them. Focus on JavaScript, not the libraries.
Or just creat your own library 😁😜
Don't worry AI will replace these useless languages.
I know PHP, I know Rust, I know SQL, I know Shell-script, I even once knew C and C++, but I have never managed to get comfortable with Javascript. I don't think I ever will. It never ceases to confuse me.
Similar here. I had to learn c# just so I could avoid js. I hate sql too.
I eventually managed to get it stuck in. I can use JS now. try Mosh's course on modern js.
@Terminus265 yeah.. it's not like I can't code in Javascript all. I've been a programmer for well over two decades, so I have had plenty of exposure to it. It's more that Javascript, IMHO, is so inconsistent and has so many nasty surprises that I feel I'm ridiculously unproductive in it.
@@dschledermann yeah, typescript is much better (tho it's just a linter 😂 that eventually is converted to js)
Null actually means null pointer. Values that contain objects are actually pointers to the object rather than containing the object themself, and null is pointer to nothing. Which is why typeof null is 'object'.
I'm deeply learning html and css right now next it's javascript, I want to be frontend developer
I have an awesome video for you! Coming next week!
@@programmingwithmoshinteresting I am also in same shoes as him
@@programmingwithmosh do you Any plan for flutter?
@@programmingwithmosh آقا مشفق افتخار مایی
same! my latest project requires me to learn all of them, so I hope it won't be a drastic change from the desktop languages
Thanks for your amazing content Mosh. You videos are not only very engaging and useful, but also very therapeutic and refreshing 😊
meanwhile im 46yo,self taught and still learning JS >HTML>CSS>React with vite for the last one year, im having fun learning JS because i want to be front end dev for my freelance journey
I just started a full stack JS job w/ data analysis job duties too. Seeing this video has made my heart skip a beat.
JavaScript is the chaotic language something like the internet deserves to represent it.
JavaScript is weird, but somehow I love it so much.
I agree. It's a lovely language like C.
same
do you know any different language?
@@paca3107 yes
Stockholm syndrome 😅
Web sites demand more resources than video games these days
How?
@@shaheermansoor2560 i can play video games on 1.3ghz CPU but youtube runs good on 4ghz. i underclock my CPU to keep the CPU cool.
@@shaheermansoor2560well I am a computer engineering student who’s mostly done C, and I would say logic is far easier to learn than syntax. A lot of these front end languages to me at least feel overwhelming with syntax whereas something like C is purely logic based.
@@lesterivan282862 Nah you just don't know javascript and talk shit ...
@@lesterivan282862 are you really trying to argue that c is easier to learn/code in than javascript?
hello sir, its great to see you again
Great video Mosh, the video was great! You are the best programming professor in the world!!!
MySQL has the motto "garbage in, garbage out" , and no one complains about that. You cant add objects, you should expect to get nonsense back in a scripting language that aims to keep running.
The real reason devs hate JS is because it doesn't tell them exactly what to do and how to do it. If you keep removing flexibility, you'll end up with a tool that's so terse, it'll make more sense to automate it than let you toy with it.
I decided to take JavaScript seriously because of Dash's clientside callbacks.
And I recently got hired into a web development firm that wanted a Python developer just like me. So I decided to learn JavaScript.
That undefined vs null causes a little bit of problems.
Once I knew the distinction:
const, let, var
undefined, null
object, array, map, set.
I also knew JavaScript classes were fake.
I was ready.
Don't forget about prototypes
Thanks for sharing.that is informative
Okay where does 2:17 come from?? It seems hilarious
Doing great. Here's a dare for you: Make a tutorial video of half an hour in QBasic Language.
This validate my hate🤣 but i gat to learn it for my bills😭
Lol
Hey mosh, are we expecting new courses from you, I asked you because I love your courses 😊
Great ❤❤❤
I went through BASIC, C++, Pascal (later Delphi) and finally settled on C# for 2 decades. Once over lunch we were discussing JS with colleagues who used it. I said I hate it. They asked why. Not that they were surprised; they just wanted to hear my version. I said: "I feel like coding in JS compared to C# is like going to a ballroom party in your pyjamas. Not that it can't be done. It just doesn't ever feel right".
For the short while I was sentenced to using JS, I remember I spent more than half a day once just chasing a bug due to null checking errors. That's criminal if you ask me. Horrible thing JS. I will not dignify it by calling it a language.
Honestly I kinda love the speed to prototype in JavaScript, even knowing the risk of accruing insane technical debt is a perpetual risk with how quiet the language is about the dev's mistakes.
I dunno, I'd rather just take the type coersions in JS than C segmentation faults and Java verbosity.
I just started learning js this month
Thanks for this. I'd also add the screwball syntax. Seems like you can't write a function without tossing in some blank pairs of parens and braces. What a mess.
I love JavaScript❤
Now make a video with how to cope with these shortcomings
I find TS helpful. Especially libraries built with ts.
Matter of preference. Some when they see complications they stop learn that thing. But i think developers should be vast knowledgeable in every tool out there. But who I'm i but people choose what they like
Is it popular or is it simply the default for front end?
JavaScript is the default for front end web dev.
Hey Mosh could you do a caching course, like redis
Do you think it is worth learning javascript to use it in frontend and backend if not what do you recommend
Unless you're compiling to Web Assembly you need to use JS or something that compiles to JS.
I use TypeScript front and back.
if you want to do frontend and backend development then Javascript is a necessity, but you have to learn atleast one more backend language like python,c#,java etc. along with HTML,CSS and a few other frontend frameworks
@@DigitalCanineGames_ "you have to learn atleast one more backend language like python,c#,java etc."
Nonsense. You can do full stack javascript with nodejs backends.
@@Sebastian-hg3xc I know you can that's why I said "if you want to do FRONTEND adn BACKEND development JS is a necessity", but just because you can do frontend and backend with JS doesn't mean you should or every company's code base has NodeJs on the backend, so it's good to know more, especially Java and C#
My first paid project was a telegram bot which I created using NodeJS. So I assigned price as number, but admin entered it with comma. All the posts he created had undefined on price 😂😂
🤣🤣🤣
Number(price.replacace(",", ""))
You mean the admin send those "numbers" via http, possibly as query string, which is.... string values? Parsing numbers locally aware is a challenge not just for javascript, but in general. This isn't an issue with javascript.
@@Sebastian-hg3xc The person who paid money(Admin), yes skill issue from my side😁😁. But I fixed it and did some validation using regex.
There is another alternative to JavaScript, beside TypeScript: Dart/Flutter. When compiled/run for the web it is automatically translated to JavaScript. And Dart if a safe and consistent language. Both type-safe, and null-safe. So a lot of bugs are simply prevented by the language itself.
Of course, a scricter language requires greater design and programming skills; therefore you need to be a pro.
The chaos is what makes it beautiful
Also tools like Babel and Typescript wreak havoc on your debugging experience.
l am busy with HTML & CSS, and after that going straight JavaScript!!!!
Where did u get that meme, can u share with us
Personally, I hate OOP so classes means fuck all to me. I work as a Senior DevOps Engineer anyway and we use Python (without OOP).
Can we get a full Sveltekit course please? I'll give you all my money.
What is your upcoming course mosh
Flutter
That's why I love it! hahah
Mr mosh man I love you ❤
Typing always gets me. I can assign a variable as a string, then make it a boolean, then finally a date. I know TypeScript fixes this, but you can still sign multiple types to variables in TypeScript. So your variables can be unpredictable when debugging someone else's code.
Well, then don't. What's the problem?
Don't debug other's code? Interesting take.
I mainly use C# for backend development and learning JavaScript was a breeze after learning C#. I honestly don’t get the hate. Debugging is not horrible if you use console.log along with your browser dev tools
sir you better update your course in your website about React native because is it so old version of documentation React Native 0.62 and now React Native 0.72
I use wysiwyg and I don't have to program in html anymore
using javascript since 1998 for DHTML website, but never use it as primary/main language programming.
website is chaotic thing, you'll never can build it only using javascript without HTML and CSS.
I don't care full stack or front-end or whatever it called, just used whatever you want to write.
Is it possible talk about world strtengthest chess software Sockfish 16.1 heard part of software uses C++???
I only know C and C++ (they are not the same thing, and learning to write idiomatic C and C++ is like learning a different language, but they do work very similarly under the hood)
the idea that null and undefined are two different things ... or that a can equal b and b can equal c but a does not equal c as explained above , yikes ... i dont think i ever wanna learn JS ...
Over the years it’s become fashionable to hate JS. The rules, with some admitted quirks, are very easy to absorb. Everyone who has ever cited some of those quirks I’ve asked how often they’ve been affected which is almost never. The loose and strict equality is probably the greatest real world quirk
Guess what, my 1 programming language is JavaScript and still using it with typescript 😮
I didnt like it because the intellisense wasnt there and troubleshooting it was needed a browser that dont give all the data... but could do all programming though... but if someone writes in html javascript and you need to change it, it is headache as you cant troubleshoot and have to do fast code reading like me and fix it or make it better
Its typescript who stopped me quitting Javascript 😐
`this` is a menace
Typescript should be merged into Javascript. The lack of rules in js destroys the language.
I find this video very funny cause of how true it is, but bruh, I love JavaScript, I do everything with it, typescript is a good one though, since learning typescript, it’s been the go-to, still JavaScript under the hood 😂
Hey, lets bring jQuery back. It was fun to use and it was easy. Update that to the date. It had all the capabilities the UI could need. Some improvements here and there and it would have been a good alternative to current library set of javascript library jumble.
mosh you are just making it complex, in real world, who the hell would add empty arrays and empty array and objects?
Who wouldn't? It's extremely useful
No one will lol@@xitaris5981
@@xitaris5981useful in what sense? Lol. Im a software engineer for almost 10 years, i have experienced building various backend services and web applications
Who the hell would add empty objects and empty array for what use cases? 😂
Before such empty objects go to your backend to process, should be validated, in real world scenario, no one would ever process empty objects or empty arrays
Get your facts straight
maybe a member in the team who introduce a bug that difficult to trace.
@@xitaris5981 "It's extremely useful"
Okay, then use the right syntax. If it's arrays, use concat. If it's objects, use Object.assign or the newer spread operator. The plus operator is used for numbers and strings, not for arrays and objects.
Excuse me. Sorry if it bothers you, can you recommend data recovery software for Android with a 100% success rate?
You forgot to mention the incredibly resource consumption
Where is @2:16 from?😂
JavaScript is not clear about a lot of stuff but I love it.
I hated learning JS and web when forced to work on an internal webapp that was built on bootstrap when Jquery was underpinning it. It made it so confusing and all these frameworks that popup with syntax baggage just made it hell. After that nightmare project I remade their stupid BS template and theme widgets in raw HTML5, CSS, and JS6. Not only did I learn real web dev the website was lean and fast and maintainable by any competent programmer. Those frameworks seem great but the time it appears to save gets paid for later tracing odd bugs or security issues back to your 10 megs of black-box lib imports because FOSS is assumed to be reliable too often.
There's no thumbs-up button :-/ ... not sure what's going on with YT these days. Learning JS right now, agree on all points you make, coming from Java/Python/C# this languages has lot of strange "rules".
JS isn't perfect (no language is), but people hate on it because they think hating it will in-group them, or for content-creator clout -- contributing to the previous. Coming from JS to Python, there are some nice things about it, but I mostly prefer JS (and TS even more -- it's not that hard to pick up if you know JS). If I'd mostly worked with Python before, though, I suspect I'd have a different opinion. In the future I want to pick up languages like Go and Elixir, and I fully expect to have substantial dislike for parts of the experience.
These are what make Javascript the best programming language.
I might be somehow wrong , but I just logged the outputs of these , both in the browser and in a server env , here is what I get : [] + [] => ' ' ; [] + {} => [object Object] ; [] + {} => [object Object] ; {} + {} => [object Object][object Object]
Yes, mosh is wrong on this one.
I love you Mosh
So many non-issues. How is [ ] + { } = ? an issue you could possibly run into??? Why would you want to add an empty array to an empty object? I don't understand a real world application of this. Can someone explain why this video includes it?
Sure, there is no point in using such expressions intentionally. However, if one tries to add values that come from functions that play loose with type conversions, such things can happen and catch a developer unawares.
@@barbidou If ur functions make your code add an object to an array, they can't be valid functions in real world scenarios.
console.log({}+[]) => [object,Object]
console.log({}+{}) => [object,Object] [object,Object]
I try this they are different what you said,
Did I do someting wrong?
the technology that enables bloatware and all those trackers.
I saw a lot of memes about JavaScript being trash but I never used it myself. I went straight to TypeScript and honestly I like it. Python and TypeScript are my top languages.
It's true that JavaScript got some weird behaviours that would sometimes make you scratch your head for hours.
If you want to be a frontend wizard, you have no choice to master js html css. That is life.
JS is complicated for beginners or messy developers. You can do things in hundreads of ways and more than half of them are wrong. The hard part of JS is just about learning discipline, cleaness and simplicity. You can do everything with a functional approach without classes and without using this and its contexts.
An average developer typically write crap with JS. An advanced one would write very elegant code. Mastering JS is not easy, this is why people hate it. A well written JS code is thousands of time more concise and elegant than a python one.
Oh yeah
jQuery literally ruined my first few years of my career. I completely had no clue what JavaScript was.
That's why typescript makes Javascript better.
it doesn't matter if {}+{}=0 or anything bcz there's no rational developer will do it in real world projects so javascript is the best
Lmao it's not, there's a reason Typescript exists
I don't hate JavaScript, but I can't say the same about the ecosystem
I recently started to use TS in project and... I clench my teeth everytime i need to do something and i comfort myself that's a work that i do for future me.
Typescript is a Language ❌
Typescript is a Linter ✔
PHP has suffered hate for decades and survived, its JavaScript turn! Like JavaScript they both put food on the table.
i hate it and it doesn't pay my bills yet :(
i know a lot about python and i can say JS is really bad, and i built a few stuff in JS
Same.lol!
I think people who hate JavaScript just don't really want to learn it.
I love it more than I hate it
Because it is not OOP, but tries to lean into it.
I use webassembly C# Blazor, and try to forget Javascript since then.
yeap , js is weird and awesome at the same time !
Anyone here with JavaScript ebook? Thank you!
😂😂 love the illustrations.
Becuase Flutter(dart) is much better and easier and full stable language
Drizzle didn't remove TypeScript. Drizzle team was dunking on DHH for his decision to remove TypeScript. It was a joke on Twitter.
Didn't know people hated JavaScript.
These coercion quirks brought up in the video are only a theoretical problem and not really an issue when writing applications with javascript. Most of javascript's language issues are mitigated if you activate your brain. But people are lazy. I get it. They don't want to educate themselves. But true, the non existent type system make intellisense impossible which forces you to always lookup things in the documentation.
It pays the bill 😂❤
I love JavaScript because it pays my bills and it can also be use on the server which makes life easier to transition from a frontend to a fullstack Developer with the same language which means I will be making more money with the same language 😂😂😂
Because it's so difficult to program
it runs on browser and on server… no other languages can do that!
well java and python can..
Love JavaScript