1. 44

  2. 7

    Nice! @bcantrill how did you find the AMA format and experience?

    1. 16

      It was actually refreshingly good. To be totally honest, I went in assuming that this was the opportunity for every skeleton to come out of the closet (especially when the skeletons are so searchable!) and had prepared diplomatic answers to many mean-spirited questions. But surprisingly, the questions were (generally) earnest and thoughtful – and I especially enjoyed the questions from people who are contemplating computer science and/or software engineering and are wondering how to get started. Overall, a positive experience – and much, much more positive than I had anticipated.

      1. 5

        FWIW thanks! I quite enjoyed reading though it this morning.

        Thanks also for listing some recent talks in your opening. I admit to having been a bit baffled by the popularity of docker (seemed like a convoluted/glorified chroot), and am going to watch your talk on it and see if anything resonates.

        edit clarification: popularity of docker vs something “better” like jails/zones, or even using lxc directly

        1. 3

          Out of curiosity, since it doesn’t seem super likely that io.js and node are getting together anytime soon (and that’s beside the point anyways)…would Joyent be interested in moving off of v8 as a JS runtime if a better platform, like an open-sourced engine from Microsoft or duktape or something, became available?

          1. 3

            One vision for future development of Node that we’ve spitballed around the office is definitely to refactor the platform so that it does not depend on a particular Javascript runtime. I’ve personally played around with Duktape and I think it’s eminently embeddable and quite neat. Obviously the performance will not be anywhere near that of a JIT-capable VM like V8 or Spidermonkey, but it’s interesting nonetheless.

            Though there are chunks of the codebase that are written in C++ today, and clearly the entire platform is relatively wedded to running on top of V8 and libuv, at its heart Node is really a sort of “Javascript standard library”. There’s no reason not to write (or rewrite) most of that in Javascript, with a small, well-defined C (not C++) layer underneath that exposes the parts of a Javascript VM and the underlying OS that are commonly available.

            It would then be reasonable to use Node as a Javascript library/platform on top of basically any VM – whether on top of V8 (with a stable C API/ABI on top), or Duktape, or JSC, etc. The node binary could even load different interpreters at runtime from shared libraries.

            Though, obviously this is not just a decision for Joyent. As we move toward a Node Foundation it is even more a community-centric decision that ever before, both in terms of setting the direction and doing the work required.

            1. 1

              I think that Node-The-Standard-Library and Node-The-Runtime-Implementation is an important distinction to make.

              I think that building a minimal C scaffolding (libuv + a JS runtime) would a great place to go. Is there anyone currently working on that? Is there a test suite for Node or IO.js that verifies the Node-The-Standard-Library behavior (as seen from JS userland), and which we could use to test conformance of an alternative Node-The-Runtime-Implementation?

              1. 2

                There are many challenges with providing an API compatibility test (or certification) suite. Some recent related work is StrictEE, a modified EventEmitter that can make assertions about event firing cardinality, ordering, etc. This is a critical step towards being able to prove what the API of Node even is, given how much of it is exposed through the EventEmitter pattern.

                If you’re keen to work on things like that, there is definitely interest!

          2. 1

            Thanks for doing that @bcantrill! I know there are all sorts of interesting folks doing open source stuff, but I found it refreshing to see your name out there. Cheers!