微博上前端撕得那么狠,没撕到我们 Node 社区来....
发布于 2 个月前 作者 alsotang 4454 次浏览 来自 分享

是不是少了一点存在感 ლ(゚д゚ლ)

106 回复

来这里的本身就是支持node,如何撕

node 后端妥妥的

前端最近两年估计也要分流派了,会有注重页面编写的,有偏后端的

有啥可撕得…有这功夫还不如多看看代码, 思考思考对方如何实现, 开拓开拓眼界…

个人还是觉得前端人员就老老实实做前端,我个人还是比较崇拜张鑫旭大神的,他对css的理解很深,node更适合后台开发人员来学习,一个之前是写页面写客户端的人来做node架构,你觉得靠谱么?node给了前端开发人员一个接触后台的机会,而理解一门后台语言来说,前端开发人员和多年工作经验的后台开发人员所看待node的角度是不一样的,也有一些后台大神亲自跑过性能,说node并没有吹的那么神,我觉得,如果项目要用node,那必须架构层是一个经验老道的后台开发人员,具体代码可以让前端开发人员来做,人类社会是一个群体合作社会,没有多少人前后端都精通,十个全栈九个坑

说起微博,我比较同意啊当的观念,但他说话方式有点偏激,惹了很多人

我觉得是时候发展一下咱们的官方APP应用了😂因为想要撕逼就要随时随刻都能回复~

来自酷炫的 CNodeMD

撇开技术不谈,那个阿当连基本逻辑都不过关

@xiaolongXL node最好的归属就是前端工具链以及作为后端和前端之间的桥梁

node 已经被抬出场外了,只从tj 去研究go node这几年没什么大发展, 5.0出了也没什么用, 看看前端react, 过2年 前端基本就是react了. html 和css都不用学了. node是啥, 不过是php ruby 变种

没想到这么简单的东西总是会不断的被炒。

node只是一个运行环境。 只不过这个运行环境是为了高性能服务器而创建出来的。 所以node首先是服务器环境。也就是通常所说的后端。 node从创建之初来看本身跟前端没有任何关系。

但是因为目前几乎所有的前端工具都是建立在node之上的,所以node在前端生态圈里有很重要的作用。 这是几个很显而易见的事实,但是如果有人对于概念不清,就可能会混淆前后是什么,从而导致对node的认知错位。

关于如何区分前后端,可以参考文章: Web开发的前端与后端的界线在那里

难道唐少想撕?

From Noder

那个阿当太逗了,这个时代任何东西都在高速发展,如果连一点求知欲都没有,很容易就会被这个时代抛弃。基础固然很重要,但是不会这些先进的生产工具,生产效率没有提高起来,又哪有时间花在其他事情上。多关注,多学习你所在行业或者相关行业的发展,准没错。至于Node,是整个前端的关键,发展空间非常大,其他大厂们把它弄得更好~~

前端node偏向工具,后端node偏向业务

搞个话题,让大神撕逼,我们围观。

I‘m webapp-cnodejs-vue

真阿当药丸。是我瓜皮说的。

百花齐放,百家争鸣

@soliury 不想不想。。。。撕不动。。

反正我觉得这次撕逼,毫无意义啊

作为一个有逼格的社区,撕逼好么?

看来年终奖没发好。

就一sb,说比如用node做伪服务端路线。。。。笑死了。。。。

无数人黑node,范凯算一个,可是当你真的足够了解的时候,所谓的黑是因为没用明白,或者当时某种场景,承认不承认还重要么?

架构本身就是因地制宜的,演进的,so。。。。扯那些都没有用,解决问题才是王道

悟空给唐僧画了个圈,有人给自已画了个圈

围观国外的新闻, Node 有什么有点没什么有点已经盖棺定论了. 真的拼并行计算, 被 Erlang 甩几条街, 轻量级线程实现, 基于 epoll 各种语言也都能实现出来, 并行运算的可靠性, 进程间通信, 反正也不是 Node 的强项. 然后比比什么东西新手上手快, 各种号称牛逼得不行的语言 Haskell, Clojure 三下两下吓跑新手, 也没什么好说的.

倒是前端嘛, React Angular jQuery 相互还不服 - -!

@jinwyp 能跟ruby和php相提并论,难道这个技术还不算成功么。。

有那个撕逼的时间还不如多敲点代码,毕竟实践才是检验技术的标准

真阿当的话有些极端,有些人听了可能会不舒服,但他说的问题有一部分是正确的。大家不要因为忙于站队而忽略了技术本身交流。

他强调基础很重要,基础牢固了,这框架那框架本质上都一样的。基础不牢靠,就会被一个个看似牛逼的技术推着往前走,一般来说,越是基础不牢靠的,越有依靠某种新技术“翻身”的倾向,也越喜欢追新技术。阿当强调基础的重要性肯定是没有错的,但基础和潮流并不矛盾,两者可以并行,但如果只追求潮流,忽略了基础,显然是非常有害的。阿当错在的将两者对立起来了,用基础去否定潮流。

前端其实是很无奈的,标准,平台,语言都是个大杂烩。前端很多看似潮流的东西本质上就是在填坑而已,所谓的潮流更大程度上是拼爹,某个技术有个好爹,大家便趋之若鹜了,但有多少人真真切切的思考过这个技术的本质和背景呢?这种浮躁的暗流才是需要我们警醒的,大家都想当弄潮儿,但潮水终将退去。放下成见,真诚的交流才是正途,撕逼对大家都没好处。

大家对javascript这门语言怎么看?很多年前刚接触的时候,觉得挺简单方便的,但用得越多,反而觉得越来越难了,这是一门典型的入门容易精通难的语言,这种模式的语言还是挺招人喜欢的,跟暴雪的游戏是一样的道理,大家都能玩,有群众基础,又有很好的区分度,容易产生大神。大神 是怎么来的?是坑出来的,坑越多,大神就越多。ES6出来后,我第一个感觉就是javascript看来是走跟c++一样的道路了,原来的坑还在,又默默的挖了不少。新加入的各种语法糖,简直是各种门派的大杂烩啊,已经集合所有编程范式,这是要召唤编程小怪兽的节奏啊。。。

如果我也极端点,我认为javascript要重新设计,推倒重来,这个星球上还找得出其他像javascript一样的语言,被各种重新设计,各种编译的?但我并不极端,javascript是工程产物,是要权衡要妥协的,他不能跟过去一刀两断,他也无法自己的选择未来,他只能走一步算一步。这才是前端悲哀的根本,没人能改变。大家继续去追新技术去吧。。。

真阿当的问题是无知,而不是什么强调基础。 交流是必要的,不懂装懂则是可耻的。 自己知识结构陈旧被时代抛弃还找理由。

基础与潮流从来没有矛盾过。追求新技术从来不会影响你的基础。 那些追不上新技术的人才是基础有问题的人。 能追上新技术人一定基础没问题。 新技术从来不会向基础好的封闭。

真阿当这些人对前端的了解估计也只是皮毛而已。 连sass都不知道,不接受的前端还算个毛的前端。 这种人写书一定会坑死不少人。 这也是我从来不看国内技术书的原因。

@calidion 阿当竟然如此不堪?我表示很震惊啊,我大约知道了为什么这么多人要喷阿当了。

@coordcn
首先是分不清node是前端还是后端, 然后是不知道reactjs的应用场景 再次是抱怨新技术 最后发现他什么都不懂。 被ror坑了,却没有发现ror的好处。 并且也没有能力解决ror所出现的问题。 然后发现丫是蟒蛇教的教众,基本可以确认其带有很强的宗教属性。 然后攻击github star多的人。 然后拿ant这种不成熟的前端方案说事(按这种思路,我也可以声称几年前做过跟reactjs类似的工作), 总之,你看完他的博文就知道他的水平了。

然后攻击nodejs,他根本不知道nodejs的优势是什么,瞎攻击。

@calidion 不好意思,我也攻击nodejs的,我黑得比他厉害。。。

如果他是蟒蛇教的,我就是大C教的,跟我一起大声读:

C语言是全宇宙最好语言。。。。

lua是全银河系最好语言。。。。

而javascript只能统治太阳系。。。。

node在我眼里只适合做前端工具链,做做模板渲染,做做小项目。node就是大前端的命,充其量部分替代PHP,JSP。语言是硬硬伤的,具体原因我也说过了,除非javascript推倒重来,但这并不可能。

另外看到大城小胖吐槽阿当的代码,下面各种吐槽,又有一个贴了些c代码,对于那些吐槽魔性代码的人,我建议去看看nodejs最初几个版本的http_parserd代码,再看看现在的http_parser,你没看错,各种goto,各种魔性,各种长函数,但我要告诉大家的是,用c些parser就是这个尿性,代码首要是正确,然后才是好看,有的时候好看也要给性能让位,综合各种要求之后,有些魔性其实是必须的。见多了,也就不会奇怪了,没有字典的语言可不是得一个一个字符去比较?当然阿当python那么用也不是太妥当。

@coordcn 我觉得你去lua社区黑node应该效果更好,哈哈

@calidion 棒棒哒,你说的是最中肯的,欣赏你这种有理有据的回复

@i5ting 看到第二个赶我走的了,这里死粉那么多,还怕我黑?

我黑我的,你觉得不对,可以讲道理,你敢我走,就没有道理了,这样显得你不够包容。

@JacksonTian 我说的是反话,没看出来吗? 未来肯定是nodejs + angular2 前后端集成一套的大而全的框架. 有点像meteor,那样. 但前后端可以分离,不想meteor 集成的太紧密.

至于react 今年就不会火了, 这东西如果真成为前端第一的框架不过是又一个flash, 各大厂商不会让react好过的.learn once ,run everywhere 肯定有一次成为笑话.

@jinwyp react 那是【learn once, write anywhere】

@coordcn 没这意思,看你们黑来黑去的也挺好玩的,哈哈

@alsotang 理想很美好啊,和全栈是一样的

@coordcn

  1. 小项目如何定义?

  2. 大前端如何定义?(个人比较反感大前端的提法,估计又是前端盲提出来的) 即有大前端,那必定有小前端? 根据我的看法一定是一些培训机构的无良培训师提出来的。 当年div + css的提法到现在还在毒害一些小白,现在又出来大前端说来毒害小白。

  3. basic语言一样可以写出来word这样的强大功能的软件。

语言有领域强弱这是没有疑问的,问题在于你知道他们的强弱在那里吗?

根据我所了解的情况,node语言的核心优势有三个:

  1. 高性能的异步网络IO
  2. 可实现前后端一致的语言环境,全栈化
  3. 基于npm包机制社会化协作机制。

2, 3 目前没有任何一个语言是可以超越的。

node/js的劣势是:

  1. 异步导致回调过多(目前async/await机制算是一个相对比较终极的方案,只要解析器完善,后继就不会成为大问题)
  2. 大部分后端开发人员对于异步场景不熟悉
  3. 时间过短,生产环境的成熟度不够。

至于语言层面的问题,我反而觉得是最小的。 不管是ES5,还是ES6都可以解决绝大多数的问题。 用不用transpiler本身都是无所谓的。

我想说的是,你对node还欠了解,你对前后端还没有很清楚的划分。 你可能也不懂php当年比nodejs更简陋。 如果你了解过CGI,你会发现CGI简直无法进行象样的web开发。 所以扯什么nodejs只能做模板之类的话,表示你离懂nodejs还有距离。

我本身算是做后端的,觉得node算是跨界的东西吧,最适合的地方还是最后一步的整合服务,给最终用户交付。

nodejs-laji.jpg

发这个图会不会被打。。

我只是来活跃下气氛

采用NodeJS轻松套页面 是我作为一个后端开发(Java为主)的一点看法,仅供参考

老妈开发了新菜,好吃,连吃了几天;妈,我们能换下口味吗,又开发了新菜,又连吃了几天……

日子还是要过的 哈哈

我乱说的

我觉得越来越多的人黑node 说明其他语言的从业者开始害怕了 是不是这个道理

看你们说了这么多,感觉这次集体大撕逼毫无意义

来自酷炫的 CNodeMD

@calidion 你了解过我说node哪些不好么?你就断定我对node欠了解?那我是不是同样可以拍脑袋断定你其实才是对node欠了解的,是属于刚学了点皮毛,还没来得及踩坑的那种。

小项目就是三五个人,甚至一个人就能从前干到脚的,也就是所谓全栈能干完的。所以我认为一些外包项目,创业原型比较适合nodejs干,这样的确可以节省成本,团队可以由个把大神带起来。有的人可能要拿什么阿里,paypal来反驳,这些不都是大项目么?这些的确都是大项目,但人家把nodejs就是替代了原来PHP,JSP干的活,只是个模板渲染器而已,核心的还是java干的。这种模式也是大前端的由来,大前端恰恰是这些应用node的大公司提出来的,nodejs就是干这活的。人阿里人说至少在短时间内看不到node可以替代java的希望,全栈呢?全栈呢?全栈呢?说好的全栈呢?其实并没有。在小项目里玩玩还可以,大项目里并不行。顺便说一句,如果阿里的页面不需要在服务端渲染的话,node层都不是必须的。

不行主要还是语言方面的原因,javascript都已经跟不上前端工程的发展了,还想将他大规模的应用于后端?前端看似热闹,新技术层出不穷,其本质大多数是用新瓶装旧酒在填坑,大多是解决前端不成熟造成的问题。要解决这些问题,最极端,最爽快的是推倒重来,这样就没有历史包袱,语言就能重新设计以满足现代前端的要求,javascript就能真正的符合工程化要求,但从现在的条件来看,这并不可能。世界上还有哪种语言如javascript这样语法被各种重写,各种编译?不要告诉我这些才是真正的创新,前端大部分精力恐怕都花在了这种无奈,无聊的事情上了,这恐怕才是很多人厌恶前端新技术出得太快的根本原因,这边还没整明白,那边创造了一门新语言,新技术。从这个角度来讲,真阿当喷得是有道理的,人的时间和精力毕竟有限,但很多人不自觉的把时间都浪费在了追逐新语言,新技术上,真正的编程功底却是要打问号的,文字可以吹牛逼,github上的代码却不会说谎。

1.高性能的异步网络IO

nodejs刚出来的时候提高性能还行,现在来讲高性能?跟谁比?跟PHP比么?那也得跟老版本的PHP比。现在比较聪明的都不提高性能了,同样用v8,nodejs这种纯回调的竟然不如fibjs性能好,跟go差距也很大,这高性能的梦恐怕至少是三年前做的了。不知有汉,无论魏晋啊。。。

2.可实现前后端一致的语言环境,全栈化

我讲两句话与大家分享下:

nodejs最不缺的是人,最缺的也是人。

不要以为你会javascript你就是全栈了。

javascript这种入门容易,精通难的语言。这个或许 @i5ting 是深有体会的,他为此还发过文,吐槽过。大家最后给出的建议是制定团队统一的编码标准,严格执行,不行的请出团队。javascript语法越来越膨胀,很多人,很多团队,其实只是在用他语法的一个子集,这从一定程度上缓解精通难的问题。大家在一起还是以高效完成项目为中心,至于回字有几种写法交给孔已己去研究吧,但javascript偏偏就是这种容易产生孔已己的语言。。。大家还在研究继承有几种实现方式么?我觉得没必要研究了,定死一种写法,其他都是错的就行了,简单粗暴,效率才会高。

3.基于npm包机制社会化协作机制。

碎片化问题是个大问题,javascript这种语言的特性决定了他特别适合做一些小而美的项目,nodejs的包茫茫多,真正精华的有几个?我用某包,某包用另一个某包的某版本,但另一个某包的某版本有bug,但新版本已经修正了。这个时候你要不但要跟某包,另一个某包也要跟,大家可检查下大家所用包依赖树,如果这就叫社会化协作的话,我宁愿稍微封闭点,至少做一下官方推荐和审查。事实上我们经常出现在同类包中不知道选哪个的尴尬,技术选型的能力已经能区分菜鸟和大神了,就凭这点,一些大神心里要暗爽不少次了。。。

1.异步导致回调过多(目前async/await机制算是一个相对比较终极的方案,只要解析器完善,后继就不会成为大问题)

没有显式异步的异步才是终极的,任何显示异步方案都会存在传染性问题。有的人担心没有关键字,不好区分,那函数加个async修饰不就行了?这比非得在函数外围做包装,然后再在编译阶段再转换要简单直接得多。

2.大部分后端开发人员对于异步场景不熟悉

开发nodejs的在你看来是后端还是前端?你这话说的,后端怎么就不熟了?没见人吐槽nodejs起了个大早,赶了个晚集么?很多后端只是没有太高调而已,当nodejs还陶醉在回调坑里的时候,人就async/await了,人就coroutine/goroutine了,人就在用同步代码写异步程序了。建议你去看下openresty,了解下别的语言怎么玩异步的,如果对nginx不熟悉,看不明白,你如果对node理解真的比较透彻的话,你也可以看看我的实现 https://github.com/coordcn/LuaIO ,代码量比openresty少得多,是基于libuv的,你既然自觉对node的了解比我好得多,应该能看懂怎么实现的吧。

3.时间过短,生产环境的成熟度不够。

不成熟的并不是环境,而是人。nodejs最不缺的是人,最缺的还是人,即便是小项目,能够做全栈也是极少的,不要以为自己会javascript就是全栈了。

@coordcn 看来你真是毛都不懂。 一方面不懂前端,一方面不懂全栈。 全栈是指技术所有覆盖的广度,并不是马上应用。 前端与后端分不清是通病,我之前已经与人讨论过。 大前端的说法本身是不成立的。既然你认为我不懂,你给出一个明确的大前端的定义? 我看你连全栈是什么都不懂。

  1. 关于性能
    你拿出来数据。说事。我说的内容是已经有数据证明了。 你的东西还没有见到过数据。 不管是PHP老版还是新版,有数据表明PHP的性能超过了nodejs?

  2. 关于包机制
    那么麻烦你举个已经解决这类问题的包机制。如果没有,这种抱怨只能表明你的无知。 只要你证明有比npm的包机制更好的,我明天就可以换成他作为开发言语。 你的luaio有比npm更完善的包机制吗? go有吗? 按你的意思。linux有这么多分支,根本不如windows有价值?你会比较吗? 你怎么不用oc写服务器? 那个真阿当说过用ant作前端工具链,你也可以用lua做一个哦。我看好你。 不过,对于你能不能做起来,我想说,我得静静。

    下面很多内容我就不想驳了。呵呵。

目前利用nodejs做很多前端工具链的工作,刚好说明js语言本身有优势。 一方面不需要重新学习新语言 一方面可以提高效率集中精力做事情。 不管是前端还是后端都能很好的基于js语言沟通,降低了沟通成本。 既使不是人人都是全栈,也是利大于弊。 对于追求更高性能的后端技术,使用go, c/c++, java完全没有问题, 但这并不影响node是后端,node可以提供前端工具链,node可以更好的辅助前端开发。

这种优势在浏览器能支持多种语言解析DOM前,别的语言不可能有的。

我是来和稀泥的,oc写服务器是不靠谱的,但是swift写服务器是靠谱的,目前已经有类似express这样的了,而且支持linux,所以未来是一个不错的方向的

@calidion

@i5ting 来看看这个有理有据的讨论吧。这可是你对这位朋友的评价,反正我是各种不懂,各种不懂。。。

1.关于性能

https://cnodejs.org/topic/5672c03fcd926feb0c0c8ebc

我以为你看到 @xicilion 的测试了。

LuaIO我自己测试下来,单进程裸socket性能是ndoejs的两倍,源代码就在那里,github能上了,你己编译了跑一下就清楚了。

./configure之后进/out目录 make一下就行,生成的是debug版的。linux3.9以上内核支持多进程。

2.关于包机制

linux碎片化问题大家讨论得还少么?

npm不但存在碎片化问题,更存在包质量和包选择问题,如果这些对你来说,都不是问题,你已经可以被称为大神了。

oc是什么鬼?不懂啊。。。

LuaIO现阶段还没有好的包管理模式,但LuaIO不好,并不代表我不可以说npm不好,同样linux碎片化了并不能证明npm碎片化是正确的。

你这种预设我不懂的讨论模式已经封死了大家交流的路径,继续下去也没什么意义了,建议还是多了解其他框架,其他语言的实现,有对比才知好坏,否则容易以为自己掌握的总是这世界上最好的。

@calidion

怎么变理性了?

我的观点你也敢认同???

1.node前端工具链

2.模板渲染,减少原来前后端沟通成本。

3.小项目全栈。

我觉得你还是拒绝为好。。。

ES5/ES6的演进确实反映了一些问题, 还有npm3与bower的争论也是反映了一定的问题。 ES6/ES5的演进,表明js语言越来越后端化,工程化。 npm3与bower的争论表明前端与后端的包管理是不是要分离开的问题。 有人支持合并,我更倾向于分离。 但是我希望两个阵营都能很好的发展。 有了A不代表B就是没有价值的。

有了PHP还可以有nodejs. 有nodejs还可以有go. 当然也可以有luaio。

但是前提是你能分清楚各种的优劣势。 不同的语言与环境一定有不同的优势与劣势, 有时候有客观数据,有时候更多的是选择的问题。 最重要的前提不是你选择了什么,而是你知道选择后会面临的问题。

我并不试图说服任何人,但是我希望讨论的前提是有个清楚的概念。 别拿一个错误的,不可验证的概念糊弄人。

作为一个尝试,我肯定会支持luaio。 但是我希望luaio不要试图在没有发展成熟前靠攻击nodejs吸引眼球。 虽然我有一些对于语言的基本判断,但是我尊重选择的自由,我不会反对别人创新或者重复造轮子。 但是前提是请别在没有数据时就胡吹。

我比较尊重以下几点: 1.概念清楚 2.数据证明 3.逻辑通顺

如果我的语言过于犀利,我在此深表歉意。

@i5ting

swift听说是用来替代oc的,有这种说法么?

我比较老套了,还是用c,是不是很low啊。。。

@coordcn

减少前后端的沟通成本,并不是在模板上减少的。 不要曲解我的意思。有没有模板都是降低了沟通成本。

我没有同意过你的所谓小项目全栈。 全栈就是全栈,跟项目大小是无关的。

前端工具链我从来没有否定过。 node本来就是提供了很好的前端工具链。

@coordcn

  1. 我没有说过nodejs的性能是最高的。
    同时我根据你的语言理解似乎是你想证明新版的php 性能比nodejs高。 至于有语言有框架比nodejs性能高我一点也不怀疑。nodejs刚出来的时候就不是性能最高的。 要想性能最高肯定是C了。
  2. 关于包机制不要耍流氓
    我只要你给出来个经npm包机制更好的就服了。讨论其它的没有意义。 关于包机制的比较,你可以看下。希望你能对lua的包机制作出更大的贡献。 http://blog.versioneye.com/2014/01/15/which-programming-language-has-the-best-package-manager/

全栈只是个泛称吧,不然就只能传说了

@calidion

我更多的时候在吐槽的是javascript语言,从某种意义上说,nodejs成也javascript,败也javascript,这门语言是工程的产物,设计上瑕疵太多,前端很多的坑,都跟这门语言有很大关系。那么多衍生的语言就说明了这个问题,大家都想用自己的方式避坑,各种新语言,各种编译,最根本的还是语言本身的问题太多。

但我没有有否定javascript的意思,我恰恰是希望他可以变的更简单,更统一。我也没有否定nodejs的意思,但是我认为有不好的东西就应该批评,没有讨论,没有不同的声音,哪里会有技术的进步?显式异步已经被证明对编程是有影响的,从最早的回调,到现在的generator,再到async,这个发展路径其实就是证明了最终的结果,那就是没有异步的异步,就是形式同步。我写luaio是受fibjs的启发,后来又接触了openresty,这些前辈都证明了形式同步是可行的,很多人习惯写同步代码,那形式同步如果被证明是可行的,我们还要显式的异步做什么?人人都享受异步带来的好处,那是一件多么惬意的事情?

我否定的是一些定势的思维,认为前端这种折腾就是创新,就是理所当然的,是不可批判的,谁批判就是不懂,就是不思进取,不跟随潮流。我否定的是某个技术容不得不同的声音,觉得是自己是最好的,宗教式的信仰。nodejs社区封闭和自我陶醉才是最危险的。

我并没有攻击nodejs的意思,更不是黑,我提出的问题都是真实存在的,LuaIO本身依赖libuv,libuv又是nodejs的核心,nodejs发展得好,LuaIO才有可能好。你如果不再次提性能,我也不会拿性能来比较,这种单纯的性能数据其实并没有什么卵用,项目的可用性,稳定性才是根本,LuaIO跟nodejs,openresty,fibjs是没法比的。所以我不会通过攻击nodejs来宣传自己的项目。

我说话也有比较冲的地方,我向你道歉。技术交流,不伤和气才是根本,不过程序员大多喜欢较真,这即是好事,也是坏事。

@coordcn swift就是替代oc的,性能比较oc好非常多,和c差不多。go到现在才1w多star,swfit几天就2w多了,还是很不错的

@calidion lua好像就一个luarock吧,没听过更好的

@calidion 更搞笑的是lua没有一个好的社区。。。。

@coordcn

跳帧比较厉害。 我相信我们一开始讨论的是概念问题。 比如那个什么真阿当认为 node是伪后端,然后你又提了什么大前端。 我认为很多人不去区分概念,导致无法沟通。 大前端是什么鬼?你不懂,我不懂,大家都不懂,然后人人又言必大前端? 如果前端与后端都没有区分好,又来个大前端,结果鸡同鸭讲,好象人人都懂,实际是谁也没有真正搞懂。 在中国概念的错误的事情还少吗? 你再好好翻翻你对nodejs的评价。

第二个js有问题,其它语言一样有问题。 讨论js问题本身并没有什么。 但是别错误的理解。 python升级到3. php升级到7。 都是在解决问题。 php一出来的时候问题更多。

语言的发展跟商品的流通是一样,是满足需求用的。 如果不能满足需求可能即使你做的再好,也不见得有很多人用。 所以语言的流行度与语言本身的优势没有明显的关系。 反而跟环境的关系更大。

你考虑下为什么是现在lua开始流行,而不是vb? 是不是跟你基于nginx还有在游戏行业流行有关呢?

@calidion

再次强调下,大前端不是我定义出来的,至于怎么理解,各自有自己的理解也很正常。

python和php有说自己是全栈么?

nodejs最不缺的是人,但最缺的也是人。

不要以为会javascript就是全栈了。

不是说语言不能有缺点,但脱离了其适用范围,就会更突出,这也是为什么nodejs招聘这么困难的原因,是人都可以说自己会,但真的会么?

我选择lua不是因为他流行,而是因为他符合我的要求,我能够快速的掌握。我放弃node,根本原因是我觉得很多东西已经超出了我的能力范围,我c++不行,v8绑定搞不来,但我c还可以,lua绑定半天就学会了,我想我都能半天就学会的,其他人就应该更简单,这么简单的语言,我肯定喜欢了。如果你愿意挑战复杂的东西,你可以试着去读一读node的stream实现,我用lua实现的stream比node简单得多,read是形式同步的,write考虑性能还是用的callback,处理方式和nodejs类似,反正我读的时候,已经被绕昏了,也许是我脑子不灵光吧,不能在各种状态之间来回切换。

流行真的不是选择的理由,自己的能力才是根本,我能力就到这块了,选择一个简单点,绝对没有错。至于讲生态,社区,node刚起步的时候有什么?

我先Mark一下,继续看。

来自酷炫的 CNodeMD

@coordcn 关于“流行”,下面是我2009年跟同事分享的一段文字

流行 = 平庸 我以前和其他同事讨论过这个问题,我的看法是用最流行的做法通常会做出流行的应用,但是按照对照着软件开发来说,这通常意味着“平庸”的应用。 这种应用在定制开发或者内部企业的专用应用有很大的需求,这种应用的一个流行的称呼应该是“足够好的应用”

我们现在需要面对的问题,这种流行的做法已经不能符合要求了。所以需要超越流行了。超越的意思是站在前人的肩膀上做的更好,并不是全盘否定。

一种架构得以流行并不会是一个偶然因素,这种架构必定有过人之处。我们需要的是找出这些过人之处,客观的加以利用。能用整包的用整包,能用代码的用代码,能用设计思路的用设计思路。总之程序员的“懒惰”精神不能丢。。

关于开源软件

我们的物理架构基本完全是用流行的开源软件来构建的。 换句话说,我们不是不使用流行的开源软件,而是用另一种方式来使用,这种方式会更大的增加这些开源软件的价值,我个人认为这是对于开源真正的“尊重”。 开源真正的价值不完全在于提供他人可以直接使用的软件包,真正而尊重开源的方法就是深层次的使用,欣赏,改进。

@chenxiaohu

你可能误解我的意思了,我跟 @calidion 说的是我选lua不是因为他流行,跟你说得好像并不相关。

@coordcn 明白,对大部分人来说,随大流还是相对合适的,没有完美的技术,只有合适的技术,但是搞明白流行的本质为己用最重要:)另外,每个人处的位置不同,看法想法不同是最基本的,很难调整

@xadillax 你俩这基情。。。。

再这么撕下去,这个页面滚动就有点卡了,这毕竟不是原生界面啊

所以只有我一个人不喜欢 ES6 么?

@xadillax 我也不不喜欢,哈哈

看撕挺好,开阔视野,拓展思维。 虽然都在撕,觉得都说得挺有理的,竟然没觉得有什么矛盾的地方。。。

那啥,scheme大法好。我不是针对javascript,我是说,所有语言都是。。。

@xadillax 我也不喜欢,没前途

@xadillax 本来我是全部抵触的,现在喜欢上 generator 了。但是 class 和那个匿名函数之类的还是不接受

我后端开发4年+,以前都是用的java,自从node出现之后,一句话,力挺nodejs,我感觉node是一个解放后端生产力的工具,社区和生态非常赞,各种ge,各种yo,各种工具,而且配套的东西越来越完善,最关键还都开源,现在的国内后端可能还是java占优,但是从发展角度看,我觉得3-5年内node必然会占据优势,随着淘宝这种大厂的技术布道,以及踩坑的速度,一旦大阿里完成java转node服务器的切换工作,各种技术积累就完成了,这时候,node成为后端必备语言,指日可待

@i5ting 那现在用typescript还是es6开发node好点啊。。

来自酷炫的 CNodeMD

啊,哪里在撕? 我最喜欢凑热闹了,来晚了

@rpdgcmyk 找到哪里有撕吗,我也想看

感觉他们撕逼斯的好辛苦啊

@jinwyp react还早,css很差的前端我是不敢用,h5移动端的市场也很大,node的性能虽不拔尖,但绝对堪用,而且在前端工具开发方面是有绝对的优势,你看看nginx-lua性能比php,python高了不知道哪里去,也不见几个网站用,一个是人才成本,一个是生态成本

不错,继续撕,撕一件少一件

好腻害的样子,撕吧撕吧,坐收渔翁之利。

现在是撕过来了啊

过个年都被 @ 进来。那就做个广告吧,欢迎大家使用 fibjs,0.2.0 新春大礼震撼发布,超强劲的改善包括但不限于: 重构对象回收系统; 全新的多线程 fiber 内核,更快,更省,更优雅。没错,多线程 fiber 引擎!!! 支持多 vm 并发,充分利用多核。同样没看错,在多线程 fiber 引擎的基础上,fibjs 又开启了多 vm 的时代。

@xicilion

vm之间能够共享数据么?能够给一点更详细的介绍么?

我采用的是多进程方案,我很偷懒,直接用TCP_REUSEPORT来实现的多进程,代码量比nodejs少得多,但兼容性不好,windows,linux3.9以下版本都不支持多进程。进程之间要通过第三方来共享数据。

@coordcn 不能共享数据,只能通过数据通讯交互,所以我把它封装为 rpc 了。用起来比较方便。 http://fibjs.org/multithread.html

来晚了,大家好像没兴致开思了。。。

大神的世界,我们小民看不懂。我只知道我以前写Java时,老板让我写页面;我写页面时,老板让我写PHP;好了,现在终于只用JavaScript语言了,又可以写前端又可以写后台,何乐而不为之。 不是每个公司都分前端和后台的,反正我遇到的都是前端后台都要写的。不是每个网站都一定要高性能的,500块给你做一个公司宣传网站你还能搞集群? 技术是技术,市场是市场。如果我老板,我就招会JavaScript的,原因很简单嘛,可以少招一个人。所以我现在要做一件事,就是让JavaScript程序员的工资降下来(普通的),这样老板招得多,学习的人就多,这个事业就有发展了。

@zouzhenxing

你最后一段话说到了重点,但更加重点的是,能够达到全能的价格降下来是不现实的,javascript语言本身的特点就决定了精通是很难的,何况又是是前后端都真正精通的牛人?

有的人在为javascrirpt快速的版本迭代,吸收各种语言的特点而欢欣鼓舞。

如果javascript本身设计是合理的,需要这么快速的版本迭代么?

如果javascript本身设计是合理的,需要把自己进化成四不像么?

javascript,有的人说javascript要替代java,我认为用javascript要成为java更加确切,当javascript吸收各种语言的特点,进化成编程语言怪兽的时候,那个简单易学的javascript已经消失了,学习一门语言的成本将超过几门语言。

@coordcn 不管是JavaScript要变成Java,还是JavaScript要代替Java。做为一个底层的码农,我只关心,现在简单易用就行了。那些伤脑子的事情,大神们在上面顶着。 再说拉,每什么让每个人都精通?一个项目里面,都是一个大神带一帮小弟。让一公司全招大神搞项目,这项目肯定得完蛋。市场上小弟的需求量肯定是大于大神的需求量的。小弟的工资降低了,项目成本降低了,做的人多了,基数就大,小弟成为大神的几率就增加了。 和其它语言相比,JavaScript语言最大优势在于只要写网页就要用、就要学。就我个人经验而言,一个会简单JavaScript语法的大学生,我能在1个月内教会他使用Nodejs开发网站。Java行吗?

@zouzhenxing

我们不能低估那些高薪招聘jser公司招聘人员或老板的智商,这门语言的特点注定了靠谱的开发人员难以培养。

nodejs最不缺的是人,但最缺的也是人。

不要以为会javascript就是全栈了。

会javascript的PHPer,javaer也没见多少整天吹嘘自己是全栈,很多时候,越是叫得响的,越有可能并不是那么回事。

任何时候我们都要谨记,talk is cheep,show me the code。说实在的我并不相信你能够让一个会简单javascript语法的大学生在一个月内学会Nodejs开发网站。当然那中有一定javascript基础的原后端人员除外,hello world也除外。你应该明白一个道理,如果真能1一个月速成,nodejs程序员的价格早降下来了。

当然,你可能有你的独门绝技,可以帮助大家降低培养成本,进而降低开发人员工资。你的想法是好的,但关键是实践,还是那句话,show me the code。

我在上面也讲过,nodejs适合创业公司做项目原型,但随着公司规模的扩大,必然会引入java等更加成熟,稳定的语言框架。前后端统一语言可以节省成本是个伪命题,你认为可以节省了,其实是你根本没那个需求。谁会在意一个小公司的后端系统的稳定性和安全性,谁又敢不在意阿里这样的公司的后端稳定性和安全性?

@coordcn 我从来没说全栈,我跟本不懂全栈。另外,一个月后,我让我的学生来跟你聊。 自豪地采用 CNodeJS ionic

@zouzhenxing

如果你不追求全栈,可以无视。至于你的学生,或许不需要来跟我聊,我又不清楚他们的背景,天知道是不是托,随便找个有后端功底的,稍微懂异步的,整一个不太复杂的网站要求低点的话也就能算会了吧。。。

跟你的学生相比,我更希望看到你的代码。

我其实是了乐见你能够挑战各公司招聘人员和老板的智商的,我想如果你成功了,这些人也是乐于承认自己智商不行的,因为你的想法如果能够实施的话,的确可以帮这些公司节省成本。

@coordcn 你呀,真是够认真的

@coordcn 你是大神,我是小弟,不用比代码吧。我教我的学生,你上你的班,没有冲突吧。 我的代码行不行,其实不重要,只要能把工作做好就行。我有没有托,或者能不能达到我的目标,时间会证明,希望你不要在没有证据的情况下指责。你可以看不起我的技术,但你不能指责我的工作。 我希望大家都能给予这个项目一点支持 助学成才 。各位都有做学生来的,都有做菜鸟做小弟的时候,刚走入工作时,受了多少人的冷眼和嘲笑。而我能做的是,将这些小伙伴带入这个行业,获得一份体面的工作。我没想过要挑战别人的智商,但我肯定我做的工作是一定会得到社会的支持。程序员成本肯定会降低的,就像原来的Java一样,精英永远只是一小部分人,而码农才是最大的群体。 就市场而言,我看到NODE是有前途的,我不愁没学生教。

@zouzhenxing

你的项目我是支持的,你不要误解了。但我更希望你的计划不是一个月,而是半年,1年,2年,从javascirpt语言的基础知识,到nodejs基础知识,异步模型,编码规范,到http协议,websocket协议,redis,mongodb,mysql等数据库使用,性能,安全等注意事项,各种模板的使用,模板优化方法,等等。如果你把困难认识得足一点,把时间估计得更充分点,坚持做下去,我相信是可以做出成绩来的。如果你的内容足够精彩,你就是我的老师了。

我也不是什么大神,我也认可精英只是一小部分人,我也希望nodejs程序员价格下降。但我坚持认为nodejs程序员的价格不是经过你的培训就能改变得了的,如果ES真的一年一个版本,这个速度下去,价格只会上涨。

我应对这个问题的办法和你的思路不一样,javascript难于精通,有容易精通的语言,比如lua,跟javascript类似,但语言特性少得多,天然支持协程,可以很方便得将回调异步转换为伪同步,跟es6的generator类似,但比generator简单得多,同步程序员可以无痛转换。即便是lua这么简单的语言,我都不敢说会lua语法一个月就能写网站了,何况是javascript这种天然的精英语言?

我希望看你的代码,是希望通过代码了解你这个人。

但就现在的市场来说,优秀的javascrirpt程序员很难培养,价格高是必然的。javascript语言特性是造成这个局面的根本原因,这个局面不是靠个人力量可以改变的,就如一些社会速成班出来的java,c#水平,java,c#这种设计相对完备,有工业强度的语言都无法速成,你说javascript可以速成,这是要误人子弟的。就一个块级作用域也到ES6才实现了,为了兼容过去,var还存在。我想你应该比我更清楚这些历史包袱和新增特性带来的问题。

大牛撕,撕得我一脸懵逼 自豪地采用 CNodeJS ionic

回到顶部