下面我简单说两句Node.js@v4.0.0

年度最大谎言之一:“下面,我简单说两句……” —-莎士比亚

Node.js 4.0.0 版本发布了,之前的 Node.js 版本是 0.12 ,io.js 的版本是 1.0 2.0 3.0 都有。 所以合并的时候就直接从 4.0 开始了。 这个版本最让人悲伤的是从此以后,编译 Node.js,包括 C++ 写的一些第三方库, 编译的前提都是 (gcc and g++ 4.8 or newer) or (clang and clang++ 3.4 or newer) 要知道,现在很多公司生成环境还仍然都是 CentOS 6.5 , CentOS 6.5 也就意味着 g++ 版本是 4.4.7 而已。

可能很多人会说那就升级呗。 但是这就好像微信发了一个新版本, 然后告诉你只有 iOS 8 系统才能用, 或者是 Android 5.0 以上系统才能用一样, 会让不少人难受。

不过再转念一想的话,希望因此能推动很多公司对于 C/C++ 编译器版本的升级吧。

好消息是,对于支持过 io.js 3 的第三方Node.js C++ 库来说, 可以在 Node.js 4.0 环境下无缝使用。 比如 NodeJieba

我对 Node.js 甚至有一个不切实际的期待,就是或许随着 Node.js 的流行, 会因此让 C++ 借助 Nan 这个库, 插上 Npm 的翅膀,让 C++ 也能在 Node.js 的。 比如当我们需要 C++ 库的一个功能的时候, 我们会第一反应是想到用 C++ 写一个功能函数,然后使用 Nan 包装一下, 就可以供 JavaScript 调用。这样的好处非常多, 几乎就是结合了性能和开发效率的最佳实践。 而对于我来说,最大的好处就是可以使用 NPM 来进行包管理。 NPM 真是现在最让人满意的包管理器,没有之一。 用 NPM 刚好可以填补上 C++ 没有自带包管理器的痛点。

这个期待也是一开始 Node.js 最吸引我的地方, 同时具备有高性能的 V8 引擎,和超高开发效率的 JavaScript 两者的结合体。 也就是文章一开始题图所表达的。 而不是别人乱鼓吹的什么高性能异步IO 这种人云亦云的话。 说到这里最让我惋惜的就是响马的 fib.js ,如果响马的 fib.js 在 Node.js 之前出现的话,JavaScript 社区的前途或许会更加光明。 至少,可以少踩很多坑。

当然,以上只是我不切实际的幻想。 虽然我个人已经把 CppJieba 包装成 NodeJieba, 并且可以非常得意的说 NodeJieba 应该是现在最易上手的分词工具之一。 同时又保持着不错的性能,是我最过瘾的开源实践之一。

最碰巧的是,女朋友今天开始研究生选课了,金融专业。 万绿丛中一点红地发现居然有一门专业选修是 C++ 。 其实她(luckykaiyi)是搞前端开发的, 在我的建议下,选了 C++ 作为专业选修。 或许真的有一天,连她都会用 C++ & Nan & Node.js 写项目组件。 这真的就神奇了。

其实以上这些吧,一开始只是在 Moment 里面写的而已,没想到越写越多。 最后就干脆再贴个题图,就写成了这篇文章。

转载请注明出处: 下面我简单说两句Node.js@v4.0.0