On Thu, May 9, 2013 at 5:29 PM, ~flow <[email protected]> wrote:
> i recently opened an issue https://github.com/joyent/node/issues/5430
> concerning require.extensions, and got told that
>
> "People should not be using require.extensions. It's officially deprecated",
> "Compile your code to JavaScript prior to running it." "There is never any
> need for additional filetype extensions. Node runs JavaScript"; "we're not
> bothered with tens of other dialects that require compilation and are
> written in code that's not readable for JavaScript programmer"; "stop
> relying on this horrible feature"
>
> in no unclear words. i was a little shocked, since my perception has always
> been that require.extensions was the strike of a genius. with little effort,
> you can hook in filetypes and make it so that they are require'd
> transparently, no matter whether they represent data / programs as
> javascript, json, coffeescript, whatever.
>
> ok it's a global hook which, in theory might lead to problems (but in years
> of writing coffeescript hasn't been a problem even once.
>
> i love the fact that i do not have to compile everything in advance / add a
> buildscript / are forced to keep a coffeescript watch process in the
> background. coming from python, i was also very happy to see that those
> pernacious *.pyc files that used to litter my directories were now a thing
> of the past—i mean, that is code duplication enforced by the system, utterly
> avoidable.
>
> to me, javascript is a wonderful language with some rough edges and a
> horribly cluttered syntax. now here comes nodejs and all those wonderful
> home-grown programming languages that take advantage of the great compiling
> target that javascript running on nodejs is. dumbing down `require` will be
> sad news for all the many people that are using those new languages daily.
>
> as a user of coffeescript, the fact that coffeescript compiles to javascript
> is a fact that i have to be aware of, but it is not something that i want to
> be (or need be) constantly reminded of. doing on-the-fly, transparent
> compilation is the way to go; it has never been any appreciable drain on
> resources, either. it sure will continue doing things that way.
>
> if they kill require.extensions with no sensible replacement, things will
> just get more difficult. it won't be too difficult to come up with a
> sensible replacement—one could even predict that sooner or later, there will
> be modules in npm that will allow you to `require 'old-require'` to replace
> the new require with the good ole'. gone a bit of efficiency, gone a bit of
> standardization.
>
> so what are the good, the bad and the ugly facts about require.extensions?

You're essentially saying that deprecating require.extensions makes
your life as a module author harder, right?  That's the wrong way to
look at it: it makes life for _users_ of your module easier.

The quintessential example is where someone has a project that depends
on two modules, both written in FooScript(TM), but with module A
depending on [email protected] and module B depending on
[email protected].

require.extensions is global; if FooScript 1 and 2 are incompatible,
then your user is between a rock and a hard place - there is no way
for him to use both modules at the same time.

That's why we _strongly_ recommend that you compile to JS before
publishing to npm.  You are doing your users a disservice if you
don't.

-- 
-- 
Job Board: http://jobs.nodejs.org/
Posting guidelines: 
https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines
You received this message because you are subscribed to the Google
Groups "nodejs" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/nodejs?hl=en?hl=en

--- 
You received this message because you are subscribed to the Google Groups 
"nodejs" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/groups/opt_out.


Reply via email to