Node.js: JavaScript on the Server

Поделиться
HTML-код
  • Опубликовано: 26 авг 2024
  • 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

  • @saulmtzv
    @saulmtzv 8 лет назад +12

    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.

  • @supermegacobra
    @supermegacobra 14 лет назад +3

    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.

  • @kemchobhenchod
    @kemchobhenchod 7 лет назад +1

    This guy is too smart. Each word is so carefully chosen.

  • @InformBureau
    @InformBureau 14 лет назад +1

    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.

  • @mmichelli
    @mmichelli 14 лет назад

    Ryan is a clear and convincing speaker. Really impressed.

  • @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!

  • @Munirs1998
    @Munirs1998 12 лет назад +1

    Wonderful insight into one of my fav technologies. What a great mind RD has!, loved it

  • @jayanthmanklu8642
    @jayanthmanklu8642 8 лет назад +7

    This video is from 2010, why it feels like it is from the '70s...

    • @Niekpas1
      @Niekpas1 7 лет назад +1

      4:3 will do that to ya

  • @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.

  • @qapp
    @qapp 2 года назад

    Just came here to know the history of the great technology

  • @lennyhome
    @lennyhome 14 лет назад +1

    @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.

  • @johnesco
    @johnesco 11 лет назад +4

    The video is much nicer to watch if you set it to 1.5 x speed

  • @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 лет назад

    @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.

  • @ckdesign
    @ckdesign 13 лет назад +2

    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.

  • @OnePieceWonPeace
    @OnePieceWonPeace 13 лет назад

    Of course, his communication skills lacked (at least till the end), but man... great presentation.
    The guy knows his sh**

  • @LetitRideOut87
    @LetitRideOut87 11 лет назад +1

    I was going to disagree with you until I woke up in a pool of my own saliva.

  • @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

  • @rne1223
    @rne1223 14 лет назад

    I agree that is kinda hard to fallow the whole presentation, but if you have the desire to understand it...you will.

  • @MartinOfSomeName
    @MartinOfSomeName 14 лет назад +1

    @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.

  • @Scy
    @Scy 14 лет назад

    @lazyd0g i think he meant that it _should have_ just been a hashtable instead of the clusterfuck that it is...

  • @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 лет назад +1

    @DevelX666 RUclips'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.

  • @deveras69
    @deveras69 12 лет назад

    There's an incorrection on the presentation slides, on the 1st node example. It should be s.on and not net.on

  • @lennyhome
    @lennyhome 14 лет назад

    @DevelX666 "javascript", "usability" and "accessibility" used in the same sentence. That's interesting.

  • @linuxlist2000
    @linuxlist2000 14 лет назад +1

    hahaha love how he air quotes about erlan "processes"

  • @YakiKlein
    @YakiKlein 6 лет назад +1

    On min 20:43 (Almost) no side effects. What are the exceptions?
    Awesome talk!! love it!!

    • @HoofedComic
      @HoofedComic 7 месяцев назад

      hmm maybe ctrl + c? 😋

  • @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.

  • @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.)

  • @JamesRCoston
    @JamesRCoston 13 лет назад

    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'.

  • @christopherstamp9716
    @christopherstamp9716 7 лет назад

    Who would have think it that node js is now on par with the best server side languages.

  • @MichaelErnestSF
    @MichaelErnestSF 13 лет назад

    @ollekullberg Saw that too. Important catch.

  • @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.

  • @MartinOfSomeName
    @MartinOfSomeName 14 лет назад +1

    @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 лет назад

    Does MVC exist in js?

  • @MartinOfSomeName
    @MartinOfSomeName 14 лет назад

    @lennyhome You think it's not possible?

  • @hearsid
    @hearsid 11 лет назад

    why is python node's dependency , links will be appreciated .

  • @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);

  • @Goofy8907
    @Goofy8907 6 лет назад +2

    00:38
    Couldn't resist being a bit douchy

  • @blenderpanzi
    @blenderpanzi 14 лет назад

    @blenderpanzi Ah, it was the last question. Ok. It's like I thought.

  • @ron7416
    @ron7416 11 лет назад

    Sweet.

  • @renndar
    @renndar 13 лет назад

    @cybersalad 20:59 "Don't fear"

  • @raulooo
    @raulooo 14 лет назад

    @lazyd0g they said it to try to say it's difficult, dont take it literally

  • @ironmagma
    @ironmagma 13 лет назад

    @Fiil128 function view(model) { alert(model.msg); } function controller() { var model = {msg:"hello"}; view(model); }

  • @bernd_the_almighty
    @bernd_the_almighty 11 лет назад +1

    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

  • @overbyte
    @overbyte 12 лет назад

    1:41 - if you can dodge a wrench...

  • @gowtham047
    @gowtham047 13 лет назад

    "There's great thing in unix called 'processes'"

  • @Fiil128
    @Fiil128 13 лет назад

    @ironmagma :D

  • @blenderpanzi
    @blenderpanzi 14 лет назад

    Sounds all much like Python's Twisted.

  • @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

  • @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.

  • @victornoagbodji
    @victornoagbodji 14 лет назад

    hope you all have memorized "ten thousand users" by now ;)

  • @amansinhparmar3336
    @amansinhparmar3336 4 года назад

    i don't think remote module loading is a good idea .
    deno : yes

  • @lennyhome
    @lennyhome 14 лет назад

    @DevelX666 Because javascript's only purpose is to open porn popups.

    • @easternplatypus
      @easternplatypus 7 месяцев назад

      lmao im sure your opinion has changed over the years

  • @ddstar
    @ddstar 13 лет назад

    DNS is FUCKED. /Agree.

  • @MartinOfSomeName
    @MartinOfSomeName 14 лет назад

    @lennyhome Stop trolling and at least say why you think so. Everyone's a critic...

  • @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.

  • @zdog01020
    @zdog01020 12 лет назад

    PENISSS!!!!!!!!

  • @idmontie
    @idmontie 12 лет назад

    Awful start to a presentation... "uhhh.... ummm... uhhh..."