最近程序猿界出了一档子事儿,一位名叫“大漠穷秋”的工程师,对JavaScript框架vue展开攻击,骂战由此挑开了。

Angular有哪些地方比Vue更优秀?

https://zhuanlan.zhihu.com/p/28259790

为什么只会Vue的都是前端小白?

http://www.jianshu.com/p/fdab2036fca7

上面两篇是他写的攻击文。


回应『Angular有哪些地方比Vue更优秀?』

https://zhuanlan.zhihu.com/p/28284087

上面是vue作者@尤雨溪的回应


 

我个人对这种“论战”态度是:无聊。会用Angular就高人一等了?用vue就不如别人了?能干个前端就很牛了?简直是笑话,对于公司而言,迅捷低成本的解决问题才是主要目标。当下的互联网行业,一个好技术我觉得价值都不及好产品+好运营。技术有各种替品和方案,而设计好产品、能运营出来可不是件容易的事情。

vue作者的回应是必要的,至少可以避免不懂的人误解。而大漠穷秋(后面简称大漠)的攻讦则是无聊的,似乎是因为vue的快速崛起,动了他的“奶酪” – 他一直在推广Angular,也许在以此赚钱?不得而知,至少有这个利益驱动的嫌疑。

写程序这么多年,我一直反对不同语言、框架之间的无意义骂战 – “PHP是世界上最好的语言!Java是最好的!XXX是最好的框架!”,这种话题除了满地口水和脏字,啥问题也解决不了。人们研究、开发各种应用技术的主要目的是什么?更快更好的解决实际问题。只要能在合适的场景,用更低成本满足了需要,就是好技术。绝大部分人都不是做基础研究的,技术人员,莫忘初心。

这里不是说,编程语言、技术的对比没必要、没有意义。比较的目的在于了解不同技术的适用场景和优缺点,以便在选型的时候,找到合适的方案。发明出来的各种编程语言几百种,每个热门语言的编程框架都一大堆,自由竞争、优胜劣汰。留存下来的语言、技术,必有可取之处,即便被逐渐淘汰的那些,它的精华往往也被新的技术吸收,继续创新、发扬光大了。新的技术层出不穷,不断切割原有语言的应用领域,特别是C++。过去一两种语言包打天下的时代早就过去了。当下的技术人员,多学多会几种不同的语言,让自己技术全面,是很有好处的。我会写C/C++,能干PHP,JavaScript前端、Node.js我也能开发,Python也可以拿来就用,多学几样很难么?我的朋友Wildfire技术更是全面,膜拜。只懂一门,技术再精,也难免眼光狭隘。同时懂得各种技术,你就会发现其妙处:可以组合出一套“瑞士军刀”,混合不同的技术来解决单一语言难以处理的问题。在做技术方案设计的时候,还可以拿捏出一个技术组合的平衡点。这就能为配合产品的设计、运营推广带来更好的合作基础。技术是产品的一环,而远不是全部,别把自己当核心。

大漠喷vue抄袭Angular,也没有喷对点 – 人家早就声明了vue是借鉴过Angular的。开源世界里面,idea是不被保护的,相互借鉴、抄袭设计理念甚至是被鼓励的,那是原创者的荣耀。你实现了一个好的创意,别人抄过去很正常,别人设计的棒,你抄过来也没什么负罪感。因为技术就是这么积累、进步的,所以好的东西才能留存沉淀啊。开源的一大优势,就在于知识的传播扩散更快了。开源世界里面,经常是一个框架做了探索,其它框架认为合理的,也实现了出来。难道这不是好事嘛?比如Web开发框架,多半都是MVC架构,ORM设计、DI模式实现等等都有类似的地方。其实这就是技术沉淀的结果。大家在这个发展阶段,都采用公认的好的设计模式,也降低了框架互换、模块互动的成本。学熟了一套框架,换一个上手也往往不是难事。你能拿着一个框架,嚷嚷别人无耻,都抄了它的设计么?其实它也借鉴别人,最好的设计也未必是它原创。甚至业内还有跨语言的借鉴、启发。当年的Ruby on Rails,给Web框架开发者们贡献了多少好的理念?Python/PHP的框架设计,好些都是学它。有什么“可耻”的么?我丝毫不觉得,这不是侵权。开源世界的活力就在这里,知识都是开放的,你借鉴也贡献。

微软的东西就不是这样。我离开微软平台有10多年了,它的铁杆粉丝,被坑无数。微软喜欢反复推倒重来。它每次都重来一遍,宣称这个是最牛的,已经成熟了,快来学习使用吧!然后你一头扎进去了,刚学个半生不熟,MS又推翻了。你白学了那套,浪费无数时间精力,微软才不管你的感受,反正每次它都是对的。你看.Net平台还能跟Java平台相提并论吗?差距已经天上地下了。

 

我不会抵触Angular,也会拥抱vue,按前端界这种疯狂的进化速度,哪天又有了一个新框架,吸收了Angular/vue的精华,干掉它们两个也很正常。能更好的解决问题的就是好技术,欢迎推陈出新,这就是技术进步。


后记:写完此文发出,老朋友七猫评论:“要是我,我就直接写,angular已经落伍了”

 

 

聊聊Node.js的一点开发体验和应用场景
孩子的功课学不上去了,咋办?