This list is not the only place to confer with your peers. I you want to confer about portability it's better to confer with users of other environments, which are increasingly *less* represented here.
I appreciate the work you do Wes, I just think all of it would be more successful without this list.
> Is this list irrelevant? Well, it is *not* to me. Thanks everyone for
> being so willing to share your thoughts so openly on cross platform
> JS. It has helped me tremendously and I hope to be pounding this
> wonderful architecture with millions of customers and contributing
> back here and to Node.js all along the way.
Agreed. Many good ideas have been prototyped or built into useful
projects, and personally I've learned a *lot* from participating.
The original idea of CommonJS spec-ing out tons of APIs on a public
mailing list was probably flawed, but I believe it has at least gotten
people talking, and if there are more appropriate places to finish the
work then great. I care about the end result, not whether CommonJS is
considered "irrelevant".
That said, I think modules one area we can and should continue to
pursue. It's the one thing that *every* JavaScript platform needs.
ECMA is slow to standardize stuff, browsers are slow to implement it,
and users are even slower to upgrade their browsers. Eventually it
will be replaced by ECMA/Harmony/Simple/whatever modules, but I don't
see that happening soon.
If what Mikael says is true about Node disregarding CommonJS modules
completely and making incompatible changes, well, that sucks. I hope
there are people in the Node community who think interoperability is a
worthy goal and can act as ambassadors.
-tom
If we continue Modules work here, where does it go? What does it like look when it's finished?
Is it done now? Probably not, but we don't have any process to know when "done" is. The answers are more obvious when you're talking about code and adoption, but here they are aren't.
For instance, your own arguments against AMD suggest that you feel, and I agree, that the basic module format has solidified and, for better or worse, can't be changed at this point in a reverse incompatible manor. But there is nothing stopping those kinds of changes because "finalizing" a CommonJS proposal and getting a version number doesn't really mean much.
So of course people think they should bring up new proposals that break compatibility, why not? The fact that it's unlikely to be adopted isn't a factor here.
Node has solidified it's module format, it won't take breaking changes at this point. Breaking changes still appear to be on the table at CommonJS.
Node is making additions to the API offered for modules based on what the perceived needs of it's users is. That's healthy. Why would they do that here? Why would they listen to stakeholders so far away from their users? CommonJS can't even agree on a good solution to module.exports, why bet the future on node modules on this list? It's not that node doesn't care about interop, it just doesn't think that the best route to it is this list, so they will drive forward on improving modules for their users and consider changes that help interoperability at the behest of those communities (browser frameworks, RingoJS, etc), not CommonJS.
Other implementations seem to be tracking the additions made by node so they are probably doing something right.
By "pursuing" modules I really mean we should try to drive adoption of
what we already have, maybe making the occasional tweak or addition to
reflect the needs of platforms and users of those platforms.
I agree with many of the issues you mentioned. Personally I was pretty
content with Modules 1.1.1. I am against those breaking changes in
both CommonJS and Node, unless there's a good reason that everyone
agrees on.
This is another reason I believe AMD should be a "transport format"
that has no bearing on the basic module spec. It's causing these kinds
of problems. If it were merely a transport format Node and every other
non-browser platform could ignore it completely.
I think there is significant overlap between the people interested in
CommonJS and Node users. I'm one, as are many others. Chances are if
Node needs a new feature in modules then other platforms will too,
thus we should work with them to add it to the specs.