Discussing node.js - Computerphile

  Рет қаралды 224,174

Computerphile

Computerphile

3 жыл бұрын

The hidden technology that's behind apps like Visual Studio Code & Skype is web based. David Domminney Fowler chats Google's V8, node.js & HTML5
More about David Domminney Fowler: / daviddomminneyfowler
/ computerphile
/ computer_phile
This video was filmed and edited by Sean Riley.
Computer Science at the University of Nottingham: bit.ly/nottscomputer
Computerphile is a sister project to Brady Haran's Numberphile. More at www.bradyharan.com

Пікірлер: 1 000
@Rob9
@Rob9 3 жыл бұрын
As someone who has done a ton of firmware and end user programming, I barely know anything about web programming. I'd love this series.
@lunaticberserker5869
@lunaticberserker5869 3 жыл бұрын
As someone who's new doing web programming, I nothing about firmware and end-user programming, and I'm curious about it. :p
@aryanmaurya3422
@aryanmaurya3422 3 жыл бұрын
Yeah, I guess firmware programming is much more complex than Web programming.
@lunaticberserker5869
@lunaticberserker5869 3 жыл бұрын
@@aryanmaurya3422 Exactly! That's why I'm curious about it.
@chrisbailey2098
@chrisbailey2098 3 жыл бұрын
@@aryanmaurya3422 I would say they are equally complex, throw node into the equation and you have server side programming as well as front end. Different horses for different courses as they say
@rban123
@rban123 3 жыл бұрын
@@aryanmaurya3422 it's not exaclty "more complex," it's just completely different and complex in different ways.
@a8lg6p
@a8lg6p 3 жыл бұрын
Here's a potential Computerphile video topic: Ryan Dahl, in his original presentation of Node, said something like: Multithreading is a leaky abstraction. It sounded like there may be some use-cases where the traditional multithreading approach is superior, but for many, it sounds like the event-driven approach is not only easier to reason about and avoids many of the headaches associated with writing multithreaded code, but at least for some use cases, is demonstrably faster. That's a topic I'd like to hear more explanation and commentary on.
@Eliassausaur
@Eliassausaur 3 жыл бұрын
I agree much more with this than a single thumbs-up could ever express
@bk1507
@bk1507 3 жыл бұрын
Would definitely watch a video about this
@sycration
@sycration 3 жыл бұрын
I've found Rust language to remove much of the headache for me at least
@johnfrazer7964
@johnfrazer7964 3 жыл бұрын
@@sycration Yeah Rust is great and fast but it comes at a price, like you have to deal with ownership which can be a real headache. I've been writing some smallish glue code in Rust lately where I started out in pure 'cargo cult' mode i.e. copy/pasting existing code then adapt it. When some of the typical Rust errors hit me like optional values or, much worse, the borrow checker, I still resort to rearranging symbols in the editor until those errors go away.
@pajeetsingh
@pajeetsingh 3 жыл бұрын
He did not read the first chapter of POSIX Pthread programming book properly which said the exact same thing.
@cadekachelmeier7251
@cadekachelmeier7251 3 жыл бұрын
I was surprised seeing someone talk about javascript without shitting all over it. Then I looked at the comments.
@dakoderii4221
@dakoderii4221 3 жыл бұрын
I love JavaScript and I hate JavaScript.
@newvocabulary
@newvocabulary 3 жыл бұрын
Since async/await, it's been a pleasure to write JS.
@MladenMijatov
@MladenMijatov 3 жыл бұрын
@@dakoderii4221 I just hate it and people think am being a fanboy of something else or whatever. When in fact am talking from 10+ years of writing the damn thing and having nothing but issues. I don't remember ever being happy that I had to write JS code. It always ends up being hacky and working around something.
@oliverb7897
@oliverb7897 3 жыл бұрын
JavaScript bad, please like and subscribe
@Pekkhum
@Pekkhum 3 жыл бұрын
Well, those who are most likely to want to talk about node.js are more likely to be those that enjoy working in Javascript. Those who do not enjoy Javascript will likely avoid node.js, with so many other event driven frameworks available in so many languages.
@jamisonr
@jamisonr 3 жыл бұрын
What he says @2:40 is exactly what led me to being a "software engineer." That is, paraphrasing, that "the computer did what you told it to do" and you could see it happen immediately. For me, it was a C64 in approximately 1987/88, and the program was just changing background colors...and I thought "what if I change this value to something else?" and it worked. And I was hooked. And 30+ years later I still love it and make a nice living from it.
@marianoamar3867
@marianoamar3867 3 жыл бұрын
Who doesn't feel that way? Been coding for over 2 decades myself (I started on MS Basic and C back in MS/DOS), and I still get moments of wonder when I look at things like AAA games, where my brain just goes "And that's all just binary math inside a handful of transistors that somehow gets translated over and over until you see a person jumping and fighting"
@tunyaa
@tunyaa 2 жыл бұрын
@@marianoamar3867 The abstraction level is almost a daily thought for me as well. Unbelievable.
@Andrew90046zero
@Andrew90046zero 3 жыл бұрын
"technology that happily dies out, flash!" and I took that personally.
@rockets4kids
@rockets4kids 3 жыл бұрын
What the web stack has become is *far* worse than Flash ever was. It needs to be thrown away and replaced with something sensible.
@Andrew90046zero
@Andrew90046zero 3 жыл бұрын
@@rockets4kids kinda true imo. Although it's easy for me to say that because I don't use HTML CSS and Javascript on a daily basis. People who do though, might be more inclined to disagree simply because it's their job, or they don't want to relearn so many things. But in the end, it would mean that the web gets a MEGA PERFORMANCE BOOST. and a lot of things just become faster and might even allow for new types of web businesses based around this boost. 🤷‍♂️
@JohnWalz97
@JohnWalz97 3 жыл бұрын
@@rockets4kids what makes you say that?
@rockets4kids
@rockets4kids 3 жыл бұрын
@@JohnWalz97 It is a hodgepodge of bastardized technologies that requires an absurd amount of resources to be even usable. Worse still, it has become basically the *opposite* of what it was designed to be.
@rubenpartono
@rubenpartono 2 жыл бұрын
@@rockets4kids What was it designed to be?
@EricMeyerweb
@EricMeyerweb 3 жыл бұрын
Just found this, and it was really nice to see and hear someone of David’s accomplishments and background give HTML+CSS+JS some respect in a Computerphile video. Much appreciated!
@betatester03
@betatester03 2 жыл бұрын
Wow, this video seriously connected some important dots for me. I will religiously watch this if it becomes a series.
@AvindraGoolcharan
@AvindraGoolcharan 3 жыл бұрын
Thanks for starting the conversation, computerphile. Looking forward to more focused videos on JS.
@Furiends
@Furiends 3 жыл бұрын
What he's talking about is called Chromium Embedded Framework which has a pretty crazy history that starts with a Linux desktop environment called KDE which made a highly modular web standards library called KHTML that would eventually become Safari Webkit and that inherent modularity made it an optimal choice for Chrome. There's a lot of other trends and features under pinning all this to like that web standards and open source go together like bread and butter. So eventually an open source web engine had to win out. itself forms the basis of Opera and Edge web browsers and is up one layer of abstraction from web rendering engine to entire browser framework (similar to Mozilla).
@lukaspinoti107
@lukaspinoti107 3 жыл бұрын
I am using KDE right now lol
@spiderwings1421
@spiderwings1421 3 жыл бұрын
@@lukaspinoti107 saaame
@davidnotonstinnett
@davidnotonstinnett 3 жыл бұрын
The entire world of tech is built on open source
@MoosesValley
@MoosesValley 3 жыл бұрын
David is such a gently spoken and humble guy. Thank you for the very interesting video !
@imalwaysright1408
@imalwaysright1408 2 жыл бұрын
I love this channel! Even for a complete beginner this was engaging and educational. MORE MORE MORE!
@JWacker667
@JWacker667 3 жыл бұрын
Great Video! One more important thing about Web technologies on the desktop is that it runs on pretty much any client from the same codebase and it's very easy to deploy updates.
@gaafts
@gaafts 3 жыл бұрын
You've allowed me to appreciate Javascript, never heard it talked about this way. Not familiar with web technologies yet, but it never occured to me that half of everything we use are just glorified web browsers. There's a twisted beauty in the uniformity.
@diablo.the.cheater
@diablo.the.cheater 3 жыл бұрын
That is because html5 + cc3 are just perfect for GUIs, they are quick to use and easy to create stunning very personalized GUIs
@dragonbone81
@dragonbone81 3 жыл бұрын
This video was all over the place hahaha. Was pretty interesting to watch as a developer but I can imagine it made no sense for people that don’t know much. Was just rambling about node lol
@Fishysua
@Fishysua 3 жыл бұрын
+
@TheSliderW
@TheSliderW 3 жыл бұрын
No. Was expressing his amazement about the way a simple web based scripting languages can now be used to easily build useful online and offline apps.
@EldunMcLayan
@EldunMcLayan 3 жыл бұрын
I‘m not sure what you mean with 'all over the place' but KZfaq‘s personalization algorithms create really effective bubbles around you. If you never searched for any programming or other tech stuff you wouldn’t see this video anywhere.
@SKyrim190
@SKyrim190 3 жыл бұрын
As someone who knows something about programs and codes that run on your own computer, but knows very little about the internet I can confirm I understand very little. What I got from it is "Google made fast way of running code written in Java in their browser. People took it and started coding programs that treat themselves as 'in browser' even though they were only on your PC and not connecting to any server." I hope it is somewhat close to what he said. No idea why what they did would be so fast and better than coding a normal executable file though...
@GrouchierThanThou
@GrouchierThanThou 3 жыл бұрын
@@SKyrim190 Thanks. Although you seem to have sort of gotten the overall gist of it, the amount of inaccuracies in your summary still pretty much confirms that OP is not wrong.
@anonmousse
@anonmousse 3 жыл бұрын
I was waiting for this coverage for a while now
@kentw.england2305
@kentw.england2305 3 жыл бұрын
So, node.js is an important part of dragging the internet bloat into my desktop?
@wk02
@wk02 3 жыл бұрын
Internet isn't necessarily bloated, but the reason why desktop apps consume so much RAM is because they are made using the Electron framework that uses v8 + chromium shebang to run scripts in JIT mode (like node.js). Instead of just running native code directly and not using JS :)
@zyansheep
@zyansheep 3 жыл бұрын
@@wk02 Yee, the _internet_ isn't bloated, it's just the interpreted languages created on top of it (javascript, html, css) Edit: i hav sqruare brain
@danielegvi
@danielegvi 3 жыл бұрын
@@zyansheep "dated languages" ah, yes, compared to the languages in which native apps are created, like C, from 1972.
@22RH544
@22RH544 3 жыл бұрын
I personally find Electron apps the single most atrocious things ever created in the digital landscape. The amount of bloat is absolutely abnormal (looking at you Microsoft Teams).
@adamjijo
@adamjijo 3 жыл бұрын
@@22RH544 if it runs fine on most systems and reduces the effort of writing and maintaining code it's not all that bad though right? I mean even I hate the fact that everything is so bloated now but also like, not everything needs to be all that efficient.
@borntolose_livetowin
@borntolose_livetowin 3 жыл бұрын
peaking my head outside my domain-specific language world, finally I understand why JavaScript is the most used programming language since a couple of years...
@_Dingu
@_Dingu 3 жыл бұрын
Ease of development/deployment with a huge increase in the number of software developers will do that.
@IIARROWS
@IIARROWS 3 жыл бұрын
@@_Dingu And don't forget marketing... that is the main drive as everything in our age.
@adamjijo
@adamjijo 3 жыл бұрын
@@IIARROWS obviously but marketing is fair game when you can make the claim that this language is all you need to know to make applications for 99% of devices.
@sacredgeometry
@sacredgeometry 3 жыл бұрын
@@adamjijo It depends what sort of apps you are writing because you couldn't write some types of apps on any platform with just trad js no matter how hard you tried.
@mik13ST
@mik13ST 3 жыл бұрын
It opened backend to a lot of frontend develoers, but that comes at a cost of having often hundreds of libraries for the same purpose. The stylelint package has 500 (0.5k) packages it depends on. What a great idea.
@rolfs2165
@rolfs2165 3 жыл бұрын
And in many cases those dependencies aren't needed at all if you just take a minute to think about what you're doing. I've seen fellow students include Apache Commons in Java projects - for something like isNullOrEmpty(String).
@dealloc
@dealloc 3 жыл бұрын
I don't see how being a frontend developer is correlated with the number of libraries. C, Ruby and many other general purpose languages has ecosystems with thousands of libraries that do the same thing. Doesn't make it bad. The reason why it's seen as a problem in Node.js is because it's popular. It's easy for anyone to get started and use. The ecosystem grows as more people join. I see this as progress and innovation, even though you may disagree that something like left-pad is an innovation.
@doombuddha
@doombuddha 3 жыл бұрын
I've been using Node for a while and every now and then I think back to PHP-GTK, which tried to accomplish the same thing about 16 years ago
@KutAnimus
@KutAnimus 3 жыл бұрын
It's very fitting that the restaurant and fries analogy was used, because if you eat fries too much you will get bloated.
@randomuser5237
@randomuser5237 3 жыл бұрын
I don't think you understand either the analogy or javascript or restaurants.
@pancakerizer
@pancakerizer 3 жыл бұрын
Small correction: Brailsford didn't say HTML is a *Turing complete* programming language, just that it is a programming language
@4.0.4
@4.0.4 3 жыл бұрын
I saw someone implement turing completeness with checkboxes and CSS. It was slow as molasses.
@NoNameAtAll2
@NoNameAtAll2 3 жыл бұрын
If it's not turing complete, it's not programming
@deoxal7947
@deoxal7947 3 жыл бұрын
@@NoNameAtAll2 Brainfuck is turing complete but I wouldn't call it a language. Brailsford's argument was very informal, that HTML is a language and it makes computers do stuff. Why make it more complicated than that? Brailsford is well versed in the theory of computability so it's not like he's naive.
@cookiedragon234
@cookiedragon234 3 жыл бұрын
@Kotetsu Chan HTML existed for 5 years before JavaScript, and 20 years before react - what do you think they were using it with?
@cookiedragon234
@cookiedragon234 3 жыл бұрын
@Kotetsu Chan who cares about react? It is not relevant to the conversation.
@mrbrianparker
@mrbrianparker 3 жыл бұрын
Well, I enjoyed it and now I'm mucking about with node.js and looking forward to some more videos.
@christianhorauf9958
@christianhorauf9958 3 жыл бұрын
Please bring more about node. It's my favorite plattform and really allows you to do astonishing stuff
@miguelangelromerogutierrez9626
@miguelangelromerogutierrez9626 3 жыл бұрын
Fascinating explanation! Love this channel since now! Hope to find more history of computer science :)
@juzujuzu4555
@juzujuzu4555 3 жыл бұрын
It's hard to imagine worse things than Chromium browser and Javascript based desktop software. Especially on software and components that are used by millions of people. The total amount of wasted resources is kind of insane.
@DeusGladiorum
@DeusGladiorum 3 жыл бұрын
I get where you’re coming from, and there are many chromium desktop apps that do perform like garbage, but your sentiment also shares some parallels with Assembly programmers during the introduction of higher-level languages. Wasted performance can certainly be a worthy trade off for quicker development and maintenance, IMO, but I’m also pretty biased given I don’t actually create desktop apps in the first place haha
@Panakotta000
@Panakotta000 3 жыл бұрын
I think chromium is actually pretty nice... bringing some kind of open standard to the web-front world... not that browser-war stuff... but I'm fully in with you and the JS based desktop software xD
@xybersurfer
@xybersurfer 3 жыл бұрын
@@DeusGladiorum JavaScript isn't higher-level than existing desktop languages though
@AkshayAradhya
@AkshayAradhya 3 жыл бұрын
@@00O3O1B Chromium is open source. If you don't like the standards you can propose a new one.
@cubbybear5326
@cubbybear5326 3 жыл бұрын
You guys should also talk about web assembly. It’s pretty interesting. Basically it allows code like C or Java to work in the browser.
@milkyway9225
@milkyway9225 3 жыл бұрын
Please, explain more. They probably have no clue what web assembly is :DD
@carlosmspk
@carlosmspk 3 жыл бұрын
Why DOESN'T C or Java work in the browser?
@109Rage
@109Rage 3 жыл бұрын
​@@carlosmspk Browsers need to have some measure of security, because you're basically running code someone else wrote. As such, Javascript has been the default way to write web applications since forever, and it interacts with the world through a set of controlled APIs that need to be secure. It's possible to "compile" (or rather, "transpile") C and Java into Javascript, effectively translating what should be C code into its equivalent in Javascript, but the result isn't always the best, and may be slow. One solution to this that was used in the past for running things like Flash were things like plugins, which operated in a container but you couldn't send people your own plugins without them installing them, because these plugins had to be in native machine code, which was a huge security risk, so only Flash really used this system. So, you had people who wanted to write in C or whatever other programming language they were already used, but translating that code to Javascript resulted in slow code. Plus, you couldn't just send raw machine code to people, due to security concerns. So, Web Assembly was created. What WASM is, is basically a type of "machine code", for a virtual machine. Basically like Java. It's still binary 1s and 0s, but if you gave it to a CPU, it wouldn't know what to do with it. But WASM is designed so that when a browser reads it, it's easy for the browser to then turn that code into safe machine code, that it can execute FAST (or at least faster than you'd normally be able to in plain Javascript)... Now you can write an app in C, compile it to WASM, and run it in the browser... Or at least that's the dream. There's still a bunch of features missing from WASM, and some interfacing kinks to work out, so its not in perfect condition, but it's thought by some that WASM will eventually replace Javascript on the web... I won't hold my breath tho.
@jarosawgudz5108
@jarosawgudz5108 2 жыл бұрын
Java isn't really popular for WebAssembly development. It's mostly Rust and C/C++ because they're supported "out of the box". There's also some Go and Blazor (C# front-end framework) development going on. There's also a new language that's almost identical (mainly different types) to TypeScript called AssemblyScript and it's gaining popularity.
@theshermantanker7043
@theshermantanker7043 2 жыл бұрын
Java isn't that's suited for Web development, it's more for stuff to run directly on a PC or for servers and enterprise stuff
@dream_emulator
@dream_emulator 2 жыл бұрын
Cool to see someone explain the tools we use daily with proper passion 👏
@martijnheeroma5492
@martijnheeroma5492 2 жыл бұрын
fell in love with Node, done things I could never done before, nice video, looking forward to more of this
@Taurdil
@Taurdil 3 жыл бұрын
5:32 definitely change the landscape for me. Had to buy an extra 16Gb of RAM. Can we talk about how inefficient our programs are?
@duser
@duser 3 жыл бұрын
Aa they say, unused ram is wasted ram
@alexxx4434
@alexxx4434 3 жыл бұрын
Well something has to push the sales of RAM, right? See, it's working!
@i1a2159
@i1a2159 3 жыл бұрын
16 Gigabits or 16 Gigabytes? Because 8 Gigabytes of RAM is still enough to run Windows 10 and a whole host of applications
@MladenMijatov
@MladenMijatov 3 жыл бұрын
@@i1a2159 Whole host of applications not written in JS+Electron presumably. Otherwise it would be 4.
@jort93z
@jort93z 3 жыл бұрын
​@@i1a2159 Gigabytes of course. Ram is always measured in gigabyte as far as I know. Also gigabit would be Gbit, GB and Gb both mean gigabyte.
@burgy_
@burgy_ 3 жыл бұрын
Electron is memory hungry out of the box, but I have hope for it's future with people like Discord working to optimize memory usage etc. Discord is the gold standard for a React/Electron and React Native app for me. Here's to hoping PWA gets better support on iOS & Desktop soon to replace smaller Electron apps that don't need to be in the framework.
@goldfish8196
@goldfish8196 3 жыл бұрын
I love this episode. Watched several times.
@headlights-go-up
@headlights-go-up 3 жыл бұрын
David's passion and excitement is infectious.
@EvanRustMakes
@EvanRustMakes 3 жыл бұрын
How convenient because I'm building a system with Node right now. Thanks!
@luisbanegassaybe6685
@luisbanegassaybe6685 3 жыл бұрын
javascript: started from the bottom now we’re here
@dandan7884
@dandan7884 3 жыл бұрын
a veeeery rocky beginning (when jquery was almost mandatory for standarization)
@stachowi
@stachowi 3 жыл бұрын
This video is fantastic... really enjoy the web app content as a web developer myself.
@TheGiantBeanshow
@TheGiantBeanshow 2 жыл бұрын
Would love to see a series on this!! Wonderful stuff
@philipmrch8326
@philipmrch8326 3 жыл бұрын
Well, in C# we use async and await a lot. It's very common these days, so saying that it's all synchronous and blocking is not true...
@sacredgeometry
@sacredgeometry 3 жыл бұрын
Did he say C# was synchronous? What?
@thealliedhacker
@thealliedhacker 3 жыл бұрын
@@sacredgeometry He did say that about .NET, incorrectly
@Daktyl198
@Daktyl198 3 жыл бұрын
C#/dotnet is still a synchronous language by default. You have to actively program it in an async/multithreaded way. Javascript instead is generally event driven, and many things are forced async like database calls with JavaScript promises. I still will always choose C# 10/10 times though.
@Elite7555
@Elite7555 3 жыл бұрын
@@Daktyl198 Nothing in JavaScript stops you from writing purely syncrhonous code.
@gajbooks
@gajbooks 3 жыл бұрын
@@Daktyl198 JavaScript is also single threaded, and used to use callbacks as a necessity, like how puny microcontrollers and operating systems still operate using interrupts. Async has been added relatively recently, but barely any longer ago than C# got theirs.
@sillyraccoon2895
@sillyraccoon2895 2 жыл бұрын
Thank You, Salvator Mundi of Computer Science!!.
@kelvinrawson1729
@kelvinrawson1729 3 жыл бұрын
A very exciting episode of computerophile, if you might call it that ;)
@insideTheMirror_
@insideTheMirror_ 3 жыл бұрын
Wow, I learnt so much out of this video. Thanks!
@x0r1k
@x0r1k 3 жыл бұрын
Electron is cool, but so slow and 2-3 apps eats all your RAM and drain your battery.
@scose
@scose 3 жыл бұрын
true except for the "cool, but" part
@Soremwar
@Soremwar 3 жыл бұрын
I wished Electron never existed, it gives JavaScript performance a bad fame
@kuroexmachina
@kuroexmachina 3 жыл бұрын
that's because each electron app is technically a full chrome browser
@allie-ontheweb
@allie-ontheweb 3 жыл бұрын
Also I'm like 95% sure Atom & Electron are completely unrelated applications
@dealloc
@dealloc 3 жыл бұрын
@@allie-ontheweb Electron is a framework, used by and originally written to power Atom, so they are not unrelated.
@rjc4370
@rjc4370 3 жыл бұрын
Having every web browser implement Emca Script made JS truly portable. The web browser is the hero.
@bborkzilla
@bborkzilla 3 жыл бұрын
As a long-term C++ developer, all this HTML5, Javascript, AJAX and all is new to me!
@nixdskilly4786
@nixdskilly4786 3 жыл бұрын
I have been using Node.JS for a while but never really looked into the history and impact it has had, this video really took me for a ride and makes me feel excited for what is currently happening in the field of web technologies.
@wk02
@wk02 3 жыл бұрын
5:51 Javascript is blocking but task-based. Your blocking code needs to end for other tasks to run. I think that's an important distinction to make :)
@danielegvi
@danielegvi 3 жыл бұрын
Technically all code is blocking, just that some code blocks more than others. For what it's worth, there are C (libc) functions that are labelled as "non-blocking" or "returning immediately", even though again, all code blocks.
@jp46614
@jp46614 3 жыл бұрын
it uses libuv under the hood which has a thread pool, instructions especially async will be thrown into that thread pool and wait for an output while doing everything else
@ClaudioBrogliato
@ClaudioBrogliato 3 жыл бұрын
Exactly. If the waiter is required to do 1000 pushups nobody is going to be served until he's finished.
@MladenMijatov
@MladenMijatov 3 жыл бұрын
Pshht. Let's not break their fantasy world. Single threaded non-blocking you just have to wait for next execution.
@codahighland
@codahighland 3 жыл бұрын
JS isn't even non-blocking unless you go out of your way to use asynchronous programming techniques. If you're trying to do actual computation instead of I/O... Well, to extend the metaphor, the chef might be too busy to take a new order from the waiter.
@DeusGladiorum
@DeusGladiorum 3 жыл бұрын
Today I learned that Computerphile comments also have flame wars
@Alfenium
@Alfenium 3 жыл бұрын
Sorry, that's my fault.
@ephektz
@ephektz 3 жыл бұрын
It’s mostly a bunch of elitist nerds gatekeeping their precious domain and paradigm. I’m seeing a lot of disinformation in the comments. I thought developers were meant to be intelligent and knowledgeable.
@jenaf372
@jenaf372 3 жыл бұрын
This is not a war. This is just a deserved burning of an abomination. As if JS had any chance XD
@DeusGladiorum
@DeusGladiorum 3 жыл бұрын
@@ephektz Seriously. You can argue the performance costs of a JIT-compilation-based language and there’s certainly issues that need to be resolved, but this attitude sounds just like stories of Assembly programmers scoffing at the introduction of human-readable, high-level languages. There are clear advantages outside of performance.
@9a3eedi
@9a3eedi 3 жыл бұрын
@@DeusGladiorum there are advantages to the developer sure But the user suffers
@stinkycrinkler
@stinkycrinkler 3 жыл бұрын
This is really amazing content, thank you computerphile for all that you do! Would love to see some more node and javascript related content! Much love from a big fan - Thank you.
@barbellbilly
@barbellbilly 3 жыл бұрын
Very nicely explained!
@Nors2Ka
@Nors2Ka 3 жыл бұрын
Computerphile should invite Johnathan Blow to talk about modern computing. That would be a sight to behold.
@tomasnemec5680
@tomasnemec5680 3 жыл бұрын
Sorry but stating that Javascript is non-blocking unlike the other languages (.NET, Java, etc.) is simply misleading. All of these in fact have non blocking operations as well as syntax allowing writing elegant code (async/await in .NET anyone?)
@DavidHembrow
@DavidHembrow 3 жыл бұрын
And it goes back much further than that. e.g. the 1993 NT beta version already strongly encouraged use of asynchronous IO in C / C++ and that remains the case.
@KangJangkrik
@KangJangkrik 3 жыл бұрын
More like event-driven rather than non-blocking. Remember, there is nothing called "async" and "await" back then, nor "Promise".
@marianoamar3867
@marianoamar3867 3 жыл бұрын
I was going to say something similar. What JS pioneered was basically getting multithreaded and non-blocking code to the Web Browser. But in Desktop and Server this has existed since computers were powerful enough to actually handle two processes at once
@taragnor
@taragnor 3 жыл бұрын
@@marianoamar3867 JS isn't multithreaded. JS essentially does what many languages traditionally used multiple threads for on one thread using its message loop. In fact, one of the big JS bottlenecks is that it can only use one core (at least unless you use webworkers, but that takes a lot more extra code since they can't share memory).
@marianoamar3867
@marianoamar3867 3 жыл бұрын
@@taragnor I know it wasn't multithreaded (specially with the loop). What I meant is that all these things JS pioneered on, they were all for browser based code (including multithreaded jobs now, because it does have those now). JS didn't really create anything new for programming languages, it just brought them to the borwser. And don't take that "just" as me being condescending or anything. I find what JS did for client side browser code to be amazing. I just take umbrage in suddenly everybody wanting to port JS to server, then to command line, etc; when there are definitely better ways to do those with other languages and tools.
@re.liable
@re.liable 3 жыл бұрын
I'm just starting to learn JS/TS and React, and this totally blew my mind (esp. the fact that VSCode was essentially built with JS lol). It also helped me cement some concepts I'm not totally in the clear about, like node.js being the kind of CLI counterpart for JS
@stantoniification
@stantoniification 2 жыл бұрын
Looking forward to more videos in this vein :)
@bondymagnomous3544
@bondymagnomous3544 3 жыл бұрын
Two hours ago I've been randomly studying this subject and now you release a video about it, lol.
@FortoFight
@FortoFight 3 жыл бұрын
Yeah, I've been doing Node stuff all day lol
@Kalukaru
@Kalukaru 3 жыл бұрын
They now Sell JavaScript like they once sold Java. "Platform independent", "Easy to use" and so on.
@wk02
@wk02 3 жыл бұрын
Well, JS is platform independent and easy to use?
@danielegvi
@danielegvi 3 жыл бұрын
"Used by 3 billion devices worldwide"
@alexxx4434
@alexxx4434 3 жыл бұрын
But at what cost?!
@berndborte8214
@berndborte8214 3 жыл бұрын
@@alexxx4434 At the cost of computing power, which is not a limiting factor for most applications nowadays.
@alexxx4434
@alexxx4434 3 жыл бұрын
@@berndborte8214 What if every application starts to eat hundreds of megabytes of memory and CPU resources just to basically do the UI, will then it become an issue? We're heading there.
@AnoopVargheese
@AnoopVargheese 3 жыл бұрын
Is there a reason why captions have been disabled for this video? It's not just that there isn't a pre-written set of captions, but the video doesn't even allow the auto-translated speech-recognition captions to be viewed.
@jpsilver3510
@jpsilver3510 2 жыл бұрын
Best explanation of threads that I've ever heard
@dsantuc
@dsantuc 2 жыл бұрын
What I think he meant to illustrate with his restaurant analogy was asynchronous processing, as opposed to threads, since JavaScript is single-threaded. A threaded model of his analogy would be hiring a new waiter or waitress for every customer that comes into the restaurant.
@Glutnix
@Glutnix 3 жыл бұрын
The web browser really has become the standard way to abstract away as many hardware, firmware and operating system concerns as you can. And JavaScript powers all of that ^_^
@fonkbadonk2957
@fonkbadonk2957 3 жыл бұрын
I've been developing with Delphi since ~1999 and never did anything else than event-driven software. This feature is far from new. (Delphi is an IDE that uses a Pascal dialect, and is the direct offspring of Borland Turbo Pascal. And it is very much alive and up to date, contrary to most sentiments I see when these names crop up.)
@marcelbricman
@marcelbricman 2 жыл бұрын
i think your electron/atom memories got the better of you :) actually atom is an editor and the basis for vscode, but electron is a framework that both (and many more apps) are based on.
@rickdev1922
@rickdev1922 2 жыл бұрын
vscode are built on the top Electron framework... it just javascript(typescript), css and html5
@marcelbricman
@marcelbricman 2 жыл бұрын
@@rickdev1922 yes - the vid says sth else
@Uristqwerty
@Uristqwerty 3 жыл бұрын
The funny thing about Flash is that, more and more, open web standards are being replaced by "whatever chromium does", and most of the powerful APIs that got Flash labelled as dangerous have made their way into Javascript itself. What few remain, like filesystem access and low-level network sockets are typically exposed by Electron/node.js, so as soon as someone figures out a redirect attack to get it to load an external script, it's as dangerous as flash ever was, except in the last few years of its life, Flash's filesystem and network access were proxied through the browser, and there isn't the same level of distrust of Electron that Flash had acquired among the general public. Except Flash was designed to perform adequately on a single-core, hundreds-of-megahertz, no-GPU-acceleration old desktop, while the modern web stack has so many layers of abstraction that half the sites out there manage to make a *modern* computer run like it's a decade old!
@tahvohck
@tahvohck 3 жыл бұрын
I dunno that I'd call Flash's performance "adequate" but it does feel like it runs a damn sight leaner than your average JS stack, I'll give it that.
@diablo.the.cheater
@diablo.the.cheater 3 жыл бұрын
you can get filesystem access from a chrome webpage if you design it as a PWA and ask permission from the user, no need for electron, you can even access the binary data of custom stuff you put on usb ports and write "drivers" for them in javascript, again, asking permission. That is more of a concern than electron doing it, because electron doing it is not a problem, electron is for desktop applications and it loads html that is bundled inside itself, it does not get its javascript css and html from the internet, they are bundled in, locally, so this type of security is not a concern for electron, it is not more dangerous for electron to access it that is for a C++ app to do it, the problem with flash doing it was because it was on the web, electron is not on the web, it uses the same technologies as the web but it is not on the web, it is local.
@jfolz
@jfolz 2 жыл бұрын
Oh yeah NPM is so great and famously has no huge glaring flaws whatsoever.
@horrorhotel1999
@horrorhotel1999 3 жыл бұрын
The one thing I have to say about this video: this was by far les concise and coherent than the other computerfile videos I usually watch. While interesting, I strongly got the feeling this wasn't really prepared, and the presenter was mostly rambeling. Still appreciate you putting out content tough
@pacifico4999
@pacifico4999 3 жыл бұрын
The problem with Electron is how much memory it uses
@wk02
@wk02 3 жыл бұрын
Maybe something like "tauri" could be used instead?
@victorcodesseira
@victorcodesseira 3 жыл бұрын
It depends on implementation, really. There are plenty of apps that end up using tons of RAM, but the best example of how it can be lightweight is VSCode. But, like everything else, if it depends on implementation, there will be a lot of bad apples.
@pacifico4999
@pacifico4999 3 жыл бұрын
@@wk02 I don't know what are the alternatives today for desktop apps, it's been quite a while since I've made one. But I don't think a messaging app like Microsoft Teams should consume 600MB of RAM
@danielegvi
@danielegvi 3 жыл бұрын
@@pacifico4999 I still can't understand how the same company can release both VS Code and Teams. One is lightweight, the other one is just garbage.
@jp46614
@jp46614 3 жыл бұрын
@@danielegvi vscode is really fast but it still uses a lot of memory (i opened up a few c++ files and memory rose to 300mb)
@crs12decoder
@crs12decoder 3 жыл бұрын
don't know about php but in java you could simply run an additional thread which is doing all the "non-blocking" stuff you mention there in parallel. But the "non-blocking" stuff that you mention doesn't sound much like multi-threading.. does it?
@rebeccaritter
@rebeccaritter 3 жыл бұрын
You can do things asynchronously in C # for anyone who is interested look up the keywords async and await.
@jakubkooologic9704
@jakubkooologic9704 3 жыл бұрын
No, only Javascript can do that 🤣 🤣 🤣 🤣 🤣
@frcrr
@frcrr 3 жыл бұрын
...and someone would say "Oh, let's put a browser on top of node.js and it'll allow people to have their computers brought to their knees and molten to a puddle of charred plastic by simply running a webchat application or a text editor!"
@SamualN
@SamualN 3 жыл бұрын
what?
@davidgillies620
@davidgillies620 3 жыл бұрын
@@SamualN Yeah, this is sadly typical of people who've convinced themselves that node.js and JavaScript in 1996 are somehow similar. Modern JS, combined with HTML5 and especially when rendered more type-safe by Typescript, is an incredibly robust and performant language. Very large-scale backend systems use it all over the world.
@frcrr
@frcrr 3 жыл бұрын
@@SamualN this thing the guy blabbers about - a "chromium built-in into a desktop application" - turns simple desktop apps like chat or a text editor into ram-eating monstrosities like discord, Skype, vscode or slack. If you need 2gb of ram just for gui of your IDE, there's something wrong with your paradigm.
@MladenMijatov
@MladenMijatov 3 жыл бұрын
@@davidgillies620 It is incredibly performant. Speed at which it eats RAM is hard to describe with words.
@tristunalekzander5608
@tristunalekzander5608 3 жыл бұрын
As a programmer who has started learning react and node.js, I am constantly dreaming of a way that I can do web development but with C# or even C++. Thinking about using Javascript for everything sounds like a nightmare.
@gabormiklay9209
@gabormiklay9209 3 жыл бұрын
Kotlin multiplatform could be interesting then.
@user-ez3ei8cd5o
@user-ez3ei8cd5o 3 жыл бұрын
You should be able to write frontend compiling c# to wasm already.
@thealliedhacker
@thealliedhacker 3 жыл бұрын
I prefer Razor pages without any JS at all, but if you want fancy JS-like interactions, there's Blazor
@durnsidh6483
@durnsidh6483 3 жыл бұрын
Just use wasm. Edit: if your language can be compiled to LLVM, you can compile that to WASM, then run it in anything that runs Javascript with just a bit of surrounding conde to run the WASM.
@thealliedhacker
@thealliedhacker 3 жыл бұрын
@@durnsidh6483 Blazor is a WASM framework...
@spacecowboy3063
@spacecowboy3063 2 жыл бұрын
This subject is a series in itself. There are millions of people like me that are just starting in programming and software and many of us entered through the Web Development door.
@timreichen465
@timreichen465 3 жыл бұрын
Will you cover Deno as well?:)
@pfactum
@pfactum 3 жыл бұрын
Skype… not everyone remembers it being written in Pascal (I guess?) and not requiring tons of RAM and CPU cycles unlike that pile of Electron-ish software nowadays.
@yumeyuki1944
@yumeyuki1944 3 жыл бұрын
And? It's not 90s anymore. CPUs are fast and RAM is cheap. Sure, a software written in C++ would be faster than a Electron based software, but it would take longer to develop it. On top of that, it most likely would work on only one platform. That's why technologies like React Native are getting popular. Developing this way is cheaper, and due to fast CPUs end users won't notice a big difference (in basic apps). However, I don't think JavaScript will replace C++ when it comes to graphics/audio processing any time soon.
@pfactum
@pfactum 3 жыл бұрын
@@yumeyuki1944 consider not only resources consumption, which is disputable despite the fact that CPUs get faster and RAM - cheaper (remember that joke about software getting slower more rapidly than hardware gets faster? not really a joke though), but also other things like attack surface.
@altairbueno5637
@altairbueno5637 3 жыл бұрын
@@yumeyuki1944 really hate web developers. You use the excuse of simplicity and cheap components just to release garbage software that just drains battery. Shame on you
@user-ez3ei8cd5o
@user-ez3ei8cd5o 3 жыл бұрын
@@yumeyuki1944 Consider the environmental damage due to higher energy consumption. JS programmers are killing the planet 🙃
@phantom_stnd
@phantom_stnd 3 жыл бұрын
@@yumeyuki1944 it may be 'cheap' but it isn't free dude
@JSDudeca
@JSDudeca 3 жыл бұрын
Ryan Dhal's latest project is Deno which is also Transcript, JS, V8 based but has taken out so much silliness in Node. Sad to see no mention here :'(
@diablo.the.cheater
@diablo.the.cheater 3 жыл бұрын
Because Deno is irrelevant, nobody wants to use it because it has taken out so much that made Node great.
@JSDudeca
@JSDudeca 3 жыл бұрын
@@diablo.the.cheater Can you provide a couple of examples of what was taken out that is critical to have in the language?
@IrrationalExuberance
@IrrationalExuberance 3 жыл бұрын
Did they ever manage to add multithreading support to async tasks in JavaScript? (Let me reduce the open-endedness of such a question by saying: in engines like v8) I remember there being heated debates back when node.js was the new hotness around single threaded async vs true threads support
@diablo.the.cheater
@diablo.the.cheater 3 жыл бұрын
Yes, they did, they are called web workers, they work in other threads and you communicate between them and the main thread with messages, so thread safety is guaranteed, cuz no shared memory shenanigans.
@SillyMakesVids
@SillyMakesVids 3 жыл бұрын
So I watched all 12-13 minutes of this video, but I still don't know what node.js is...
@danielegvi
@danielegvi 3 жыл бұрын
A runtime environment for JavaScript, ie. a means to run JS on a computer outside of a browser, with access to filesystem, network, etc. Think "using JavaScript like you would use Python".
@SillyMakesVids
@SillyMakesVids 3 жыл бұрын
@@danielegvi Thank you~
@Pyroblaster1
@Pyroblaster1 3 жыл бұрын
Listen at 4:59, node.js is Google V8 wrapped in some code which allows it to run Javascript application on the command line or desktop in general. node.js is to javascript what CPython is to the Python language.
@MladenMijatov
@MladenMijatov 3 жыл бұрын
Consider yourself lucky.
@null-calx
@null-calx 3 жыл бұрын
Node.js is beautiful, welcome..
@xopsxfms
@xopsxfms 3 жыл бұрын
where's the subtitles?
@crypticnomad
@crypticnomad 3 жыл бұрын
I've been toying around with embedding chrome in rust and using deno instead of node. I've not done anything more useful than a small proof of concept but it is a far smaller download than your typical electron equivalent.
@GoTeamScotch
@GoTeamScotch 3 жыл бұрын
Very interesting video. I think I may need to sink my teeth into node.js now. I've been developing for the web for years and have been curious about node.js. I would love to start doing desktop apps, but that C learning curve looks intimidating.
@heddospacenegroe1923
@heddospacenegroe1923 3 жыл бұрын
you can make desktop apps with python
@patricknelson
@patricknelson 3 жыл бұрын
It’s so ubiquitous now (and very much adjacent to what you already do) that it definitely won’t hurt if you were to dive in, regardless of what other stuff you’re eventually interested in learning or doing later on. There’s tons of other stuff out there though, too. It’s just that knowing and being well versed in Node.js (or just JS in general, really) is an extremely useful skill, of many in your toolkit.
@PeterWalkerHP16c
@PeterWalkerHP16c 3 жыл бұрын
AH! The emperor has new clothes again!
@vitalspark6288
@vitalspark6288 3 жыл бұрын
Atom isn't now called Electron. Electron is a toolkit for developing applications using HTML, CSS, and Javascript, which run in a modified version of Chromium. Atom is one such application; it's an IDE. Yes, the Electron toolkit emerged from the early work on Atom, and there's an overlap in the development teams, but Electron and Atom are separate products, and Atom is still called Atom.
@LaggyKar
@LaggyKar 3 жыл бұрын
Indeed. Atom is equivalent to VSCode in this regard
@kushagrano1
@kushagrano1 3 жыл бұрын
I dont't think he was talkig about atom the IDE but acorn atom the computer
@pepkin88
@pepkin88 3 жыл бұрын
Before being renamed to Electron it was called Atom Shell, he wasn't that much off.
@AssemblyWizard
@AssemblyWizard 3 жыл бұрын
10:04 npm doesn't stand for "node package manager", but on npmjs.org in the top-left corner you can see what it *could* stand for.
@diablo.the.cheater
@diablo.the.cheater 3 жыл бұрын
npm promulgates marsupials
@ashikmehermobin9926
@ashikmehermobin9926 2 жыл бұрын
I have tried electron, the moment I ran it, I understood a It's chromium tab. It’s awesome
@nnmartin94
@nnmartin94 3 жыл бұрын
Recommend Go to my fellow JS devs. It's a breath of fresh air in some ways, while still being relatively straightforward to pick up.
@jawad9757
@jawad9757 3 жыл бұрын
Inb4 people start shitting on golang under this comment
@rikschaaf
@rikschaaf 3 жыл бұрын
It would be fun if you started a series on programming languages, like from A-Z. It's been a while since you had something that focused on something related to Java, Scala or Kotlin.
@kleinesfilmroellchen
@kleinesfilmroellchen 3 жыл бұрын
I really look forward to each appearance to the computerphile robot invented for Robert Miles' videos.
@jacekmowinski
@jacekmowinski 3 жыл бұрын
Robert has his own youtube channel btw.
@jms019
@jms019 3 жыл бұрын
Must mention it’s the BBC Micro’s 40th birthday this year. Hopefully this will bring more people to any real event at the Centre for Computing History
@Anvilshock
@Anvilshock 3 жыл бұрын
Uh, it's BBC Micro's birthday _every year._ In fact, it's anyone's or anything's birthday every year that was ever born in some literal or figurative sense.
@jms019
@jms019 3 жыл бұрын
@@Anvilshock Meant to say 40th of course !
@Anvilshock
@Anvilshock 3 жыл бұрын
@@jms019 You do know you can edit comments, yes?
@beziko
@beziko 3 жыл бұрын
Didn't async/await come to JS *from* the .NET/C# ecosystem?
@trinidad17
@trinidad17 3 жыл бұрын
Yes they existed in C# before JS (.NET 4.5 in 2012 vs ECMAScript 2017), but Futures were proposed in 1977, and there were libraries implementing them way before C# had an async keyword or even node.js existed. Java 5 had FutureTask in 2005, for example. And goes without mention that even based programing has existed way before that.
@beziko
@beziko 3 жыл бұрын
@@trinidad17 Does Java 5 perform actual async or spawns a separate thread and if you want to (a)wait you'll block it?
@MartinOmander
@MartinOmander 2 жыл бұрын
That may be (I haven't used in C# recently) but before async/await Javascript let you do async programming with callbacks. I believe that goes all the way back to the late 1990s.
@igorthelight
@igorthelight 3 жыл бұрын
About queuing in JS: it's not like any other language have ability to spawn a new Thread so you wouldn't have to wait until previous command will finish it's job ;-)
@iivarimokelainen
@iivarimokelainen 3 жыл бұрын
event loop isn't same as multithreading. more akin to async/await in c#
@Soremwar
@Soremwar 3 жыл бұрын
Async !== parallel
@kuroexmachina
@kuroexmachina 3 жыл бұрын
concurrency and multithreading are different concepts
@marianoamar3867
@marianoamar3867 3 жыл бұрын
Which most other modern languages also have. Both concurrentcy, multithreading, AND non-blocking IO/Processes
@s.aravindh6227
@s.aravindh6227 3 жыл бұрын
Nice bro 👍👍
@Furiends
@Furiends 3 жыл бұрын
I think the gist here is that web technologies have been generalized into many applications. In my opinion this has really been true a long time but its evolved over time. In the mid 2000s it was standards that were pervasive. Everything from RSS feeds, XMPP messaging (which power most communications technology for a while) to COLLADA for 3d assets. However now its software libraries and platforms. That is instead of strictly information sharing in a technical setting its a product thats shared. This changes things a bit since the companies that produce these have various motivations for doing so. Broadly though you could call this the age of "apps" that is software that is product or brand focused rather than task or protocol focused. It's about user followings and walled gardens of data.
@Coppertiel
@Coppertiel 3 жыл бұрын
Electron is named "Electron" even though it's really heavy.
@GGWP-nx3kn
@GGWP-nx3kn 3 жыл бұрын
False advertising.
@phantom_stnd
@phantom_stnd 3 жыл бұрын
Should be renamed to neutronium :)
@sakon4466
@sakon4466 3 жыл бұрын
trying to change quantum physics 🤣🤣
@pyroghost11
@pyroghost11 3 жыл бұрын
6:27 the best explanation of asynchronicity I have ever heard!!!!
@jeromesnail
@jeromesnail 3 жыл бұрын
Node is awesome. I just love it so much. People can hate how they want I still love it.
@GregoryBates
@GregoryBates 3 жыл бұрын
The problem that I run into is that enterprise architects at big companies wrote their last line of code in the mid to late 2000’s and haven’t updated their understanding of UI engineering since then. JavaScript, HTML, and CSS aren’t seen as disciplines, but just “web stuff” that anyone can do.
@AkshayAradhya
@AkshayAradhya 3 жыл бұрын
Just boomers with a boomer mentality
@JamesSmith-cm7sg
@JamesSmith-cm7sg 3 жыл бұрын
But isn't nodejs terrible for cpu intensive tasks? It's also vulnerable to attacks as if you can block the worker threads the app goes down.
@danielegvi
@danielegvi 3 жыл бұрын
CPU intensive tasks are definitely best left to write in a different language that compiles to something more efficient. But a nice strength of JS is how well it integrates with native modules and webassembly, so you can have the best of both worlds. Also, the app goes down when you block the main thread, not the worker threads, that's just how computers work though.
@jp46614
@jp46614 3 жыл бұрын
I have a production app in node.js and we use clusters to spread the load between all cores which works quite well with CPU intensive tasks.
@chrismanning5232
@chrismanning5232 3 жыл бұрын
@@jp46614 Was going to mention this. We run very CPU intensive tasks across manual node clusters (not autoclustering like PM2, Forever, etc.), and it really just comes down to designing it properly. Node does a lot more than people give it credit for, if used properly.
@jp46614
@jp46614 3 жыл бұрын
@@chrismanning5232 yeah we do that too. it all comes down to the design and how well you implement it.
@JamesSmith-cm7sg
@JamesSmith-cm7sg 3 жыл бұрын
@@danielegvi What does the main event loop do if all workers are busy? As I understand it you specify the number of workers upfront.
@SergeMatveenko
@SergeMatveenko 3 жыл бұрын
BTW, the most popular plugin for VS Code is the one providing support for Python:)
@gabormiklay9209
@gabormiklay9209 3 жыл бұрын
06:30 Funny thing. At first AJAX wasn't async (AsyncJAX). Then it become mandatory, so a little extra thinking needed to get the data from the server and work with it when "arrived". After a while it was easy.
@abuk95
@abuk95 3 жыл бұрын
Why subtitles are not available from day 1 for the videos?
@Computerphile
@Computerphile 3 жыл бұрын
It's an issue with KZfaq, we have an open ticket with support since last year - extremely sorry and I'll try to publish them manually soon -Sean
@abuk95
@abuk95 3 жыл бұрын
@@Computerphile Aha, so much for Google's extensibility. Thanks for reply and for your work. :)
@iminni3459
@iminni3459 3 жыл бұрын
And now we have Deno!
@gloverelaxis
@gloverelaxis 3 жыл бұрын
Deno really is so much better than Node in almost every way. I really hope it gets more packages created for it.
@yt-sh
@yt-sh 3 жыл бұрын
I like your profile pic lol
@corster8221
@corster8221 3 жыл бұрын
I needed this, I learned html css php and MySQL over winter break, but I didn’t understand how everything else factored/worked in
@excitedbox5705
@excitedbox5705 3 жыл бұрын
No you only need JS. stay away from node. Don't get yourself tricked into this mess of compiling CSS and HTML. Look at TailwindCSS which even though it is "compiled" it is not translated from 1 dialect to another. For php you should get into Symfony and twig. If you do need JS frameworks I wouldn't go past JQuery. Everything beyond Jquery was just trying to be fancy and turned web development into a nightmare. I have been doing this for 19 years now and I am close to changing professions because of what has happened to the industry these last 5 years. All these frameworks caused Adobe and others to give up Professional Visual editors like Dreamweaver because you couldn't support the frameworks in any reasonable manner and now we have to do Template alignments in code and tons of refreshes. In addition to working in DOS prompts with a new language/set of commands every month.
@corster8221
@corster8221 3 жыл бұрын
@@excitedbox5705 What’s wrong with css and html? And to be clear, I only know html css php and MySQL, I haven’t touched js yet, I still have yet to understand what a framework is, or even means... I also know C++, VisualBasic, and Java, but only in an IDE in school I will come back to this comment when I actually get a grasp of what you said, but rn calculus is taking up most of my time
@gibbyhart3203
@gibbyhart3203 2 жыл бұрын
as a full stack dev i was trained on java and angular. Then i got introduced to node.js and I cannot go back. I need one IDE and and can out perform any java backend in half the time.
@sjzara
@sjzara 2 жыл бұрын
You can’t outperform any Java backend. Huge high-performance systems are written in Java (and other JVM compiled languages such as Scala) - Kafka is an example. There are backends which use high-performance databases which are written in Java. The belief that the neat new language you have just learned is the best thing ever is extremely common, as enthusiasm can lead to huge productivity, but the structural and performance limits of a language can’t be wished away.
@minecrafthowtodude
@minecrafthowtodude 2 жыл бұрын
7:20 but how is this done on a single core? This just seems like multithreading but I thought that was impossible in JS
Types of PDF - Computerphile
13:57
Computerphile
Рет қаралды 129 М.
Why Files Become Bigger in Emails - Computerphile
18:17
Computerphile
Рет қаралды 65 М.
狼来了的故事你们听过吗?#天使 #小丑 #超人不会飞
00:42
超人不会飞
Рет қаралды 65 МЛН
Make me the happiest man on earth... 🎁🥹
00:34
A4
Рет қаралды 8 МЛН
Who’s more flexible:💖 or 💚? @milanaroller
00:14
Diana Belitskay
Рет қаралды 18 МЛН
Final increíble 😱
00:39
Juan De Dios Pantoja 2
Рет қаралды 37 МЛН
PROOF JavaScript is a Multi-Threaded language
8:21
Beyond Fireship
Рет қаралды 261 М.
Laziness in Python - Computerphile
14:21
Computerphile
Рет қаралды 362 М.
Async Rust Is A Bad Language | Prime Reacts
28:46
ThePrimeTime
Рет қаралды 85 М.
Google Engineer on His Sentient AI Claim
10:34
Bloomberg Technology
Рет қаралды 3,6 МЛН
Node.js is a serious thing now… (2023)
8:18
Code With Ryan
Рет қаралды 626 М.
Making Minecraft from scratch in 48 hours (NO GAME ENGINE)
16:38
Just In Time (JIT) Compilers - Computerphile
10:41
Computerphile
Рет қаралды 259 М.
Ryan Dahl: Original Node.js presentation
48:32
stri8ted
Рет қаралды 226 М.
I asked an AI for video ideas, and they were actually good
8:15
Tom Scott
Рет қаралды 2,7 МЛН
狼来了的故事你们听过吗?#天使 #小丑 #超人不会飞
00:42
超人不会飞
Рет қаралды 65 МЛН