TJ 大大宣布退出 node.js 开发,转向 go,原因是弱爆了的并发和分布式 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
se77en

TJ 大大宣布退出 node.js 开发,转向 go,原因是弱爆了的并发和分布式

  •  3
     
  •   se77en Jul 4, 2014 37609 views
    This topic created in 4315 days ago, the information mentioned may be changed or developed.
    86 replies    2015-01-11 23:59:51 +08:00
    atcuan
        1
    atcuan  
       Jul 4, 2014
    看样子要好好学习go了
    loading
        2
    loading  
       Jul 4, 2014 via Android
    node 昙花一现?
    coolicer
        3
    coolicer  
       Jul 4, 2014
    I still plan on using Node for web sites
    Koa is the one project I’ll continue to maintain

    说明做网页还行 :)
    ine181x
        4
    ine181x  
       Jul 4, 2014   1
    我不习惯GO没有包的版本控制
    missdeer
        5
    missdeer  
       Jul 4, 2014   1
    est
        6
    est  
       Jul 4, 2014
    nodejs 兴起在v8,挂就挂在callback上。。。python也正在朝这个坑走!
    zhujinliang
        7
    zhujinliang  
       Jul 4, 2014
    node搞傻快型的应用还是挺方便的
    Daizong
        8
    Daizong  
       Jul 4, 2014
    做web开发没有问题,这也是node的优势场景,做别的就勉为其难了
    canesten
        9
    canesten  
       Jul 4, 2014 via Android
    @est
    JS是有办法在语言层面做CPS消除callback的
    Daizong
        10
    Daizong  
       Jul 4, 2014
    TJ用go也不是开发http应用,是做分布式系统开发,这个场景用node.js这不蛋疼吗
    Daizong
        11
    Daizong  
       Jul 4, 2014
    @canesten cps就是使用callback,怎么消除?
    se77en
        12
    se77en  
    OP
       Jul 4, 2014   1
    zeinimei
        13
    zeinimei  
       Jul 4, 2014
    go 和 node.js哪个做聊天室功能好?
    se77en
        14
    se77en  
    OP
       Jul 4, 2014
    @Daizong go 开发 web 应用也比 node.js 强,已经内置了网络库不说,还把 rpc 都实现了
    TangMonk
        15
    TangMonk  
       Jul 4, 2014
    最近正在准备用 nodejs,受到打击了。。
    chloerei
        16
    chloerei  
       Jul 4, 2014
    哭晕在马桶边。
    leecade
        17
    leecade  
       Jul 4, 2014
    大势已去, node 的天空一片灰暗

    不要怪 callback 了, 不都有 co 了吗, 主要是 go 太强了, 谁能组织发起一次 go 的抵制运动吗??
    civet
        18
    civet  
       Jul 4, 2014
    @missdeer 看不出笑点……
    canesten
        19
    canesten  
       Jul 4, 2014
    @Daizong
    骚瑞,我想说的是CPS变换
    chemzqm
        20
    chemzqm  
       Jul 4, 2014
    GO的并发处理,错误处理,工具调试,代码可读性都比JS要好一些,而node官方为了兼容老版本,早已经明确表示不会修复之前严重的设计缺陷。

    没有人愿意把过多时间浪费在该死的回调错误上面。
    est
        21
    est  
       Jul 4, 2014
    @canesten 理论是这样。。。实际就是没人做出来。。。。那个coroutine也比较丑,而且tj也说只能解决一半的问题。。
    tokki
        22
    tokki  
       Jul 4, 2014
    几周前就发现他一直在研究go的东西
    canesten
        23
    canesten  
       Jul 4, 2014
    @est
    老赵很早就做了一个Jscex
    类似的,做的比Jscex好的还有很多
    只是都没进入NodeJS的官方标准
    所以TJ的主要问题不在这个Callback
    比如他提到的
    refactoring with types is pleasant and simple, the tooling Go provides for profiling and debugging is great
    Go是静态的,这方面优势大的多
    ine181x
        24
    ine181x  
       Jul 4, 2014   1
    最近在看Elixir ,感觉也可以一试
    akfish
        25
    akfish  
       Jul 4, 2014 via iPad
    其实进来就是为了看看有多少人无脑跟风唱衰node。
    知道有坑绕过去,觉得不适用就换别的,多简单的道理。
    No silver bullet.

    个人痛恨callback,但转念一想,node用了js这种入门门槛低的语言,callback的坑恰好能过滤掉一堆低质量开发者。
    jemygraw
        26
    jemygraw  
       Jul 4, 2014
    欢迎访问 http://golanghome.com ,备注:此为广告。
    lemonlwz
        27
    lemonlwz  
       Jul 4, 2014
    该怎样还是怎样... go 与不 go 都无所谓.
    est
        28
    est  
       Jul 4, 2014
    @canesten 哎呀老赵的wind.js看来真是神器。
    chrishine
        29
    chrishine  
       Jul 4, 2014
    dropbox也把后台性能要求高的部分用go重写了.
    https://tech.dropbox.com/2014/07/open-sourcing-our-go-libraries/
    一直觉得语言不需要会太多,会C++,go,lua就可以了.
    se77en
        30
    se77en  
    OP
       Jul 4, 2014
    @est 用了类似 monad 的特性,有关 js 的 monad 可以看老道的视频
    WildCat
        31
    WildCat  
       Jul 4, 2014 via iPhone
    @chloerei 哭晕在厕所!
    S1ahs3r
        32
    S1ahs3r  
       Jul 4, 2014   2
    已入scala坑,从此远离纷争,专注逼格
    wb13
        33
    wb13  
       Jul 4, 2014
    @S1ahs3r 就是。随便拿个Akka来震慑你们。。。
    sanddudu
        34
    sanddudu  
       Jul 4, 2014
    @chloerei 我去天台l
    ShunYea
        35
    ShunYea  
       Jul 4, 2014 via Android
    那研究go看看
    se77en
        36
    se77en  
    OP
       Jul 4, 2014
    @wb13 说白了不就是 Actor 吗,还是管 Erlang 学的,三种并发模型 CSP,STM,Actor 各有千秋而已
    tabris17
        37
    tabris17  
       Jul 4, 2014
    @est 用Jscex不行么
    srdrm
        38
    srdrm  
       Jul 4, 2014
    看好go, node在go 面前,真的。。。。
    srdrm
        39
    srdrm  
       Jul 4, 2014
    @ine181x 除了这个还能找出多少麻烦的吗?可是其他语言一数一大堆呀
    wb13
        40
    wb13  
       Jul 4, 2014
    @se77en 嗯。这年头,比得是干爹。。。
    shangjiyu
        41
    shangjiyu  
       Jul 4, 2014
    刚想捡起nodejs 颇受打击。。。
    tabris17
        42
    tabris17  
       Jul 4, 2014
    个人理解Node.js根本没有并发吧,只是分成I/O和Work两个线程而已
    anewg
        43
    anewg  
       Jul 4, 2014
    语言学家真的好多。跟着新闻里各大神大公司的唱衰喝彩,在“哎呀不学了,这东西没前途”与“大神都专注研究它,肯定是看好它,赶紧跟进“之间无缝频繁切换。。。
    MaiCong
        44
    MaiCong  
       Jul 4, 2014
    艹 哭晕在测试
    KennyZJ
        45
    KennyZJ  
       Jul 4, 2014
    好多玻璃心
    给个有趣的统计 https://github.com/substack/npmtop
    zeinimei
        46
    zeinimei  
       Jul 4, 2014
    我刚买node.js的书你跟我说这个?
    skybr
        47
    skybr  
       Jul 4, 2014
    疲软在回调上倒罢了, 但是Go在分布式方面也没有类似erlang和scala akka这些成熟的解决方案啊
    cnbuff410
        48
    cnbuff410  
       Jul 4, 2014   1
    cookiebody
        49
    cookiebody  
       Jul 4, 2014
    Go社区有福了,因他们得了一位最好的程序员。
    est
        50
    est  
       Jul 4, 2014
    学NodeJS的不要哭!你们有机会1折甚至更低价收购一大批NodeJS书籍。
    TangMonk
        52
    TangMonk  
       Jul 4, 2014
    TJ 为何还是 Drupal 的contributions
    https://www.drupal.org/user/78427
    est
        53
    est  
       Jul 4, 2014
    @TangMonk 传说TJ是个笔名。。根本就不是一个人。
    cnbuff410
        54
    cnbuff410  
       Jul 4, 2014
    @est lol,那写这篇文章的是这个团队还是其中一个人呢?
    zaishanfeng2014
        55
    zaishanfeng2014  
       Jul 4, 2014
    语言党可以休已,累不累啊你们
    ohsc
        56
    ohsc  
       Jul 4, 2014   3
    语言党真肤浅
    zhangxiao
        57
    zhangxiao  
       Jul 4, 2014
    @S1ahs3r 哈哈!
    timonwong
        58
    timonwong  
       Jul 4, 2014
    文章里面好多感叹号
    dogfeet
        59
    dogfeet  
       Jul 4, 2014
    @akfish 赞同你的观点。
    NaN undefined null 什么 a = 0/0 a==a a!=a a===a之类的东西和JS史上最强的隐式类型转换规则,正好把我这种初学者完美的挡在了外面。
    hooluupog
        60
    hooluupog  
       Jul 4, 2014   1
    还有这个:
    0 > null
    false
    0 >= null
    true
    0 == null
    false
    0 <= null
    true
    0 < null
    false
    [1] == [1]
    false
    [1] < [2]
    true
    [] + []
    ""
    [] + []*3
    "0"
    Livid
        61
    Livid  
    MOD
    PRO
       Jul 4, 2014
    Node 核心团队的 TJ 是这位吧:

    https://github.com/tjfontaine
    akfish
        62
    akfish  
       Jul 4, 2014
    @dogfeet 所以我能用Coffee就用Coffee,虽然只是用语法糖解决了问题,但的确省了不少事。
    有说法就是JS是Web界的汇编语言,直接用JS找虐,不如用编译到JS的语言。
    darkcat
        63
    darkcat  
       Jul 4, 2014
    少了一个这样的人也无关紧要吧?
    cnbuff410
        64
    cnbuff410  
       Jul 4, 2014
    @Livid 看Node社区的说法,这里的TJ是Node ecosystem的核心,不是Node团队的核心
    Livid
        65
    Livid  
    MOD
    PRO
       Jul 4, 2014
    @cnbuff410

    这两个人的名字缩写里都有 TJ,我说到 TJ 是这位:

    https://github.com/tjfontaine

    而发博客是这位:

    https://github.com/visionmedia

    你们可以看一下他们页面右上角的 Repositories contributed to
    cnbuff410
        66
    cnbuff410  
       Jul 4, 2014
    @Livid 对,我就是说发博客这位是NodeJs ecosystem的最大贡献者。你说的那位是Node这个框架的贡献者。是不一样的。但很明显发博客这位的影响力要大得多
    hui
        67
    hui  
       Jul 4, 2014
    @Livid https://nodejsmodules.org 第一页出现次数最多的那个少年离开了
    jakwings
        68
    jakwings  
       Jul 4, 2014
    菜鸟表示,是时候再次向大牛看齐了……
    old9
        69
    old9  
       Jul 4, 2014
    玩腻了换个新玩具玩而已嘛,没玩腻的继续玩好了,用不着上纲上线的。
    yakczh
        70
    yakczh  
       Jul 4, 2014
    标题严重误导,没说并发和分布式弱爆,是说错误处理和callback nodejs的并发还是杠杠的 而且更多的是说兴趣转移了
    ianva
        71
    ianva  
       Jul 4, 2014
    TJ 一个人贡献了整个 node.js 社区 0.6% 的项目 https://github.com/substack/npmtop

    rank percent packages author
    ---- ------- -------- ------
    1 0.60 % 548 tjholowaychuk
    2 0.44 % 401 substack
    3 0.41 % 379 jongleberry
    4 0.40 % 367 dominictarr
    5 0.37 % 341 jonschlinkert
    6 0.37 % 337 sindresorhus
    7 0.36 % 331 juliangruber
    8 0.34 % 317 mikolalysenko
    9 0.31 % 289 raynos
    10 0.28 % 260 mathias
    11 0.28 % 257 hughsk
    12 0.28 % 255 forbeslindesay
    13 0.26 % 239 tootallnate
    14 0.23 % 216 clewfirst
    15 0.23 % 208 azer
    clowwindy
        72
    clowwindy  
       Jul 5, 2014
    nodejs 的错误处理是个大坑啊。
    pagecho
        73
    pagecho  
       Jul 5, 2014
    为何有种幸灾乐祸感 。。。
    把 NodeJS 捧上天的人,真是打了一脸。
    Aether
        74
    Aether  
       Jul 5, 2014
    @pagecho 因为大众习惯于兴起就追捧,衰落就踩脚。
    ChiangDi
        75
    ChiangDi  
       Jul 5, 2014 via Android
    所以说不要太盲目追求技术潮流,像 Ruby 和Python都是90年代就出来的了
    clowwindy
        76
    clowwindy  
       Jul 5, 2014   2
    具体问题具体分析啊。TJ 说的问题无非就是下面这几个,可惜 node.js 社区对这些问题不重视,优先级很低:

    unhandled error 难以排查,错误信息难以理解,如
    https://github.com/joyent/node/issues/7005
    https://github.com/joyent/node/issues/7804


    callback 处理没规范,没文档,不统一,如
    https://github.com/joyent/node/pull/6351


    error callback 混乱,有 bug,不统一,如
    https://github.com/joyent/node/issues/4574
    https://github.com/joyent/node/issues/5729
    https://github.com/joyent/node/pull/7732

    如果你一直看 issues,你会发现 error callback 问题没完没了。这是 node.js 一开始就引入的设计缺陷,导致 error handling 方式碎片化了。在大的项目里,这个问题会非常棘手
    clino
        77
    clino  
       Jul 5, 2014 via Android   2
    @est "python也正在朝这个坑走!" 哪有啊? 像gevent这类coroutine的应该基本不用callback吧
    iwege
        78
    iwege  
       Jul 5, 2014
    @clowwindy TJ说的都是调试的问题。而且他的库都是他自己写的。callback的确是一个很恶心的问题,使用过了promise发觉也差不多。不过nodejs还有一个proxy的问题。

    proxy使用系统变量的问题在我最后用的时候我记得一直没解。当时是想用hubbot做一些东西,然后发现hubbot没地方设置proxy,之后发现如果库本身不支持,就要去修改库。从我发现要修改不止一个库的时候,我就转用ruby / python 去写了。
    fansekey
        79
    fansekey  
       Jul 5, 2014
    @Aether 只是一个开发者不拿node开发并行分布式项目了,这个算不上node衰落吧。还是相当期待下一版的node的。
    openroc
        80
    openroc  
       Jul 5, 2014
    @missdeer 没有美工,我这个coder已经被逼成设计了。:(
    clowwindy
        81
    clowwindy  
       Jul 5, 2014
    @iwege 不光是调试问题,缺乏规范和一些机制导致开发阶段应该暴露的问题只有在生产环境上才能暴露。
    windyboy
        82
    windyboy  
       Jul 5, 2014
    node感觉在我自己使用的范围依然很好
    大神遇到的问题,目前暂时不需要

    不必大纠结,能解决问题就行
    kaelzhang
        83
    kaelzhang  
       Jul 8, 2014
    @clowwindy 一个人因为 he or she 的问题被开除了,一个人休产假,还有一个人各种事情都忙不过来,哎好想 donate 点钱,让 izs 全职写 node 啊。
    yangfanacc
        84
    yangfanacc  
       Nov 14, 2014   1
    133天后看到这个帖子,不过好消息是nodejs越来越强大了,
    fumer
        85
    fumer  
       Dec 28, 2014
    现在nodejs怎么样了
    liyangdal
        86
    liyangdal  
       Jan 11, 2015
    @canesten 搜关于Jscex的时候搜到你这个“类似的,做的比Jscex好的还有很多。只是都没进入NodeJS的官方标准”的回复,请问类似的都还有哪些?
    About     Help     Advertise     Blog     API     FAQ     Solana     3344 Online   Highest 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 146ms UTC 00:20 PVG 08:20 LAX 17:20 JFK 20:20
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86