V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  xhowhy  ›  全部回复第 14 页 / 共 18 页
回复总数  352
1 ... 6  7  8  9  10  11  12  13  14  15 ... 18  
@superhxnju 某些 node 社区的人哪里知道什么泛型,就信仰 callback 是宇宙无敌黑科技,听不得别人黑 node ,见不得别人有不同观点。。我日常工作就是搞 node 的,拿 go 出来与 node 比较一下,就被喷成不懂 callback 和装了,呵呵
@demomaster 就语法而言, C 语言之父 Dennis 编写的《 C 程序设计语言》就讲完了,就很薄的一本书。语法简洁不代表代码就没有复杂度,同理 lisp 。
@bramblex 看来哥真的是来给你指点江山的,不谢哈
@bramblex
你是不是觉得就你牛逼就你懂 callback ? koa 为什么要先后用 yield 和 await 来替代 callback 问题?就是因为复杂的业务逻辑是不适合用 callback 来表达,也不利于调试,所以用 yield 和 await 显著改善了异步代码的开发和调试难度。
goroutine 和 channel 是啥懂不懂?也建议你看看,开喷前请提高姿势水平,不要为了喷而喷。
@Wangxf 说得对,但从语言、工程化角度来看,不知道 Go 是不是一个更好的替代方案
不明白为什么有人抱着 callback 当宝不放,不看看外面的世界,这么抵触新的知识和观点。。。 async.js 、 co2.0 、 co 4.0 、 Promise 的存在,不都是为了解决 node callback 在并发业务逻辑处理上的表现力问题吗
@xinxu 可以自己去看啊。。改天我撸个典型的场景 看看 async.js 、 co 、 promise 和 go 的各自实现
@bramblex 呵呵 用不着你科普 我用 node.js 写过日 pv 八千万的网站。。绝逼不是吹牛
虽然如此我仍觉得 node.js 的 callback 和 go 的 goroutine + channel 一比就是一坨翔。。而且 go 也支持 callback , callback 这货用来做界面编程还行,用来做并发真不如 goroutine + channel 直观
@loading 你说得对啊 我是想听听你的观点
@loading 你说得很对啊 我需要你的观点
@loading 请结合上面的讨论认真思辩。。做服务端开发为何不用 go 要用 node.js ?
@gamexg node.js ES6 以后也支持静态类型了, eslint 可以做静态检测,上兼容 es6 的 TypeScript 也行。。
@flynngao 其实也没那么查,是 npm 灵活性太高了,也不是什么好事。。看我在 27 楼的回复吧
@chai2010 其实 vendor 目前的功能在加载多版本上已经够用了,是 npm 把大家都惯坏了,没有回归到库版本管理的本质。。看来我要收回我刚才在 82 楼说的话。。
在 iOS 开发中 Carthage 就是一个新的去中心化的方案,现在比 Cocoapods 更被社区推崇的原因相信也是如此啊。。
期待 Go 1.6 正式开始 vendor 。。
@CRVV 说到不用锁,反而是 Go 的优势了。。

详情请看这篇文章的最后一个代码例子: http://ibillxia.github.io/blog/2014/03/16/go-concurrent-programming-first-try/
通过 coroutine + channel ,实现了无锁的并发。

看了这个例子,什么 async.parallel (async.js) 、 yield [].map (co 2.0) 、 Promise.all() 顿时黯然失色。。身不由己被宇宙的黑洞吸进去了,粉身碎骨
@bramblex 或许你可以先解答一下我的疑惑, callback 与 coroutine + channel 比,有何优势?
@bramblex 呵呵,不服来辩。。喷谁不会,敢问你写过几年 node.js ?用 node 写的网站 pv 多少?
@raincious 唉,你说得对,基于 URL 的包管理确实太脆弱了。。虽然 github 不容易挂,但如果有一个类似 npm registry 那样的设计,对 github 的依赖就会减弱,会更加地去“中心化”
@raincious Registry 还是中心啊。。否则就不会有 npm 和私有 npm scope (@group/xxx )的区别了。私有 npm 本质还是需要同步公网 npm 的东西的,只是在 scope 下发布自己的模块。模块名前还要加 @groupName/ 前缀。
而 cnpm 可以理解成 npm 的镜像,不算私有 npm 。
总之, npm 离开 registry 就不行鸟~还是中心
@plqws 你说的是那些客户端软件都是属于专有领域(程序设计),相比较全世界的各种消费者业务领域,占比是比较低的。 Node.js 推出的时候之初就是为服务端而设计的,现在使用 express.js 和 koa 框架构建起来的网站数量不计其数,光是 BAT 用到 Node.js 的产品受众早就大大超过你列举的客户端软件用户数。
再顺便提一下, node-webkti 、 electron 和 atom 这类技术,无非是在 node.js 和 webkit 的 API 上做了 binding , html/css/js 这部分渲染的内核还是浏览器引擎实现的, node.js 在其中起的作用其实比较小。。
**所以你还觉得 Node 的服务端开发只是附赠品吗??**
另外你没有 get 到我的点诶,这个帖子旨在服务端领域比较 Go 与 Node.js ,不谈其他。否则就太复杂了。
1 ... 6  7  8  9  10  11  12  13  14  15 ... 18  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5377 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 15ms · UTC 09:29 · PVG 17:29 · LAX 01:29 · JFK 04:29
Developed with CodeLauncher
♥ Do have faith in what you're doing.