I'm coming up to speed on the node core, trying to learn things at a very 
detailed level because I need something for my application area that will 
probably be a lot like node -- either using node itself or developing a 
similar v8-based framework for my purposes.  And I am interested in the 
decision process of which objects to include in the node core vs leaving 
out for add-ons.  As I see it, the general desire would probably be to keep 
the core minimal and only include objects that either

   1. provide functions the core itself needs in order to operate (e.g., 
   module, fs, path etc), OR
   2. provide the single implementation that it is important everyone use 
   in their modules to achieve interoperability(e.g., EventEmitter), OR
   3. provide significant performance improvements by being in the core

With that in mind, I see a lot of objects that are in the core which 
(maybe) don't meet that criteria.  As an example, I want to build a 
platform where http is only one of many IP protocols and not the 'first 
among equals' that it seems to be in node -- so for me, its not clear why 
http is in the core.  Or crypto, or others.  Since I'm still coming up to 
speed, I'm wondering if I am missing something.  If not, I would be 
interested to know the perspective from node devs -- if they were to start 
over with a blank sheet of paper so to speak, what would be in core and 
what would be provided outside of core?

Reply via email to