one way of putting it is to say that node core needs just enough
functionality to build a package manager.

EventEmitter for example, is core element because it's the subclass of
Stream which is the subclass of every IO stream. (it's not a utility
for interoperability)

Strictly speaking, http is an application level protocol, an so
doesn't need to be in core. However, it was probably important for the
success of node that it was, because http is hugely popular, most
users of node being web developers.

You could certainly reimplement http if you thought you could do
better, but taking it out at this point probably wouldn't gain very
much.

On Sun, Jul 22, 2012 at 12:27 PM, beachdog <[email protected]> wrote:
> 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
>
> provide functions the core itself needs in order to operate (e.g., module,
> fs, path etc), OR
> provide the single implementation that it is important everyone use in their
> modules to achieve interoperability(e.g., EventEmitter), OR
> 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