Looking Under the Hood of JavaScript

  Рет қаралды 189,179

ThePrimeagen

ThePrimeagen

Күн бұрын

Пікірлер: 580
@ThePrimeagen
@ThePrimeagen 2 жыл бұрын
I really enjoyed making this video. Its more of a new style for me, do you like it? Should I do more of this style? (send the algorithm signals!!!)
@the_flask
@the_flask 2 жыл бұрын
Yes
@dhruvtekker1220
@dhruvtekker1220 2 жыл бұрын
It's super complicated and i didn't understand most of it. But i liked it bc i wanna learn more about js--> c++ stuff
@matiasbpg
@matiasbpg 2 жыл бұрын
I loved the video. It's really difficult to give content like this that deep dive into the internals
@mouradaouinat8721
@mouradaouinat8721 2 жыл бұрын
Duh
@user-alesomething123
@user-alesomething123 2 жыл бұрын
Yes please, I really like that the content is aimed towards explanation for intermediary stuff. Especially the fact that you’ve posted a link for further explanation and I can go and see things I don’t understand. There’s already content on KZbin code space aimed towards beginners and people with an agenda to obscure info to sell a course. It’s why I mostly avoid KZbin these days and just focus on odin project.
@RunningRay9
@RunningRay9 2 жыл бұрын
this shows that JS is BLAZINGLY fast. It executes a code that is supposed to take infinitely long time in just an instant. Blazingly fast
@wlockuz4467
@wlockuz4467 2 жыл бұрын
It has done executing while Rust hasn't even compiled!
@wadecodez
@wadecodez 2 жыл бұрын
Or is it infinitely fast?
@igorordecha
@igorordecha 2 жыл бұрын
@@wlockuz4467 I just thought... You have an algorithm written in both JS and Rust (both in source form). You enter commands "node program.js" and "cargo build && ./target/debug/program" respectively and measure time from pressing enter to the program returning. How large the input must be (the N in big O notation) for rust to win? Then check how building for production changes the results.
@kamuridesu
@kamuridesu 2 жыл бұрын
@@igorordecha I made this test some time ago with python and it really depends on the operation and performance of the machine. Using an 7th gen Intel core i7 and a simples multiplication operation, even with compilation rust executed faster than Python. I assume that JavaScript has a performance similar, if not worse, than python
@HuntingKingYT
@HuntingKingYT 2 жыл бұрын
@@igorordecha cargo run**
@kebien6020
@kebien6020 2 жыл бұрын
To summarize (please correct me if I misunderstood): - The infinity case is just special handling where it's treated the same as 0 - Any other number gets casted to a 32 bit integer so some of the bigger numbers get truncated to small or even negative values - Negative values are handled effectively the same as 0
@ricardoamendoeira3800
@ricardoamendoeira3800 2 жыл бұрын
What I don't understand is if you're making a special case for infinity why would you run it immediately instead of simply not scheduling it at all?!
@MrSuperNova46
@MrSuperNova46 2 жыл бұрын
@@funnyav "This is the way"
@alxandr90
@alxandr90 2 жыл бұрын
@@ricardoamendoeira3800 As far as I understood, the converting of Infinity to 0 has nothing to do with `setTimeout`. Rather, `Infinity` converts to 0 if you try to treat it as an integer. If you do `Infinity | 0` you get 0.
@nathanhedglin931
@nathanhedglin931 2 жыл бұрын
@@funnyav divide by zero would be NaN. Weird stuff
@rosenthalpiano
@rosenthalpiano 2 жыл бұрын
@@nathanhedglin931 setTimeout with NaN also executes immediately. Fun huh?
@mattshnoop
@mattshnoop 2 жыл бұрын
Excellent video. This video has less of a "look how shitty JS is" vibe and is more just a great deep dive into the internals of V8.
@ThePrimeagen
@ThePrimeagen 2 жыл бұрын
thats the point! no need to bag on JS, its been bagged on enough, its more "why" does it do something
@SleepeJobs
@SleepeJobs 2 жыл бұрын
👍👍
@ricardoamendoeira3800
@ricardoamendoeira3800 2 жыл бұрын
@@ThePrimeagen Actually I think this was more the "how it happens", in the future it would be nice to include the discussions on why some decisions were made (from issue trackers, PR's, etc. For example why choose to treat infinity as 0 instead of not scheduling the callback at all.
@lawrencedoliveiro9104
@lawrencedoliveiro9104 2 жыл бұрын
So basically, it is V8 that is shitty.
@jongeduard
@jongeduard 2 жыл бұрын
For me it's not completely the first thing about V8 that I have watched around the subject of data types. I forgot which video it was, but it was some years ago and they had a very detailed explanation about the V8 engine and how you could write your code smarter to become more high performant. They also talked about SMI numbers and how using arrays of SMI's where the most efficient ones to use (because of preventing those extra pointers and memory allocations), also how important it was in general not to mixup several types in the same array. For example 1 object or string inside your array also containing numbers makes the whole thing based on extra pointers and allocations (in other words, the whole array becomes a boxed one). It's also true the language has a ton of initial design problems. But other languages also have their issues. C and C++ have their own huge problems for example (being very unsafe and vulnerable for example). It's great that powerfull JS engines exist these days. I would like to know more about the Firefox JS engine as well. Because V8 is not the only workhorse one that exists.
@snoopy8870
@snoopy8870 2 жыл бұрын
this type of content on programming is what we need more!!!
@chrismuga
@chrismuga 2 жыл бұрын
Facts
@YPLabs
@YPLabs 2 жыл бұрын
@@chrismuga
@spicybaguette7706
@spicybaguette7706 2 жыл бұрын
Massive props to the v8 devs for making a garbage (collecting) language actually performant, these optimizations are just insane. Also SO to the people working at JSC and SpiderMonkey
@ThePrimeagen
@ThePrimeagen 2 жыл бұрын
yayay! its nuts that v8 team is so talented they took a language that is TERRIBLE for perf and made it semi decent. its ackshually nuts.
@scottiedoesno
@scottiedoesno 2 жыл бұрын
Love love love this video. This is the kind of stuff that really gives so much insight into what's going on behind the scenes. Thanks a ton for taking the time, not only to figure out why, but also to explain it so well.
@ThePrimeagen
@ThePrimeagen 2 жыл бұрын
:) ty bud !!
@Nurof3n_
@Nurof3n_ 2 жыл бұрын
More videos like this one please!
@ThePrimeagen
@ThePrimeagen 2 жыл бұрын
ya!
@YPLabs
@YPLabs 2 жыл бұрын
​@@ThePrimeagen And make them pretty LongLongLong xD
@SoKette
@SoKette 2 жыл бұрын
Diving into internals is always fun ! When everything gets demystified after a long and arduous journey of grepping and filling your brain with as much as you can, it's sooooo satisfying.
@ThePrimeagen
@ThePrimeagen 2 жыл бұрын
I also didn't fight anyone, i got a stye, a duct in my eye closed and eff'd me for a few days...
@tini_
@tini_ 2 жыл бұрын
hmmmm, your last sentence "he is the best Engineer I have ever worked with" sounded kinda sus. Blink twice with the other eye if you need help!
@lawrencedoliveiro9104
@lawrencedoliveiro9104 2 жыл бұрын
Hey, it was a chance to use the old “you should see the other guy” joke ...
@peternoire
@peternoire 2 жыл бұрын
I know we are kinda making fun of JavaScript but.. its so educational it just makes me love JavaScript more. You're great at doing this type of content. Definitely do more.
@peternoire
@peternoire 2 жыл бұрын
I said we as in we made this video together apparently. I don't know why I typed that.
@ThePrimeagen
@ThePrimeagen 2 жыл бұрын
btw, i am not trying to make fun of javascript, just trying to have fun with it :) and try to explain things in a fun way!
@RainOrigami
@RainOrigami 2 жыл бұрын
classic case of stockholm syndrome
@peternoire
@peternoire 2 жыл бұрын
@@ThePrimeagen you killin it, thanks for the good content. 👍
@professornumbskull5555
@professornumbskull5555 2 жыл бұрын
Yo... You love JS? Are you alright? Do you need therapy? /s
@judedavis92
@judedavis92 Жыл бұрын
It’s actually refreshing to see a JS dev with a good understanding of under-the-good mechanics. We need more like that.
@SuperRedstoneman
@SuperRedstoneman 2 жыл бұрын
Saddens me that not more people are doing videos like this and there are some concepts you go through very quickly but nevertheless I like how you explained a single thing in detail quickly while throwing in knowledge and remarks about how things work
@johndavidson8096
@johndavidson8096 2 жыл бұрын
Great video! Love seeing in-depth JS stuff! It's crazy impressive how much work V8 does to make JS run faster
@JosephHenryDrawing
@JosephHenryDrawing Жыл бұрын
This is really important to teach that! Don't be afraid to understand the internals and check the source code. Amazing video
@marcoaugustovitangeli1300
@marcoaugustovitangeli1300 2 жыл бұрын
I really enjoyed this video, this kind of content is great, is beautiful to see how "high-level" code, works all the way down and spot this kind of tricky things.
@ThePrimeagen
@ThePrimeagen 2 жыл бұрын
:)
@shekishral6570
@shekishral6570 2 жыл бұрын
Very informative and interesting, please more of those videos when you brake the javascript code into c++ code!
@za_wavbit
@za_wavbit Жыл бұрын
So in the first few seconds my mind already jumped to "32 bit signed integers" and it turns out that was right, but I didn't know the default behavior for something larger was 0. The spec is really fascinating, especially since it includes so much stuff that JS users (like me) would love to see changed, but it can never change because JS has to be backwards-compatible forever. There's always a _logical_ explanation for JS weirdness that made sense at one point in time, but that doesn't mean it's always rational in 2023 (except for typeof null, which was just an accident, but now we're stuck with it).
@oscarh4066
@oscarh4066 Жыл бұрын
I just found you, Prime, and man I became a fan BLAZINGLY FAST!
@ThePrimeagen
@ThePrimeagen Жыл бұрын
LETS GO!!!
@user-dz7bi8de7z
@user-dz7bi8de7z Жыл бұрын
I am so happy that I stumpled across this channel. You are such an inspiration, your videos are so well made, funny and you are very authentic. Love it! Thank you very much for your content!
@bashbunni
@bashbunni 2 жыл бұрын
This is amazing! You crushed this new format 🔥
@ThePrimeagen
@ThePrimeagen 2 жыл бұрын
oh bash... stawp
@trollander
@trollander Жыл бұрын
This is so entertaining as well as informative. Learned a lot! Found you from the vim and algorithm courses on frontend master . Huge fan of your teachings
@m.minkov
@m.minkov 2 жыл бұрын
Really enjoyed this video! Love covering these details that are much more in depth than what you regularly see. Thanks! :D
@timdithmer9184
@timdithmer9184 2 жыл бұрын
This really is some next level sh*t! Thank you very much. I was already enjoying your content a lot. But this teaches people how to find out stuff by themselves, along with providing a very deep understanding of this specific topic. Again, thanks alot! MORE! :D
@ThePrimeagen
@ThePrimeagen 2 жыл бұрын
yayaya
@npgoalkeeper
@npgoalkeeper 2 жыл бұрын
Reviewing an example of chromium doing something seemingly unexpected while on Firefox, truly a chad move
@sooollchhu
@sooollchhu 2 жыл бұрын
i am gonna have to rewatch it a couple of times to understand it, my brain is not cooperating today . Thank for this video.
@mediopalodev
@mediopalodev 2 жыл бұрын
Brilliant Video. Absolutely more, please!
@samsupplee-niederman1752
@samsupplee-niederman1752 2 жыл бұрын
More of this, please. I've never seen what "under the hood" of JS before this video, and this was an awesome introduction to the WHY behind the weirdness.
@danielknight1570
@danielknight1570 2 жыл бұрын
sometimes idk wtf ur talking about Prime but it’s soothing to hear ur voice
@juniorrueda8180
@juniorrueda8180 2 жыл бұрын
That’s quite deep indeed Amazing video and thanks for sharing your knowledge!
@ThePrimeagen
@ThePrimeagen 2 жыл бұрын
yayaya
@headlights-go-up
@headlights-go-up 2 жыл бұрын
This was simultaneously interesting and confusing. I'm not smart enough for this, should I be ashamed? lol
@ThePrimeagen
@ThePrimeagen 2 жыл бұрын
i think you have achieved a victory?
@Vim_Tim
@Vim_Tim 2 жыл бұрын
Follow-up question: what does the spec say? Is this Google’s interpretation, or do all browsers implement SetTimeout this way?
@lawrencedoliveiro9104
@lawrencedoliveiro9104 2 жыл бұрын
I had a look at the MDN page (probably the most readable description I could find), and apart from warning about non-numbers being implicitly coerced into numbers, it says nothing like this. There are situations where delays may last longer than expected, but they should never be shorter. So it seems like this is some kind of weird Chrome/Chromium bug.
@Vim_Tim
@Vim_Tim 2 жыл бұрын
@@lawrencedoliveiro9104 MDN is not a specification… I believe ECMA-262 is the authority for this behavior.
@Vim_Tim
@Vim_Tim 2 жыл бұрын
I found the answer: the W3C HTML5 standard says “if timeout is an Infinity value, a Not-a-Number (NaN) value, or negative, let timeout be zero.” So this is behavior is by design.
@lawrencedoliveiro9104
@lawrencedoliveiro9104 2 жыл бұрын
@@Vim_Tim But that doesn’t say that large values should overflow.
@omarb155
@omarb155 Жыл бұрын
It it interesting to consider edge cases like in this video, but hopefully this issue shouldn't arise too often.
@hendersonfernandes7378
@hendersonfernandes7378 2 жыл бұрын
You are the senior I'd like to have in my life... Awesome video!!! ❤
@ThePrimeagen
@ThePrimeagen 2 жыл бұрын
hio! ty bud :)
@jocdiazm
@jocdiazm 2 жыл бұрын
Loved the new format!
@ThePrimeagen
@ThePrimeagen 2 жыл бұрын
lets go!
@masteringmui
@masteringmui 2 жыл бұрын
This video was awesome. I'd love more stuff like it, and also more stuff on your learning process and how you set about getting such in-depth knowledge on nitty-gritty stuff like this.
@blackfrog1534
@blackfrog1534 2 жыл бұрын
Wow awesome video :3 the more technical the content the more prime shines
@vvarhand3985
@vvarhand3985 2 жыл бұрын
I loved this!! Would really enjoy seeing more intricate and technical details of the browser’s implementation. You have a great instructional style
@y3v4d
@y3v4d 2 жыл бұрын
Awesome video, short and full of interesting information and analysis!
@Simon-vy8fe
@Simon-vy8fe Жыл бұрын
Love these deep dives! Keep them going please. :)
@igboman2860
@igboman2860 Жыл бұрын
So in summary, setTimeout expects a 32 bit signed integer and overflows . Thanks for the video. I actually didn't know that
@michaeldeloatch7461
@michaeldeloatch7461 Жыл бұрын
I'm a little stopped up in the ears tonight, and a lot hearing impaired every night, and the speakers on my laptop are lousy. @ 2:40 I thought you said "ideologue" which certainly could figure in philosophically between the loosy-goosy world of JS and the cold, heartless metal of C calls ;-) -- oh, you actually said IDLong
@Ma1ne2
@Ma1ne2 2 жыл бұрын
This was actuall very interesting, I was building a project for university with Rust to Webassembly and a lot of the ideas that you explained here to interface JS with C++ actually apply directly or similarly to wasm-bindgen, including how there is a wrapper struct for passed and returned JS values.
@edupsousa
@edupsousa 2 жыл бұрын
It's kind of scary the number of assumptions or best guesses a web browser does. The last time I dove in Chromium code was to find out why it was trying to autocomplete a random text field in my form as a credit card number. Lots of obscure heuristics.
@ThePrimeagen
@ThePrimeagen 2 жыл бұрын
its crazy out there :)
@jfdirienzo
@jfdirienzo Жыл бұрын
This style of video is pure gold 🔥🔥🔥
@abhishekgururani6993
@abhishekgururani6993 Жыл бұрын
This video is pure gold, I learned how to research things.
@mzg147
@mzg147 Жыл бұрын
I hate js, I am doing challenges to write web apps without touching js, but this deep dive is just great. Makes appreciating it much easier (it's still hard tho), thank you really much!
@deank179
@deank179 Жыл бұрын
Super interesting! Would love to see more content like this
@HuntingKingYT
@HuntingKingYT 2 жыл бұрын
It does it immediately because it’s blazingly fast.
@stefanhall6415
@stefanhall6415 2 жыл бұрын
Love your videos❤
@ThePrimeagen
@ThePrimeagen 2 жыл бұрын
hey thanks stefan :)
@amans6504
@amans6504 Жыл бұрын
This time i finally could understand a little c++ in production.
@petarkolev6928
@petarkolev6928 Жыл бұрын
This video is beyond amazing!
@ThePrimeagen
@ThePrimeagen Жыл бұрын
oh well ty :)
@diegolikescode
@diegolikescode 2 жыл бұрын
That is some juicy ass content. Loved this format, you keep getting better and I'll keep coming to you (wat?)
@ThePrimeagen
@ThePrimeagen 2 жыл бұрын
LETS GO, KEEP COMING BABE!
@petrpechkurov3095
@petrpechkurov3095 Жыл бұрын
Thank you, Mr. ThePrimeagen!
@ascourter
@ascourter Жыл бұрын
Nothing like pulling out the ole 2's complement to see some jaws hit the floor
@kardashevr
@kardashevr 2 жыл бұрын
a fascinating piece of knowledge I'm never gonna need
@jgttech
@jgttech 2 жыл бұрын
I loved this video. It explains the situation really well.
@Trooperos90
@Trooperos90 7 ай бұрын
What do u mean it gets translated to cpp? Its just v8 interpreter using binary code that was compiled from cpp
@moodynoob
@moodynoob 2 жыл бұрын
Absolutely love this kind of content!
@CodeWithAhsan
@CodeWithAhsan 2 жыл бұрын
I loved this Deep dive. Been working with JS for the past 10 years I never knew about this :) I'd love more of this and would perhaps now start looking into the chromium source code myself as well! Thanks the swolleyeagen
@pd5711
@pd5711 2 жыл бұрын
Thanks for that video ! Props for Westbrook usage :D
@palaciokaesar
@palaciokaesar Жыл бұрын
an programmer youtube with a huge charisma??? YES I AM INNNN
@thehibbi
@thehibbi 2 жыл бұрын
I like understanding stuff like this by inspecting the source code. Very nice video, thanks :)
@hugodsa89
@hugodsa89 Жыл бұрын
God I love these videos. Thanks prime.
@UsefulProgrammer
@UsefulProgrammer 2 жыл бұрын
I really liked this one. Keep it up.
@alexibnz
@alexibnz 2 жыл бұрын
This style reseembles a lot with what I do at my job, but without SAP frameworks… fortunately for the rest of the viewers. Pls do more!
@DaviAreias
@DaviAreias 2 жыл бұрын
So basically half of time the V8 engine is checking if we wrote something stupid?
@ThePrimeagen
@ThePrimeagen 2 жыл бұрын
yes
@bravesirrobin9576
@bravesirrobin9576 Жыл бұрын
I love this video, I'd like to see more of this type.
@mondirhallouli
@mondirhallouli Жыл бұрын
you sir are just different! in a very awesome way!
@kr0k3tt
@kr0k3tt Жыл бұрын
Liked for the instance promotion. Thanks prime
@drdesten
@drdesten Жыл бұрын
As someone who has read into the JavaScript spec, these kinds of things don't surprise me too much
@razorstone3088
@razorstone3088 2 жыл бұрын
never looked into what the code for v8 looks like... looks interesting
@ThePrimeagen
@ThePrimeagen 2 жыл бұрын
its rough.
@Dima1415
@Dima1415 2 жыл бұрын
You’re rough
@softed
@softed Жыл бұрын
The infinity thing I can understand, but the rest is just integer overflow which can happen in most languages including rust
@darylclarino5439
@darylclarino5439 2 жыл бұрын
this is an inspiration to create confusing prs that work to confuse colleagues for the lols
@dano7675
@dano7675 2 жыл бұрын
Bah gawd! The SwoleEyeAgen strikes again!
@avinashthakur80
@avinashthakur80 2 жыл бұрын
Even worst issue I found in JavaScript is that +0 & -0 are different concepts and in some situations give different results.
@ThePrimeagen
@ThePrimeagen 2 жыл бұрын
so... that is a funny thing. -0 and +0 is the IEEE standard, not js :)
@avinashthakur80
@avinashthakur80 2 жыл бұрын
@@ThePrimeagen Yes it's IEEE standard but only in JS we see it's worst implementation. For example, these 2 expressions give different results. Math.atan2(-0, -1) Math.atan2(0, -1)
@softwarelivre2389
@softwarelivre2389 2 жыл бұрын
@@avinashthakur80 As they should. It would be clear for anyone that has studied limits in Calculus classes
@avinashthakur80
@avinashthakur80 2 жыл бұрын
@@softwarelivre2389 Limits don't apply here. Limit(x→-0) f(x) is different and not equivalent to f(-0) or f(0) In Math, there's no concept of "-0", it is equal to "0".
@softwarelivre2389
@softwarelivre2389 2 жыл бұрын
@@avinashthakur80 0- and 0+ are literally lim x-> 0- x and lim x->0+ x
@st-jn2gk
@st-jn2gk 2 жыл бұрын
love your videos (waiting on your rust ergonomics vid btw 🥺)
@totalmonkeyspeed260
@totalmonkeyspeed260 2 жыл бұрын
Good video, do whatever you want dude.🙏
@Amy_A.
@Amy_A. 2 жыл бұрын
Before watching and without knowing the answer, I'm guessing it has to do with parseInt, and setTimeout might handle NaN as 0 to simplify debugging. Edit: So kinda close. I've never needed to use Infinity before, so I didn't know how it would be parsed, and I've never tried passing anything to setTimeout that wasn't a hardcoded number (or a variable with a hardcoded number), so I didn't know for sure how it would handle that. Good info, thanks for sharing, Prime!
@ThePrimeagen
@ThePrimeagen 2 жыл бұрын
its more confusing than that! 32 signed integer conversion babe!
@matthewvaccaro8877
@matthewvaccaro8877 Жыл бұрын
More! More you son of a bitxh!!! More content like this, it’s absolutely amazing ❤❤❤
@ImranSheikh-kg4qd
@ImranSheikh-kg4qd 2 жыл бұрын
We need more of this type of content...
@henrybenedict6357
@henrybenedict6357 2 жыл бұрын
I just watch your course about vim on frontend masters and I love it.
@SunnyOhm
@SunnyOhm Жыл бұрын
6:00 "instant promotion" lol, more like "instant getting fired". But if you manage to not get fired, you can become "indispensable", because no one else will be able to maintain your code…
@dipjul
@dipjul Жыл бұрын
Let guess it before watching the answer: Is it because of integer overflow, it is the number entered is outside the range, it circle back. For example: we the accept range as -1 to +1, and we enter 2, the it get takes the value -1.
@lotfikamel5947
@lotfikamel5947 2 жыл бұрын
Really special content 💖
@ThePrimeagen
@ThePrimeagen 2 жыл бұрын
i feel special sometimes
@awave7710
@awave7710 Жыл бұрын
def looking forward to more of these
@AlexanderBorshak
@AlexanderBorshak 2 жыл бұрын
Nice investigation, many thanks!
@es68951
@es68951 2 жыл бұрын
Classic case of "Weirdness from under the hood" 😂 Wonder how many JS devs were like "Cwutwut now?"
@smile4992
@smile4992 2 жыл бұрын
I didn't know gimp can be used to create tutorial videos like this. This is amazing.
@BRP-Moto-Tips
@BRP-Moto-Tips 2 жыл бұрын
this wasn't in the 48 hours 0 to senior dev bootcamp I did :/
@ThePrimeagen
@ThePrimeagen 2 жыл бұрын
You should have done the 0 to 72 hour course.
@iustusae
@iustusae 2 жыл бұрын
I NEED MORE VIDEOS MORE BLAZINGLY FASTER THAN THIS SWOLLENEYEGEN !!! (shoutout to da wife for supporting you)
@ThePrimeagen
@ThePrimeagen 2 жыл бұрын
hio! ty :) yeah, its really hard to live this lifestyle of 4 kids, beautiful wife, twitch, yt, netflix... oof
@zebedie2
@zebedie2 Жыл бұрын
Welcome to the wonderful world of two's complement where the msb represents if the number is negative.
@medamine3142
@medamine3142 2 жыл бұрын
my mind is exploded from this explanation😵
@ThePrimeagen
@ThePrimeagen 2 жыл бұрын
hopefully in a good way
@medamine3142
@medamine3142 2 жыл бұрын
@@ThePrimeagen HAHA right
@chrissaltmarsh6777
@chrissaltmarsh6777 2 жыл бұрын
This is hilarious. Reminds me of an ancient Sinclair calculator, very cheap, which got things wromg; the fun was to work out why. Lack of RAM - can't deal with edge cases, oh well, WTF. Javascript does not have that excuse.
@ThePrimeagen
@ThePrimeagen 2 жыл бұрын
hah, i like investigations, they are funny
@kiffeeify
@kiffeeify Жыл бұрын
IDL files (I think interface definition language) are also heavily used by wasmbindgen to autoconvert the glue code used when you want to use the browser API from your webassembly rust application ;-) AFAIK wasmbindgen uses the IDL files to autogenerate all the web_sys features, i.e. web_sys is entirely generated code(?).
@quintencabo
@quintencabo 2 жыл бұрын
I really loved this video!
@qodesmith520
@qodesmith520 2 жыл бұрын
You're a friggin genius.
@ThePrimeagen
@ThePrimeagen 2 жыл бұрын
just a man with curiosity
@AlexSharikov
@AlexSharikov 2 жыл бұрын
Yes, entertaining and knowledgeable 💥
@TeamEternalEmpire
@TeamEternalEmpire Жыл бұрын
Is there a way to prevent that 'immediately' and 'never' behavior? If we are dynamically writing a value, it can lead to a bug that may be impossible to find
@davidomar742
@davidomar742 2 жыл бұрын
This is great, on my next interview when they ask me if I have any questions, Ima hit the interviewer with this question. Instant hire
@MyAmazingUsername
@MyAmazingUsername 2 жыл бұрын
Woof all that conversion code makes it a miracle that V8 is as fast as it is... But will it ever be BLAZINGLY FAST? No, for that we need Rust of course.
How Slow Is JavaScript? | Prime Reacts
15:34
ThePrimeTime
Рет қаралды 186 М.
Are Developers Ok?
11:46
ThePrimeagen
Рет қаралды 189 М.
小丑女COCO的审判。#天使 #小丑 #超人不会飞
00:53
超人不会飞
Рет қаралды 16 МЛН
Леон киллер и Оля Полякова 😹
00:42
Канал Смеха
Рет қаралды 4,7 МЛН
99.9% IMPOSSIBLE
00:24
STORROR
Рет қаралды 31 МЛН
coco在求救? #小丑 #天使 #shorts
00:29
好人小丑
Рет қаралды 120 МЛН
JavaScript Is Weird (EXTREME EDITION)
21:29
Low Byte Productions
Рет қаралды 691 М.
Is JSON Blazingly Fast or...?
9:57
ThePrimeagen
Рет қаралды 197 М.
Rust for TypeScript devs : Borrow Checker
8:49
ThePrimeagen
Рет қаралды 233 М.
PROOF JavaScript is a Multi-Threaded language
8:21
Beyond Fireship
Рет қаралды 295 М.
Performance of JavaScript Garbage Collection | Prime Reacts
26:46
ThePrimeTime
Рет қаралды 74 М.
JavaScript: How It's Made
10:54
Fireship
Рет қаралды 891 М.
This Algorithm is 1,606,240% FASTER
13:31
ThePrimeagen
Рет қаралды 860 М.
How I Made JavaScript BLAZINGLY FAST
10:10
ThePrimeagen
Рет қаралды 225 М.
How to Vim in 2023: Tips and Tricks
15:53
ThePrimeagen
Рет қаралды 446 М.
小丑女COCO的审判。#天使 #小丑 #超人不会飞
00:53
超人不会飞
Рет қаралды 16 МЛН