주: 이 글은 io.js가 Node.js로 병합되기 이전의 글입니다.

@mikeal Is node now the IE6 of server-side JS?

— Yehuda Katz (@wycats)

January 14, 2015

자바스크립트 구루중 한명인 Yehuda Katz는 위와 같은 트윗을 올렸다. 위는 io.js의 1.0 릴리즈와 더불어 Node.js의 느린 릴리즈 속도를 조롱하기 위함이다. Node.js는 2015년 1월 현재 최신의 stable버전이 0.10.35인 상태이다. Node.js는 마이너 버전의 번호가 짝수인 경우 stable, 홀수인 경우 unstable한 버전이며, 현재 0.11에서는 ES6 지원 등 굉장히 많은 수정이 이루어지고 있다. 특히 ES6는 거의 새로운 언어라고 해도 될 정도로 새로운 문법과 많은 기능들이 추가되었기 때문에, 유저들은 0.12의 릴리즈를 애타게 바라고 있다. 하지만 0.10으로 stable 버전업이 이루어진 2013년 3월 이후, 이제 벌써 2년을 바라보고 있지만 0.12로의 버전업은 아직 감감 무소식인 상태다.

Node v0.10.34 (Stable) http://t.co/VimTZXc1VK tomorrow is v0.11.15 (the release candidate for v0.12)

— node js (@nodejs)

December 17, 2014

Node.js 공식 트위터로부터 위의 트윗이 올라온 것이 지난달 17일이었다. 그 다음날 이루어질 새로운 릴리즈에 대한 기대를 불러모았으나, 벌써 거의 한달이 지난 지금까지도 새로운 stable 릴리즈에 대한 내용은 전혀 공개되지 않았다. 위의 트윗은 io.js의 1.0 릴리즈에 맞춰 반 조롱조로 다시 리트윗이 되고있는 실정이다.

그렇다면 io.js는 무엇인가? GitHub의 Explorer탭을 수시로 확인하는 사람이라면 최근 인기 저장소 목록에 io.js가 항상 보이고 있던 것을 확인했을 것이다. io.js의 GitHub 페이지를 보면 자신을 ‘A spork of Node.js with an open governance model'라고 소개하고 있다. 실제로 io.js는 Node.js의 클론이며, 관계상으로는 애플의 웹킷과 그를 fork해서 나온 구글의 블링크와도 비슷하다고 볼 수 있겠다. io.js는 Node.js와는 다르게 opensource governance model을 도입해서 일부 구성원에 의해서 주도되는 개발이 아닌, 체계화되었지만 빠른 개발을 목표로 하고있다. 기본적으로 Technical Committee(이하 TC) 그룹이 존재하고, 이들은 정기적 미팅 등의 소통을 통해 전체적인 프로젝트의 방향을 결정한다. 심지어 io.js의 TC에는 이전 Node.js의 리더였던 Isaac Schlueter도 포함되어 있다. Governance model에 대한 자세한 내용은 io.js 저장소의 GOVERNANCE.md에 기술되어 있다.

일단 io.js는 지금까지는 성공적으로 프로젝트가 진행되고 있는 것처럼 보인다. io.js 커뮤니티가 바라는 대로, 굉장히 빠른 속도로 프로젝트가 진행되고 있다. Fork가 이루어진지 오랜 시간이 지나지 않았지만 벌써 ES6의 지원을 포함하는 1.0 버전이 릴리즈되었다. 심지어 Node.js 커뮤니티의 핵심 프로젝트 중 하나인 node-webkit은 벌써 프로젝트의 이름을 NW.js로 변경하기까지 하면서 io.js로 넘어갈 것임을 공표했다. io.js는 기존의 Node.js와도 호환이 되기때문에(애초에 클론일 뿐이므로 당연하지만) 만약 Node.js의 릴리즈가 이 이상 늦어진다면 ES6 지원 및 새로운 자바스크립트의 기능들을 사용하기를 원하는 유저층이 io.js로 돌아설 가능성이 높으며, 실제로 그렇게 되고 있다.

Node.js는 몇년 전 나타나 서버사이드 자바스크립트를 현실화하였고, 특유의 마이크로 모듈을 중심으로 하는 커뮤니티 기반을 마련했다. 하지만 Node.js의 릴리즈가 느리다는 것은 어제 오늘 언급된 불평이 아니었다. 특히 자바스크립트는 현재 가장 빠르게 변화하고 있는 언어중 하나이기 때문에 더욱 그러했다. 그리고 마침내 io.js가 등장했다. 과연 Node.js가 이미 뒤쳐진 부분을 잘 메꾸어 기존의 지위를 회복할 것인지, 혹은 도태되어 인터넷익스플로러6처럼 새로운 경쟁자에게 자리를 내어준 뒤 역사의 뒤안길로 사라질 것인지 궁금하다.