Node.js: JavaScript on the Server

  Рет қаралды 133,706

Google TechTalks

Google TechTalks

14 жыл бұрын

Google Tech Talk
July 28, 2010
ABSTRACT
Presented by Ryan Dahl, the creator of the node.JS open source project.
It is well known that event loops rather than threads are required for high-performance servers. Javascript is a language unencumbered of threads and designed specifically to be used with synchronous evented I/O, making it an attractive means of programming server software.
Node.js ties together the V8 Javascript compiler with an event loop, a thread pool for making blocking system calls, and a carefully designed HTTP parser to provide a browser-like interface to creating fast server-side software. This talk will explain Node's design and how to get started with it.

Пікірлер: 71
@supermegacobra
@supermegacobra 14 жыл бұрын
Awesome presentation about an awesome piece of software. Ryan is real presenter, true to himself who cares about the content of the message, not the medium. He brings deep knowledge of Javascript, Unix and networks. His presentation can be summarized as 'no fluff, just stuff' about super efficiency a server-side scripting language. Keep it up Ryan.
@saulmtzv
@saulmtzv 8 жыл бұрын
If you are too worried about the "ummhh ... ahhh" then go directly to StackOverflow and ask how to get your job done. This talk if for the ones interested in how does nodejs works internally and have enough knowledge about IO, networking and other stuff to appreciate how awesome this guys is.
@kemchobhenchod
@kemchobhenchod 7 жыл бұрын
This guy is too smart. Each word is so carefully chosen.
@mmichelli
@mmichelli 14 жыл бұрын
Ryan is a clear and convincing speaker. Really impressed.
@jayanthmanklu8642
@jayanthmanklu8642 8 жыл бұрын
This video is from 2010, why it feels like it is from the '70s...
@Niekpas1
@Niekpas1 7 жыл бұрын
4:3 will do that to ya
@Munirs1998
@Munirs1998 12 жыл бұрын
Wonderful insight into one of my fav technologies. What a great mind RD has!, loved it
@haciendadad
@haciendadad 11 жыл бұрын
Watch the video for it's content, this is not a Toastmasters video, so just skip over any of his "uums", he has something worth sharing, so be grateful that he is sharing his thoughts. Thanks Ryan!
@InformBureau
@InformBureau 13 жыл бұрын
Let's be clear - this is an awesome technology and Ryan deserves highest credit for developing it. The other aspect is the presentation itself - it is quite hard to follow, maybe just not polished enough yet, maybe he needs more practice speaking in public speaking - not as fluid and engaging as it could be. I don't think that being a technical person is a legitimate excuse for the lack of presentation skills, there are heaps of technical specialists with exceptional public speaking skills.
@qapp
@qapp 2 жыл бұрын
Just came here to know the history of the great technology
@MichaelErnestSF
@MichaelErnestSF 13 жыл бұрын
Ryan's halting speech was off-putting at first, but I got accustomed to it quickly. In the brief review I have done so far on node.js, this resource ranks tops for me. The concepts are few, clearly stated, and (I think) easy to identify in the examples given. I'm surprised that none of the blog entries or other articles I saw before this presentation got me further along or as motivated to do more. I'm excited to dig in now.
@lennyhome
@lennyhome 14 жыл бұрын
@DevelX666 Also, thank you for proving me right. You said: "All modern browsers block popups automatically". They do that exactly because otherwise javascript would open a metric ton of them per minute. Genius.
@TheFerdi265
@TheFerdi265 10 жыл бұрын
Siddharth Shama Node.js doesn't actively depend on it, but it uses it for builds when downloading packages: NPM (node package manager) downloads and rebuilds packages (e.g. packages that aren't pure js and contain a bit of c) and uses something called node-gyp which calls python 2.7.x.
@MartinOfSomeName
@MartinOfSomeName 14 жыл бұрын
@cosmos2k3 I think there are more reasons, like the better performance in all browsers, new API, more powerful CSS 3 and HTML5, larger applications using javascript etc. IE is just trying to catch up, but IE9 looks very good so far and I'm looking forward to it.
@YakiKlein
@YakiKlein 6 жыл бұрын
On min 20:43 (Almost) no side effects. What are the exceptions? Awesome talk!! love it!!
@HoofedComic
@HoofedComic 5 ай бұрын
hmm maybe ctrl + c? 😋
@blenderpanzi
@blenderpanzi 14 жыл бұрын
Hm, all these .write() calls. They *look* blocking. Am I right that they queue the data in the background and do not actually block? So you never get an IO error with these function calls? (The error would be delivered to a - obviously optional - callback.)
@MichaelErnestSF
@MichaelErnestSF 13 жыл бұрын
@ollekullberg Saw that too. Important catch.
@OnePieceWonPeace
@OnePieceWonPeace 13 жыл бұрын
Of course, his communication skills lacked (at least till the end), but man... great presentation. The guy knows his sh**
@linuxlist2000
@linuxlist2000 14 жыл бұрын
hahaha love how he air quotes about erlan "processes"
@deveras69
@deveras69 11 жыл бұрын
There's an incorrection on the presentation slides, on the 1st node example. It should be s.on and not net.on
@rne1223
@rne1223 13 жыл бұрын
I agree that is kinda hard to fallow the whole presentation, but if you have the desire to understand it...you will.
@Scy
@Scy 14 жыл бұрын
@lazyd0g i think he meant that it _should have_ just been a hashtable instead of the clusterfuck that it is...
@LorenNorman
@LorenNorman 14 жыл бұрын
The first few questioners get so hung up on the synchronous module loading, as if Ryan is contradicting himself or something, so obnoxious! We don't care about synchronous calls during the 'boot' phase of a program like this: it should only happen once, and it's downright tedious to register a series of nested 'loaded' callbacks just to load up (potentially dozens of) modules before we can begin to do the real work. Great talk!
@MartinOfSomeName
@MartinOfSomeName 14 жыл бұрын
@lennyhome I respectfully disagree. Take for example gmail, basecamp, youtube, facebook, myspace, ... they all use javascript and they use them for other things that opening porn popups. By the way... what kind of browser are you using? All modern browsers block popups automatically.
@domaincontroller
@domaincontroller 4 жыл бұрын
01:09 nodejs is a set of bindings to V8 Javascript for scripting network programs 01:10 node is this project to bring Javascript to server-side...I am very interested into scripting network servers... 01:53 I am very focused on how to deal with tcp connections and... udp things...that sort of things 03:40 we want to write high-performance servers easily 17:01 Node is a project to make a set of bindings to V8, to do non-browser work sockets and files 18:17 Node is attempting to not make any abstractions... Obviously it turns this POSIX API into JavaScript interface. 18:36 More or less its LIMITING YOU AWAY FROM THINGS that YOU SHOULDN'T DO, Like SYNCHRONOUS I/O 18:53 Because the interface is purely non blocking, users tend to achieve decent concurrency without knowing what they doing. 19:00 You don't have to know what an EVENT LOOP is or NON-BLOCKING I/O means... You live in this Non-blocking jail and its impossible to escape.... 25:18 node is basically three things its V8 it's a thread pool to do file I/O and then it has his event loop library ‐-------------------------------------------------------- 26:48 examples, command line
@lennyhome
@lennyhome 14 жыл бұрын
@DevelX666 "javascript", "usability" and "accessibility" used in the same sentence. That's interesting.
@JamesRCoston
@JamesRCoston 12 жыл бұрын
We own a lot of credit to the DNS. Although, it is now probably coming to an age where technology is changing, it is most definitely not 'fucked'.
@MartinOfSomeName
@MartinOfSomeName 14 жыл бұрын
@lennyhome I have never said that everything is always perfect or appreciated by everyone. All I'm saying is that there is also upper side of using javascript as it may be used to increase usability or accessibility - or annoy the user.
@lennyhome
@lennyhome 14 жыл бұрын
@DevelX666 KZbin's usability has, in fact, taken a a big nosedive since they did they javascript infected "channel redesign". It brought several security issues, generated complaints, general slowness, annoyances, and absolutely no new useful feature.
@cybersalad
@cybersalad 13 жыл бұрын
I think the achilles heel of node.js right now is the lack of multi-core support. Load balancing to multiple node.js processes should be a standard part of the deployment, I guess. At least for now.
@christopherstamp9716
@christopherstamp9716 7 жыл бұрын
Who would have think it that node js is now on par with the best server side languages.
@Fiil128
@Fiil128 13 жыл бұрын
Does MVC exist in js?
@ron7416
@ron7416 11 жыл бұрын
Sweet.
@Goofy8907
@Goofy8907 6 жыл бұрын
00:38 Couldn't resist being a bit douchy
@LetitRideOut87
@LetitRideOut87 11 жыл бұрын
I was going to disagree with you until I woke up in a pool of my own saliva.
@domaincontroller
@domaincontroller 4 жыл бұрын
Lol
@hearsid
@hearsid 11 жыл бұрын
why is python node's dependency , links will be appreciated .
@MartinOfSomeName
@MartinOfSomeName 14 жыл бұрын
@lennyhome You think it's not possible?
@johnesco
@johnesco 10 жыл бұрын
The video is much nicer to watch if you set it to 1.5 x speed
@blenderpanzi
@blenderpanzi 14 жыл бұрын
@blenderpanzi Ah, it was the last question. Ok. It's like I thought.
@deviantlinux
@deviantlinux 13 жыл бұрын
His speech does seem halting in this one, but I think he seems nervous for some reason here. In another video I watched it was much different from this, and easier to follow. The NodeJS project is amazing, still trying to master the concepts.
@renndar
@renndar 13 жыл бұрын
@cybersalad 20:59 "Don't fear"
@gowtham047
@gowtham047 13 жыл бұрын
"There's great thing in unix called 'processes'"
@ironmagma
@ironmagma 13 жыл бұрын
@Fiil128 function view(model) { alert(model.msg); } function controller() { var model = {msg:"hello"}; view(model); }
@overbyte
@overbyte 12 жыл бұрын
1:41 - if you can dodge a wrench...
@ckdesign
@ckdesign 13 жыл бұрын
It's hard to understand these criticism's of Ryan's presentation skills. I found his presentation not just clear, but remarkably thorough. Not only does he lay out the impetus and defining elements of the node.js architecture, he also contextualizes it with a healthy dose of general background covering server architectures and network communications. Sure, his style of speaking might be a bit jerky, but if smoothness is your litmus test for a "good" presentation, it's really your loss.
@raulooo
@raulooo 14 жыл бұрын
@lazyd0g they said it to try to say it's difficult, dont take it literally
@MartinOfSomeName
@MartinOfSomeName 14 жыл бұрын
@lennyhome 1) you don't need javascript to do that 2) any programming language may be used to do harm in some form. so using your standard, all programming languages are bad, genius ;)
@Fiil128
@Fiil128 13 жыл бұрын
@ironmagma :D
@laozec
@laozec 14 жыл бұрын
There is a typo on the "server.js" example, it should be: net = require("net"); s = net.createServer(); s.on('connection', function (c) { c.end('hello'); }); s.listen(8000);
@bernd_the_almighty
@bernd_the_almighty 11 жыл бұрын
If every important function is supposed to be non-blocking and have a lambda argument, they could just invent a new language where the compiler decides itself when to turn a couple of statements into a lambda or something. the whole thing feels clumsy in JS as it is
@blenderpanzi
@blenderpanzi 14 жыл бұрын
Sounds all much like Python's Twisted.
@victornoagbodji
@victornoagbodji 14 жыл бұрын
hope you all have memorized "ten thousand users" by now ;)
@bourgeoisbrats
@bourgeoisbrats 12 жыл бұрын
He's not presenting...he's mentoring to "his peers", who probably have a similar delivery style. That being the case, I don't think it's terrible to have all the "umm" and "uhhh" words.
@phatbyte
@phatbyte 14 жыл бұрын
Amazing guy, brilliant technology, unfortunately his presentations are very hard to watch. It isn't because I can't understand it, but because he doesn't have a fluid speech and I found it very hard to follow . I will stick with the documentation and html tutorials for now. But great technology nevertheless
@amansinhparmar3336
@amansinhparmar3336 3 жыл бұрын
i don't think remote module loading is a good idea . deno : yes
@ddstar
@ddstar 13 жыл бұрын
DNS is FUCKED. /Agree.
@zdog01020
@zdog01020 11 жыл бұрын
PENISSS!!!!!!!!
@lennyhome
@lennyhome 14 жыл бұрын
@DevelX666 Because javascript's only purpose is to open porn popups.
@easternplatypus
@easternplatypus 5 ай бұрын
lmao im sure your opinion has changed over the years
@MartinOfSomeName
@MartinOfSomeName 14 жыл бұрын
@lennyhome Stop trolling and at least say why you think so. Everyone's a critic...
@idmontie
@idmontie 12 жыл бұрын
Awful start to a presentation... "uhhh.... ummm... uhhh..."
@JinsongHuang
@JinsongHuang 14 жыл бұрын
Ryan, sorry to say this, but please get help for learn to do a better presentation, it's just so difficult sitting through your presentation.
Introduction to Node.js with Ryan Dahl
1:06:34
InfoQ
Рет қаралды 752 М.
JavaScript: The Good Parts
1:03:48
Google TechTalks
Рет қаралды 584 М.
Они убрались очень быстро!
00:40
Аришнев
Рет қаралды 2,8 МЛН
Use of Template to re use DSL models inside DIgSILENT PowerFactory
11:46
Francisco Gonzalez-Longatt
Рет қаралды 44
Speed Up Your JavaScript
56:23
Google TechTalks
Рет қаралды 135 М.
How to Do 90% of What Plugins Do (With Just Vim)
1:14:03
thoughtbot
Рет қаралды 867 М.
The Go Programming Language
59:26
Google TechTalks
Рет қаралды 402 М.
Faster HTML and CSS: Layout Engine Internals for Web Developers
1:01:16
Google TechTalks
Рет қаралды 96 М.
The NGINX Crash Course
50:53
Laith Academy
Рет қаралды 473 М.
Ryan Dahl: Node JS
48:32
JSConf
Рет қаралды 18 М.
Девушка и AirPods Max 😳
0:59
ОТЛИЧНИКИ
Рет қаралды 14 М.
Карточка Зарядка 📱 ( @ArshSoni )
0:23
EpicShortsRussia
Рет қаралды 774 М.
ВЫ ЧЕ СДЕЛАЛИ С iOS 18?!
22:40
Overtake lab
Рет қаралды 79 М.
Дени против умной колонки😁
0:40
Deni & Mani
Рет қаралды 11 МЛН