bootstrap+jq+ES5 真的比react/vue/angular+ES6 low吗?

bootstrap+jq+ES5 真的比react/vue/angular+ES6 干活效率更低、bug更多、可维护性更差、更low吗?
关注者
575
被浏览
114372

91 个回答

同意贺老的意见。low。

但是原因不一样。

low 的方面不在于开发效率,可读性,可维护性,这些浅层次的东西。我这里用了浅层次这个词。对。对前端的理解如果只局限在开发效率,可读性,可维护性这种程度的思考上,那么说一个 low ,并不为过。

而在于, jQuery + bootstrap 操作 DOM 的方式直观,简便且强大,它们在客观上没有推动开发者了解和使用抽象程度更高的领域。包括但不限于数据结构,设计模式,数据流,抽象数据类型,抽象过程等。

而一个人的知见,是很难跳出他周围的圈子和惯常环境的。你在日常工作中只操作 DOM,从天上掉下来的想法去了解数据流或者Observable ?遇到问题还是在 DOM 的圈子里绕。

很简单的道理。比如 React ,一开始就必须接受 view = f (state) 的思想。几乎稍微深入的使用,就会开始思考数据的互传,进而是单向数据流,最后深入到各种数据流方案的讨论和选择。rxjs ,Angular 等虽有不同,但都有共性: 你必须先接受它们的抽象思想,才能谈得上使用。

一种老生常谈的说法是,前端框架两三年一换,倒不如以不变应万变。我只能说,框架虽然换了,但它们的核心思想却是一直有价值的。打个比方,明天出了个新的 XXX 框架,甚至不是在浏览器端进行开发,我用它开发一个复杂应用时遇到困难,我会想,不可变数据会不会可以简化这个困难的复杂度,如果不行,Reactive Programming 的思路会不会有帮助。

守着 jQuery 的话,操作一辈子 DOM 么?哪天没有 DOM 了呢?

简单的回答:是的。



我比较反感老是说什么特定场景之类的屁话。

你要规定一个以纯dom操作为直接目标而不给出真正需求也不允许程序员依据常理做任何高层抽象的所谓特定场景,然后说更适合用jQuery……

或者大家来比比写hello world……

或者大家来比比写H5游戏之类明显不在一个频道上东西……


不知道是谁在耍流氓。



反正开发一般的网站,我这种写了20年网页的人,拿 bootstrap+jq+ES5 写,跟一个有2年经验掌握 react/vue/angular+ES6 的中级工程师比,我都不敢说我一定能比他效率更高、bug更少、可维护性更好。你们谁拍胸脯表示自己行的,可以过来跟我比一下使用 jQuery 和写 ES5代码 的水平先。



【更新】

有人问百姓网不是也用jQuery嘛!关于这个问题请看:如何看待百姓网的前端技术架构是jquery + jquery ui + webpack?


另外我稍微解释一下“特定场景之类的屁话”。

其实我也会说“特定场景”或者“这要看情况”这种话。什么时候说这个话呢?比如跟一个其实你不想跟他沟通的人。比如跟你一个你摸不清情况的人,怕对方是来坑你的,先来一句这种话,立于不败之地,然后见机行事。

这类话呢,一贯正确,也就是信息量基本为0。

上面这种情形,对外谈判,或者大公司里沟通(实际上是对内谈判)很常见。谈判的要义就是不要乱泄底牌,己方要避免信息量泄漏,先多多获取对方的信息。


所以呢,真在特定场景,我也说“特定场景”的话。(好拗口)

(幸好我所在的公司里,无需面对这种情况。)


但是呢,我们是在知乎上,或者在其他纯技术讨论的领域,再说这种信息量为0的话,那就有失真诚啦。

当然有些答案确实写了jQuery的适用场景什么的,可能是真的受到了常见的这种说辞的影响。需要注意,有些人出来说这个那个适用啥的,不是听他讲适合就适合了,很多时候就是个托辞,背后的真正理由可能是“我们其实还没有评估过新技术栈”、“团队这点人只会老技术”、“老代码一团糟,谁敢改”、“手里事情做不过来了,谁管它”……

这些理由本身可能是正当的。

但是讲那个话的人可能自觉不自觉也意识到其实是 low 的,为了显得不 low 就告诉你们因为我们的场景特殊!(哈,XX特殊X情)


其实呢,我觉得比较好的办法是,我也知道这块咱们有点落后了(low 的“友善”说法),希望将来能改进,如果各位有兴趣,正好加入我们,一起来改进啊!简历请投 百姓网官方招聘网站 ,嗯。

为什么?