TJ何许人也?
他medium自我介绍:TJ Holowaychuk,程序员兼艺术家,Koa、Co、Express、jade、mocha、node-canvas、commander.js等知名开源项目的创建和贡献者。
社区影响:
https://nodejsmodules.org 第一页出现次数最多的那个少年
Quora: How is TJ Holowaychuk so insanely productive? —高产到令人发指,Quora上甚至有人猜测TJ不是一个人,而事实上他就是一个人。
substack/npmtop:对node npm社区代码贡献截止目前占到整个社区的3.04%
rank percent packages author
---- ------- -------- ------
# 1 3.04 % 28 tjholowaychuk
# 2 2.82 % 26 samuraijack
# 3 2.28 % 21 gozala
# 4 1.95 % 18 creationix
# 5 1.85 % 17 isaacs
# 6 1.74 % 16 substack
# 7 1.63 % 15 kriskowal
# 8 1.52 % 14 marak
# 9 1.41 % 13 coolaj86
# 9 1.41 % 13 pkrumins
# 11 1.19 % 11 masylum
# 12 1.09 % 10 TooTallNate
# 13 0.98 % 9 cloudhead
# 13 0.98 % 9 davglass
# 13 0.98 % 9 indexzero
个人对他的印象:TJ大神、visionmedia、潮男、酷炫、杀马特
TJ绝对是这一两年node社区的“弄潮儿”+“精神领袖”。
引用一个知友的话说,
任何一个做node.js开发的人, 一定都直接或间接引用过他写的库。这里说的是任何, everyone!
他写一个co, 立马就会有无数叫co-*的项目出现。
他写一个koa, 立马就会有无数叫koa-*的项目出现。
他从npm社区诞生之初就开发了commander.js、node-canvas等著名模块。
随后他又开发了Express.js、jade、EJS等web开发系列框架和库。
最近一段时间,他把精力放在了运用ES6特性解决javascript回调金字塔的问题的Co库和下一代node web开发框架koa,而这两个模块虽然目前知名度不如express.js,但未来会是红得发紫的技术。
他创建并参与的开源项目实在是太多,以至于随便在他github上找个仓库, 就有上千上万的stars。
最近随着我在工作中无意得知并使用了co和koa来进行开发web后端开发,越发觉得这位TJ大神真是node社区的明灯,这一两年他在我心目中的地位逐渐上升甚至超过了node核心开发团队,相信很多人内心都有相同的感受。
他在博客上的告别文章,并不意味着他当即完全告别node开发,co和koa这俩大有前途的框架仍会继续维护,其他的项目会转交给别人维护(言外之意要将其他烂摊子全部丢掉?)。
在他的文中,他提到node不再适合当下他开发的软件了,并且他选择了Go:
If you’re doing distributed work then you’ll find Go’s expressive concurrency primitives very helpful. We could achieve similar things in Node with generators, but in my opinion generators will only ever get us half way there. Without separate stacks error handling & reporting will be mediocre at best. I also don’t want to wait 3 years for the community to defragment, when we have solutions that work now, and work well.
Go有表现力的原生并发特性对开发分布式任务非常有效,即便是ES6引入的generator也只能满足他一半的需求,node并没有独立的错误处理栈。TJ接下来因为工作需要,要从事分布式软件的开发,显然Go是更合适的选择。
错误处理一直是是JS遗留的比较深的坑了,需要一些时间来填。TJ不愿意花3年的时间等待node社区将坑全部填了,或许还表达出他对node社区和核心开发团队的些许“不满”。
个人认为,稳定、高性能、分布式的纯后台开发,例如交易系统,Go、Java和C++是更佳选择,尤其是专为分布式设计的Go,只是当下人才还比较少;
对于主要处理前台展现的web工程,node是不错的选择,毕竟性能也尚可,前端工程师可以“前后通吃”,还是看好node在将来会是前后端分工的分界线。
— 完 —
本文作者:光光
【知乎日报】
你都看到这啦,快来点我嘛 Σ(▼□▼メ)
此问题还有 13 个回答,查看全部。
延伸阅读:
Node.js 适合用来做 web 开发吗?
Node.js 与 Python 作为后端服务的编程语言各有什么优劣?