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

相關文章
相關標籤/搜索