Node.js 是在 2009年5月份创建的,是属于典型的 Git 和 GitHub 时代最初孕育的项目。另外需要先说明一点,那就是回顾 Node.js 的历史,并不是仅仅为了给大家回味,而是想找到在 Node.js 发展到今天作为一个大型的开源社区对于处理内部冲突发展到如此地步的源头。 几年前,Node.js 还只有很少的几名提交者的(贡献者以写模式访问仓库是为了合并代码和修复 bug)。随着项目的扩大,在管理结构上以及最初的这些成员的个性各异,渐渐的开始出现问题了。具体的表现就是少数的几个提交者来维护庞大的代码提交越来越力不从心,而且开始有一些开发者不再贡献了,这其中包括核心提交者和外围的贡献者。这也直接导致的后果就是发布渐渐跟不上步伐了。

James Snell ,是项目的早期贡献者,现在就职于 IBM,是该公司 Node.js 的技术领导,同时也是 Node.js 社区的核心技术指导委员会的成员之一,说道:

开发者在想作出改变时,并不会受到鼓励。这就会让开发者们失去动力,从而远离社区。创新也随着就会下降,开发者觉得不值得在此项目上投入时间和精力。

 

通过“开放”开源来进行改变

为了应对这些挑战和相应的冲突治理,在2014年12月,Fedor Indutny 启动了 io.js,一个 Node.js 的分支。与 Node.js 不同的地方是,io.js 的作者计划要保持能跟上 Google V8 JavaScript 引擎的最新版本。io.js 不同于原来的地方在于贯彻了 Do-ocracy 运动的操作原则。Do-ocracy 运动是一种组织架构,它是指为人们自己分开了选择角色和任务,然后去执行。干工作的人和责任挂勾,而不是选举或选定官员。Snell 进一步透露:

"通过开放贡献的流程,我们算是将平台稳定下来了。"他接着解释​​说社区成员贡献的代码,社区或文档中定义的参与决策,是“任何人所发出的请求,都是一视同仁的。”

在 io.js 刚刚成立的前几个月,就吸引了比整个 Node.js 历史上都多的活跃开发者。

在 2015年2月,旨在保持中立的 Node.js 基金会成立了。在2015年6月,Node.js 和 io.js 社区投票通过,将统一在 Node.js 基金会下开展工作。Node.js 版本0.12 和 io.js 版本3.3 合并为 Node 4.0,此次合并还引入了 V8 的特性到 Node.js,而且作了长期支持的发布周期。

Node.js 历史的更多相关文章

  1. Node.js 安装配置介绍

    Node.js 安装配置 本章节我们将向大家介绍在window和Linux上安装Node.js的方法. 本安装教程以Node.js v6.10.1 LTS(长期支持版本)版本为例. Node.js安装 ...

  2. python 全栈开发,Day54(node.js初识)

    一.什么是Node.js 简单的说 Node.js 就是运行在服务端的 JavaScript.Node.js 是一个基于Chrome JavaScript 运行时建立的一个平台.Node.js是一个事 ...

  3. Node.js:安装配置

    ylbtech-Node.js:安装配置 1.返回顶部 1. ode.js 安装配置 本章节我们将向大家介绍在window和Linux上安装Node.js的方法. 本安装教程以Node.js v4.4 ...

  4. 5.Node.js 安装配置

    转自:http://www.runoob.com/nodejs/nodejs-tutorial.html Node.js安装包及源码下载地址为:https://nodejs.org/en/downlo ...

  5. 使用Node.js+Socket.IO搭建WebSocket实时应用

    Web领域的实时推送技术,也被称作Realtime技术.这种技术要达到的目的是让用户不需要刷新浏览器就可以获得实时更新.它有着广泛的应用场景,比如在线聊天室.在线客服系统.评论系统.WebIM等. W ...

  6. Node.js之NPM工具使用

    1.NPM介绍:包管理工具 (1)允许用户从NPM服务器下载别人编写的第三方包到本地石使用 (2)允许用户从NPM服务器下载并安装别人编写的命令行程序到本地使用 (3)允许用户将自己编写的包或命令行程 ...

  7. 深入浅出Node.js(一):什么是Node.js

    Node.js从2009年诞生至今,已经发展了两年有余,其成长的速度有目共睹.从在github的访问量超过Rails,到去年底Node.jsS创始人Ryan Dalh加盟Joyent获得企业资助,再到 ...

  8. (转)使用Node.js+Socket.IO搭建WebSocket实时应用

    Web领域的实时推送技术,也被称作Realtime技术.这种技术要达到的目的是让用户不需要刷新浏览器就可以获得实时更新.它有着广泛的应用场景,比如在线聊天室.在线客服系统.评论系统.WebIM等. W ...

  9. Node.js入门:Node.js&NPM的安装与配置

    Node.js安装与配置      Node.js已经诞生两年有余,由于一直处于快速开发中,过去的一些安装配置介绍多数针对0.4.x版本而言的,并非适合最新的0.6.x的版本情况了,对此,我们将在0. ...

随机推荐

  1. JS---猜数字(0-100)

    <!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8&quo ...

  2. CF-851B

    B. Arpa and an exam about geometry time limit per test 2 seconds memory limit per test 256 megabytes ...

  3. 面试问题 - C# 接口和抽象类的区别

    这个问题基本上可以说是 面试时的必问问题 C# 中的接口和抽象类 相同点: 1. 都不能直接实例化,都可以通过继承实现其抽象方法 2. 都是面向抽象编程的技术基础,实现了诸多的设计模式 不同点: 1. ...

  4. 洛谷P3382 【模板】三分法(三分找凹凸点)

    P3382 [模板]三分法 题目描述 如题,给出一个N次函数,保证在范围[l,r]内存在一点x,使得[l,x]上单调增,[x,r]上单调减.试求出x的值. 输入输出格式 输入格式: 第一行一次包含一个 ...

  5. HTML5学习笔记(二)新元素和功能

    <canvas> 新元素(必须使用脚本来绘制图形) 标签 描述 <canvas> 标签定义图形,比如图表和其他图像.该标签基于 JavaScript 的绘图 API HTML5 ...

  6. char和nchar,varchar和nvarchar的区别(转载)

    1)       定义: char:    固定长度,存储ANSI字符,不足的补英文半角空格. nchar:   固定长度,存储Unicode字符,不足的补英文半角空格 varchar:  可变长度, ...

  7. 用js判断屏幕的宽度,改变html字体大小用rem布局

    if (document.documentElement.clientWidth > 600) {//页面宽度大于600px让其宽度等于600px,字体大小等于60px,居中 document. ...

  8. 洛谷P2292 [HNOI2004]L语言

    传送门 建好trie树 当$dp[j]==1$当且仅当存在$dp[k]=1$且$T[k+1,j]==word[i]$ 然后乱搞就行了 //minamoto #include<iostream&g ...

  9. InnoDB Monitors | SHOW ENGINE INNODB STATUS

    参考 <mysql 5.7手册>,15.17章节 InnoDB监视器提供有关InnoDB内部状态的信息. 这些信息对于性能调优非常有用.其实所谓的监视器,就是 show engine in ...

  10. Vue实现选项卡效果

    <!DOCTYPE html> <html lang="en"> <head>    <meta charset="UTF-8& ...