-
Notifications
You must be signed in to change notification settings - Fork 44
doc: add MANIFESTO.md #45
Changes from 15 commits
7048461
8f692bc
1e83a20
8b22d19
4162471
0469442
61537b5
f185345
52e0782
5c658a8
93ebbe8
effecf0
f7400d1
9c27db0
f6d62a9
312f27f
0e7ec23
cbf5f24
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,45 @@ | ||
## The Module Manifesto | ||
|
||
We the undersigned agree on the the following, | ||
|
||
* Getting modules "right" is one of the biggest existential threats to JavaScript | ||
* This affects a large number of people on this planet (and future planets), with varying interests including but not limited to: | ||
- web applications | ||
- serverside applications and services | ||
- command line interfaces | ||
- libraries and frameworks | ||
- transpilers | ||
- robots | ||
- art and music | ||
* Getting modules "right" is hard because of these varying interests | ||
* Creating a good developer experience is the number one priority | ||
* The aim will be to not compromise the Node.js Developer Experience, but we recognize that may be necessary to improve the health of the JavaScript ecosystem | ||
* While compromise is neccessary, it is important to recognize when Node.js needs to lead and attempt to influence change at an industry level | ||
* The closer the Node.js and Web platform remain the better the developer experience will be | ||
This comment was marked as off-topic.
Sorry, something went wrong.
This comment was marked as off-topic.
Sorry, something went wrong.
This comment was marked as off-topic.
Sorry, something went wrong.
This comment was marked as off-topic.
Sorry, something went wrong. |
||
|
||
* The Node.js implementation of ESModules must have the following features: | ||
- Compliant to ECMA-262. It is important to follow the standard. If we need changes in the standard we should attempt to accomplish them at TC39. | ||
- Interoperability. It is important to be able to utilize ESModule code from CommonJS and vice versa. | ||
This comment was marked as off-topic.
Sorry, something went wrong.
This comment was marked as off-topic.
Sorry, something went wrong.
This comment was marked as off-topic.
Sorry, something went wrong.
This comment was marked as off-topic.
Sorry, something went wrong.
This comment was marked as off-topic.
Sorry, something went wrong.
This comment was marked as off-topic.
Sorry, something went wrong.
This comment was marked as off-topic.
Sorry, something went wrong.
This comment was marked as off-topic.
Sorry, something went wrong.
This comment was marked as off-topic.
Sorry, something went wrong. |
||
- Hooks. It is important to be able to have hooks into the lifecycle of a Module. | ||
This comment was marked as off-topic.
Sorry, something went wrong.
This comment was marked as off-topic.
Sorry, something went wrong.
This comment was marked as off-topic.
Sorry, something went wrong. |
||
- Multiple Goals. e.g. wasm. It is important that our implementation scales to any number of future goals. | ||
This comment was marked as off-topic.
Sorry, something went wrong. |
||
* Packages written with the Node.js implementation of ESModules must have the following features. | ||
- Dual mode. It is important that a single package should be capable of being loaded as both ESM and CJS. This does not have to be the default. | ||
This comment was marked as off-topic.
Sorry, something went wrong.
This comment was marked as off-topic.
Sorry, something went wrong.
This comment was marked as off-topic.
Sorry, something went wrong.
This comment was marked as off-topic.
Sorry, something went wrong.
This comment was marked as off-topic.
Sorry, something went wrong.
This comment was marked as off-topic.
Sorry, something went wrong.
This comment was marked as off-topic.
Sorry, something went wrong.
This comment was marked as off-topic.
Sorry, something went wrong.
This comment was marked as off-topic.
Sorry, something went wrong. |
||
- Web Compatible. It is important that a published package be capable of running on both the web and node.js platform without any source changes. This does not mean all APIs need to be compatible. | ||
This comment was marked as off-topic.
Sorry, something went wrong.
This comment was marked as off-topic.
Sorry, something went wrong.
This comment was marked as off-topic.
Sorry, something went wrong.
This comment was marked as off-topic.
Sorry, something went wrong.
This comment was marked as off-topic.
Sorry, something went wrong.
This comment was marked as off-topic.
Sorry, something went wrong.
This comment was marked as off-topic.
Sorry, something went wrong.
This comment was marked as off-topic.
Sorry, something went wrong. |
||
|
||
Without working together there will be no chance of a successful module system. "Together" is larger than the undersigned. | ||
|
||
Signed, | ||
|
||
Myles Borins (@MylesBorins) | ||
Gus Caplan (@devsnek) | ||
Jordan Harband (@ljharb) | ||
Matteo Collina (@mcollina) | ||
Benjamin Gruenbaum (@benjamingr) | ||
Hassan Sani (@inidaname) | ||
Michaël Zasso (@targos) | ||
Ahmad Abdul-Aziz (@devamaz) | ||
Jan Krems (@jkrems) | ||
Guy Bedford (@guybedford) | ||
Timothy Gu (@TimothyGu) | ||
Gil Tayar (@giltayar) | ||
Rob Palmer (@robpalme) |
This comment was marked as off-topic.
Sorry, something went wrong.
This comment was marked as off-topic.
Sorry, something went wrong.
This comment was marked as off-topic.
Sorry, something went wrong.