这会是 2016 年前端的年末撕逼吗?

2016-12-14 17:04:43 +08:00
 FrankFang128

知乎传送门: https://www.zhihu.com/question/53625252/answer/135820259

利益相关:不认识阿当……用过 Angular 1 、 React 、 Vue 、 SCSS 、 LESS 、 Grunt 、 Gulp 、 Webpack 等一系列有的没的。

前端三大爱好:
1. 语法糖
2. 字符串转换
3. 用别人的框架

现在说 Angular 、 React 或者 Vue 的不好,都是政治不正确滴。

声明,我没说我站在阿当这一边哈。我可是很怕得罪了整个前端界的呢 O(∩_∩)O !。

不过依照中国大部分前端的计算机基础知识素养,能跟阿当正面撕逼的也没多少个。

其实我觉得吧,中国的前端就是认死理,非要给自己带一个「前端」的帽子,生怕别人不知道他只会 JS 。多看看不同意见,多看看别的语言,你会发现 JS 能做的,很少很少。

以下是我自己理解的,以阿当的口吻说的,大家不要以为真的是阿当说的:

2016 年我喷了 Sass 、 React 和 Angular ,被前端各种布道者鄙视,于是我们互相伤害起来。
但我研究的技术可比你们学得这点东西多多了。
我以我的经验,认为这些才流行几年的玩意儿,是值得怀疑的。
1. 有些玩意是高手发明出来给高手用的,小公司的几个前端玩得转?
2. 你们这些布道者只说优点不说缺点是什么意思?安利你听说过没。
所以前端新人们,你们要长点脑子,别听风就是雨。

关于 SCSS 和 LESS

优点你们都吹得那么好,我偏说缺点。
直接能运行在浏览器里的 CSS 你不用,加一道字符串变化在中间挡着,一来增加上手门槛,要学新知识;二来新的语法增加新的复杂度;三来这玩意有传染性,我想用你的代码我就必须也用 SCSS/LESS 。
而且,你 SCSS/LESS 依然没有解决你想要解决的问题呀!
所以我认为弊大于利。

跨界、 CoffeeScript 、 TypeScript 和 ES6

前端你为啥这么在意语法糖?你个前端不好好研究优雅的用户体验,去研究什么语法糖,你忙得过来吗?
CoffeeScript 是 Ruby 社区搞出来的, TypeScript 是 C# 社区搞出来的,它们都是非前端社区的产物,迎合的也是非前端的工程师群体的编程习惯。适不适合前端,走着瞧。
最终你们这些前端看上了 ES6 ,但是你们这些前端在语法还没成型的时候就用 Babel 来转译是不是有点太激进啊?
学学 jQuery ,通过原生 JS 来加语法糖,稳定过渡。你们前端咋这么猴急呢?

关于 Node

Node.js 作者本人就把这玩意儿当个玩具,你们前端居然当个宝。
前端没有拿着玩意写后台,而是那它做脚本。
写写脚本就算了,前端居然还妄图一门语言统一前后端。然后整天布道什么「全栈」。
可是孩子呀,你一个跟 DOM 打交道的人能理解后端那些概念吗?你们就知道个 JS ,连数据库也只喜欢长得像 JSON 的 MongoDB 。
半吊子想当架构师。
你们看看现在有几个公司用 Node 做服务器啊?服务器端 Node 完败。
你们这些不会写 shell 的人就老老实实用 Node 写脚本吧。
但是你们写脚本也要有个限度好不好?看看现在的前端工具流有多复杂了啊。而去年的工具今年你们就抛弃了。
孩子气。

关于跨界、全栈、公司定岗

前端这么乱,不就是因为前端没主见吗,尽听别的圈子扯。
CoffeeScript 是 Ruby 社区的; LESS 也是 Ruby 社区的; Node 的作者就是一个票友,平时根本不用 JS ; Angular 是 Google 的服务端团队搞的; React Native 是为了做原生 App ;全是跨界的!
他们解决的是他们自己的问题,对你有没有用你不想想?
你引入任何一个中间层都会有弊端,你不知道吗?
你用技术要在在乎其缺点。

全栈。
你想做全栈我不反对,但是你要看看公司给不给你机会呀。
你以为你学了 Node 公司就愿意你去开发后台?你有这个能力吗?
你以为你学了 React Native 公司就愿意让你开发 App ?你有这个能力吗?
你真的比得过人家专职团队吗?
全栈是顶级高手团队才有的, Google 、 Facebook 。在小公司还是安心做前端把。

关于前端的核心竞争力

前端你不要拿自己的弱项跟别人的强项比了,找死呀。
你拿 Node.js 跟 Python 后台比得了?他们学起 Node.js 不甩你一条街啊?
你拿 React Native 跟 iOS 开发比得了?他们学起 React Native 不甩你两条街啊?
用 Java 写安卓应用的程序员什么时候找死跟 Java 后台程序员抢饭碗了?
用 C++ 写桌面应用的程序员什么时候找死跟 C++ 服务器程序员抢饭碗了?
就你能啊?
你前端的核心竞争力应该是搞清楚浏览器上面的东西!
HTML 标签、 CSS , JavaScript , Form2.0 、 Websocket 、离线缓存、 Webworker 、 Border-image 、 Canvas ……
这些东西是有难度的。你让一个后端开发写个 CSS 垂直居中并说出优缺点你看他会不会。要想破头啊。这东西靠经验啊。
你不好好看核心,去学一些乱七八糟的是什么意思?
那么什么是核心呢? HTML 、 CSS 和 JavaScript (我认为还有 HTTP )
现在的那些个前端布道师,不讲核心专讲新技术,又是几个意思?

关于 Angular ,后台, SPA

这是给服务器同学用的,如果你的团队以服务器开发人员为主,你再用这个吧。
你们这群没主见的前端,追捧这个干什么?根本就不是给你用的好吗? Angular 2 一升级你是不是又傻眼了,怎么后端又改用 TypeScript 了?
你去追前端基本功呀!
另外 Angular 真的好吗?其实后端程序员可以自己找前端同学封装一些更轻量的框架。(你们前端不行?当我没说)

关于 React

React 组件化的思路,我是认同的。 Flex 的组件化方案比 HTML 不知高到那里去了。 React 组件化 是对 HTML 很好的扩展。
但是 React 太重了,条条框框太多了,把简单事情搞复杂了。
我推崇「轻框架 + 组件化 + 面向对象」。你们不好好改进原来那一套运行得不错的方案,为什么非要去追新,而且还一年换一个星来追。
如果 React 就火个几年,后面的前端新人不学 React ,你这个 React 项目谁来负责?你怎么跟公司交代?用新框架重写?!
你作为个人学习去玩玩 React 我是鼓励的。
关于抽象和面向对象,你真的掌握了吗?封装、继承、多态、设计模式、解耦、 API 设计这些真的都熟练了吗?我接触过的前端,绝大多数同学都毫无概念。来看看我的代码。

关于 SPA 和 Web Site

SPA 不是说你动态加载页面和数据就叫做 SPA 的。 SPA 强调的是功能。你要用新技术做出新的功能。现在中国有几个是真正意义上的 SPA 页面?网页游戏、在线 IDE 、网页版 PhotoShop 之类才是真正的 SPA 。
所以别老是说什么你在做 SPA 。

React Native 和 PhoneGap

不看好。除了开发成本低,没有任何优点。但是哪个公司是因为开发成本低成功的?

关于微信小程序

这玩意既不是 HTML 5 也不是 Native ,不看好。

关于前端的缺人和高薪水

现在前端多,只是因为前端太少,跟新技术没关系。
同时 HTML 5 的应用场景变多了,所以需要更多前端了。
等前端足够多了你再看看你的工资。
最终工资高的,还是基础知识好的人。

写在最后

虽然我写了这么多,但也有可能,全是错的。

握草怎么这么长,中途差点就想关网页了。
你就摘对自己有用的看吧。其实他说的也是有道理的。
而且我跟他的观点是一致的。

26201 次点击
所在节点    JavaScript
239 条回复
glasslion
2016-12-15 11:04:05 +08:00
看完只有一个感受:当低效成为一种习惯。。。
xiaket
2016-12-15 11:14:58 +08:00
@4641585 其他不多说, 这儿拿淘宝首页做例子说 node 靠谱才真是不靠谱. 要么是自己概念不清楚要么是有居心的混淆.
seaify
2016-12-15 11:25:51 +08:00
@leonlu Flexbox, 好吧,代码里用的都是 display: flex, flex:1, 啥的,习惯了
codeartisan
2016-12-15 11:41:17 +08:00
还好我只是个切图仔
Wangxf
2016-12-15 11:43:35 +08:00
@seaify 1.虽然我不看好 node 在服务端的前景,但是 2016 年底了还在黑回调我真觉得太不应该了 2.建议去了解下 flexbox
FrankFang128
2016-12-15 11:44:43 +08:00
@wxt2005 国际惯例,太长不看……
firefox12
2016-12-15 11:45:15 +08:00
别的不懂吧, 你们前端的框架主流的一年就换了几次,这说明了什么?垃圾的设计!

看看 windows API , linux API , JAVA 的哪些类库,系统架构,从 1.0 到 2.0 3.0 4.0 是如何在几十年都能保持的? 这说明一个系统设计该如何保持和发展? 你们一年换几次只能说明 要么你们写的东西毫无生命力,要么用的人毫无鉴赏能力。在 java 的世界 linux 的世界 要让一个新技术推广,会接受多少旧技术的阻碍,因为旧技术虽然旧,有局限,但并非一无是处,都是深思熟虑的设计。前端? 反正名词多得都记不住, 如果一个组件 几个月就会被淘汰,为什么要学? 这是浪费生命。
FrankFang128
2016-12-15 11:46:20 +08:00
@SilentDepth 这些观点多少也有我一半的观点。我另一半的观点是——赶紧学新技术。
FrankFang128
2016-12-15 11:47:33 +08:00
@firefox12 嗯,不过垃圾倒不至于,只能说「设计得不能适用于前端变化多端的需求」
SkyKnight
2016-12-15 11:49:17 +08:00
前端真是一锅粥
rockux
2016-12-15 11:56:54 +08:00
@djyde 严重赞同,全部观点阴阳怪气
FrankFang128
2016-12-15 11:58:21 +08:00
@rockux 我一直不明白「阴阳怪气」是什么意思。说娘娘腔也许会用这个词,但是本文很 man 啊~
xcodebuild
2016-12-15 12:02:34 +08:00
大意不就是『你们前端老老实实抱好头蹲着别动』么,根本没有任何有效的论据,更像是谩骂。

他口中的『小公司前端』学个 scss 都能累死, source map 用不来, es6 语法都能影响合作,装个 babel 也能提高门槛。服务器端那是学都不配学。

还是老老实实拿 dw 做个页面仔好了,毕竟前端根本不算工程师嘛。
MikeFeng
2016-12-15 12:03:14 +08:00
你们前端啊,不要整天都想高个大新闻,拿衣服
firefox12
2016-12-15 12:04:44 +08:00
@FrankFang128 前端的需求 在一年中变了多少次? 是变化快? 还是根本没想好,有个点子就做,做到一半,觉得不靠谱了就弃坑?
FrankFang128
2016-12-15 12:09:19 +08:00
@codefalling 估计他接触的前端是这样……
SakuraKuma
2016-12-15 12:10:09 +08:00
然而我至今用着 Grunt , JQ 开发着自助建站。
变化再多,基础还是最重要

(同不看好小程序。
miketeam
2016-12-15 12:10:10 +08:00
作为程序员会 c 或者 c++必须的。至于其他的语言不都是来自于此么?至于其他的框架还不是一个个的做事方法而已……其他语言底层还不是 c 系的么?还在纠结框架的很幼稚!能快速出货,性能稳定方便维护才是第一。给程序员贴标签真的很恶心。所以有 vue 程序员! rn 程序员。怎么简单怎么来
FrankFang128
2016-12-15 12:10:24 +08:00
@firefox12 今年用 require ,明年用 webpack ;今年用 coffee ,明年用 ES next 。类似这样的变化……
wwlweihai
2016-12-15 12:12:04 +08:00
有一些内容是值得提取的。
1 ,我也用过 angular ,移动端用 ionic ,但是实际效果并不是太理想,无论是后端,还是前端,这个框架太重,开发效率也不见得比 easyui , extjs 高多少。 对于前端使用, ng ,确实不太适合。

2 , react 的侧重点也是 view 层,所以加太多的东西会让系统更加混乱;在我们开发的项目中, react 也仅仅做为视图层应用,通过 props 传递数据。关于 react 的开发,可以参考我的另外一个帖子 https://www.v2ex.com/t/327638

3 ,上面说了两个例子,总结一下,目前前端的混乱最大的原因是没有系统化与标准化。在移动化后, web 端的需求迅速下降,微信公众号这个变态的东西居然有了市场份额,而微信还没有到可以制定移动浏览器标准的程度,再加上各种浏览器,有各自的标准, css , js 都有一些各自的特性, web 更加分割。所以出现了大量的工具,这里 nodejs 有一份功劳。化繁为简,首先要做的就是统一标准。

这是这个时代的原因,前端一片混乱,后端就不是了吗? java php c c++ python ,为什么要有这些东西?因为需求的存在,编程语言的多样性 归根到底 是需求的多样性,各自的语言在不同的领域发挥着它应有的本领,这是好事情,前端也是,新工具不一定是差的 ,当然也不一定是好的。但是 阿当 说的没错,在企业内部,技术选型要趋于保守,非核心领域适当去探索,所以淘宝前端用了 nodejs ,但是其数据层 仍然是 java 。

不过,可喜的是 IT 领域,见到了难能可贵的精神,大家都在学习,都在探索,在争论,在明是非,这是其他某些行业没有的。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/327650

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX