2016年前端年底撕逼

最近一期的《程序员》刊登了一篇前端年度技术盘点文章《2016年前端技术观察》,做者是曹刘阳(阿当)。
关注过 2016 年前端微博网红圈的同窗确定知道,阿当基本把新技术都吐槽了一番。然而此次的文章,就像 @贺师俊 所说的前端

(这篇文章)是从CSDN/程序员这个老牌程序员媒体上发表的,就让前端圈以外的人误觉得阿当的观点是前端行业的主流见解或者至少是有很大影响力的意见。这会误导其余技术人员(包括技术管理层)和非技术人员(如产品、设计)。
大部分前端从业者是不赞同阿当对新技术的批评的。程序员

可是做为一个有着「实事求是」精神的程序员,你在批判一我的或事物的时候,是否是应该先了解一下他或它。咱们在反驳阿当以前是否是应该先看完他的文章?shell

但是啊,数据库

原文一共一万两千多字(加代码)!为了需求加班加点的程序员有时间看完吗?编程

我本着「我不入地狱谁入地狱」的精神,把原文简化到 1314 字(这个数字是什么意思……),并放在知乎「如何评价真阿当的文章:《2016年前端技术观察》?」这一问题下面,以飨吃瓜群众。但愿群众们知道阿当在说什么,以及前端大神们反对的是什么。小程序

简化文以下。后端

看以前先看个人总结:微信小程序

阿当文章实在太长,可是主要论点只有一个,就是注重基础,反对新技术。后半句显然不对(虽然文中列举了不少反对理由);前半句看起来对,可是论据有问题。
论据主要有
1 你水平不行,用很差新技术
2 你精力不够,只能先学基础
写议论文重点是可靠的论据。
次要论点就是「我当年很牛逼」。设计模式

如下是我本身理解的,以阿当的口吻说的,你们不要觉得真的是阿当说的(不保证还原了原意)。浏览器

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
如今的那些个前端布道师,不讲核心专讲新技术,又是几个意思?

关于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 的应用场景变多了,因此须要更多前端了。
等前端足够多了你再看看你的工资。
最终工资高的,仍是基础知识好的人。

写在最后

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

完,结合这篇文章一块儿看,效果奇佳:《在 2016 年学 JavaScript 是一种什么样的体验?》。

因为原答案的立场问题(站在阿当的立场喷前端),不少人贬,因此虽然是高票答案,可是并无排在前面。

大家啊,太年轻,这样玻璃心很差,吐槽都接受不了,未来怎么和大神谈笑风生?你说是吧。


有人问个人观点是什么。

其实常常看我视频的同窗都知道,个人态度一项都是,管它什么技术,先学会皮毛,再了解原理,最后对其进行吐槽(批判)。

我对不了解的东西一贯是不敢批判的。

  1. 任何一项新技术,你都搞清楚其优缺点和使用场景。

  2. 没有完美的技术方案。

那么阿当的观点到底对不对呢?

全文一万多字,总有几句话是对的,你说是否是?

并且本文中吐槽前端的话,用来自省,是很是有用的!

请关注知乎专栏:zhuanlan.zhihu.com/study-fe

相关文章
相关标签/搜索