前端小白、大神、php程序员们。
大家好,这两天前端圈大热的文章看的我很捉急。
大漠穷秋写的两篇文章火了,为什么火了呢?因为他把当今最流行的前端框架之一喷的一文不值,还连带使用者一起贬低。文风犀利,倔强,带有一些科幻和超现实主义色彩,文中引用的例子也是XJB说,做为一个php程序员,我实在忍不住,写这篇文章,来和一下稀泥。
0x 1
我们先来研究一下第一篇文章为什么只会Vue的都是前端小白?
(下文中的“你”指带大漠穷秋)
1 文章开头定义了一些只会vue的人,我不知道这样的人应该从哪里去找,我去村头网吧,发廊都找不到这样的人,这个假设是不是有些牵强。在公司里,你可以随便找一个不会vue的人,然后让他学vue,很快他就能用vue上手一个前端项目。作为一个开始学习前端的同学,难道不应该一开始学习dom,jQuery,minggeJS吗?然后学vue 至少不会是只会vue吧。只会喷vue的人倒是找到一个。
2 没有学习能力的人能学会vue吗?大漠穷秋用vue写过真正在线上跑的项目吗?修改过用vue写的在线上跑的项目吗?学习vue本身不是在练习学习能力吗?我想去学过的人自然明白。
3 坐进观天也没什么不好,太多的理解和思考反而会阻碍前进的脚步,但是vue也一直在更新发展,如果一个学习vue的人持续关注vue的发展,宏观大局是能慢慢凸显的。但我想说的是,作为一个为公司写代码的员工,能让产品保质保量按时上线才是真理,你用什么技术老板不会管你,就拿杀毒来说,当病毒真正横行的时候,你给我说你的杀毒软件采用最新语言,最新设计模式,最厉害的软件架构,结果还是杀不死病毒。某数字公司会给你说,我们就检查下文件名字就把病毒杀死了,没有高科技,只有对问题的快速解决。
4 糟糕的英文水平,作为一个前端,写个页面,切个图,我需要多强的英语水平。来个反证法,如果你说的是对的。你自己做的教程也是中文的,你不是在毒害大家吗?我强烈建议你下架你自己做中文教程,readme和教程都改成英文的,来拯救一下大家糟糕的英语水平。
5 团队协作和框架有关系吗?这个逻辑和国足踢球赢了,是因为草坪太硬,草坪太软,草坪不硬不软的理由是一样,协作靠的是性格和理解,大家开一波黑,协作能力就培养起来了。
6 作为一个php程序员,我们公司有很多前端项目,千万级别的访问量。当时缺少像大漠穷秋这样的人为我们指点应该使用什么技术,然后我们用了一个最笨的方法,就是每个框架都试一试,在不同的前端项目,相同的前端项目里,同事们反复使用不同框架。最后大家得出了一个结论,做活动页面用Vue非常合适,做后台管理的前端页面,用Angular轻松自在,做电商,购物车等状态比较多的页面和准备往RN转的页面,使用React决对没错。
一个框架好不好,使用者水平高不高都不重要,重要的是人,在业务问题面前,所有的技术、框架都是工具,使用工具的人才是核心。你非要说只会用锤子的人是小白,你就不怕他们用锤子敲你。
真实事迹,公司有位同事,用各种技术都慢其他人一步,但他用jQuery(并不鄙视jQuery,Angluar 1.x内部还自己实现了一个mini jQuery)做的项目,体验比其他人用新兴框架做的好,bug少,所以人才是最重要的。
0x 2
再来说一说下一篇Vue从Angular里面抄了哪些东西?
(下文中的“你”指带大漠穷秋)
作为一个程序员,抄袭不是很正常吗。你写代码的时候没有Crtl+C和Ctrl+V, 你不要给我说你是Command+C和Command+V。古话说的好:优秀的艺术家模仿,伟大的艺术家则是剽窃。下图也很好。
对于抄,我想说的是,好的思想,我们当然要拿来使用。硬说是别人抄是不对的,本身就是不对的。Angular是MVVM,但是里面也有MVC的东西。算不算抄我php各种MVC框架。
1.双向数据绑定
最早把双向数据绑定带到前段领域到底是不是Angular,我不知道,不过用我那蹩脚的英文在google里搜索`The earliest data binding in js` 出来的靠前面的js是knockoutjs。不过看github提交,Angluar在2010年1月就开始了,但是knockoutjs在7月才开始第一次提交。
我很不负责的说一句,“新版本的Angular引入了RxJS+Immutable的设计”。这是不是在抄袭React。
2.HTML解析器
这就和项目文件的package.json文件里依赖,是不是我抄袭了所有这些库,才完成了我的项目。这也能算抄,于正会心一笑。
3.Filters
用个管道也是抄袭吗?,当年Unix就应该把这个申请为专利,现在都可以上市了。不写成` | `难道要写成`->`,或者`.`。
3.组件和指令分离
Vue官方教程里,组件和指令就是分开的两个东西,和最新版的Angular也不一样,这有啥问题,而且你不觉得Vue里的组件写起来比Angular不管哪个版本都要简单吗?
4.新的概念和设计思想
新的概念和设计思想真的会给现在公司的业务带来好处吗?Vue借鉴了其他框架,把复杂的变成了简单的自己的,不做一个“One framework.Mobile & desktop”。而是一个“The Progressive
JavaScript Framework”,我觉得是OK的,你觉得不行,你可以继续喷,反正我们使用合适业务的技术,最快的时间解决好问题,然后才有时间出去浪,(。・∀・)ノ゙嗨酒吧,睡大街上。
0x3
作为一个php程序员,深知前端浮躁,需求不可靠,今天写完代码,明天逻辑就变化很大。真的要做到把业务写好,拼的不是框架,不是热潮,不是新技术新概念。而是对业务的理解和自己对代码的态度,会用框架成不了高手,但把框架融入到解决业务问题中才是真理。程序员们研究新技术新思想归根到底还是为了更好的解决实际业务问题,而不是炫技。不要急躁,开心就好。
如果把前端人员比作江湖中人,前端框架比作兵器。真正的高手草木皆可为剑,现在我们在这里讨论那把剑更厉害,真的有必要吗?悟空超级赛亚人一个龟太气功就把你kill了。
所以我说前端框架终将在历史的长河中死去,留下来的不是兵器,而是人,呼吁大家理性看待,互相学习,共同进步。