為什麼說mac是前端的標配?
在知乎上看到很多答主都會說「mac是前端的標配」,但是都沒有詳細展開來說。
題主想問,mac對於前端開發來說,優勢具體體現在哪些地方呢?
說標配太絕對,但至少 mac 是讓前端最省心的開發機。
很多人大概是人云亦云,但是我說這話肯定更有說服力。因為和很多入行就用 mac 的人不一樣,我是在 windows 和 ubuntu 上都寫過完整前端項目的。
先說 windows,總結起來 windows 對前端開發有這麼幾點不友好:
第一,npm 問題。npm 包管理器對 windows 支持不良,生成的 node_modules 經常因為路徑名太長導致無法刪除,要用一個特殊的 robocopy 命令,刪除很慢。這個問題本質上是 windows 自己的問題,但是npm 應該提供一個方法刪除 node_modules。
第二,native 代碼問題。使用了 c/c++ 模塊的 node package 是需要在開發機上現場編譯的,但是有一小部分 c/c++ 代碼在 windows 上無法編譯通過,導致無法使用。要知道 npm 的包管理是樹形的,你永遠不知道你依賴的包又去依賴什麼包,中招幾率並不小。
第三,命令行問題。mac 和 linux 都有一些很好用的增強型命令行工具,比如 mac 上大家常用的 zsh,以及我個人很喜歡的 iTerm。但是在 windows 上,增強型命令行工具,比如 power cmd,和開發用標配命令行 git bash 以及 msys 工具集不能很好的融合,總有這樣那樣的問題(不過我現在基本上都用 vscode 內置的命令行了,在 windows 上可以鏈接到 git bash,體驗不錯)。
第四,瀏覽器問題。這個沒有量化數據,但是我感覺 mac 上的 chrome 是最流暢,調試體驗最好的版本。
第五,顯示器問題。當你不知道應該用什麼屏時,mac book pro 的屏幕絕對錯不了。做開發機採購,mac 是絕對不會出錯的選擇,但是windows 筆記本就五花八門了,挑錯的幾率很大。當然不只是顯示器,固態硬碟也是一樣的。
而使用 ubuntu 或者其他 linux 髮型版,對 node 和命令行來說不會有什麼問題,問題在於桌面環境和操作系統本身。
linux 本身就是一個比較折騰的系統,ubuntu 的桌面環境也很難說是一個成熟的環境。對於前端來說,使用 linux 會增加成本。我們使用開發機,不只是寫代碼,還有很多編程周邊和辦公應用的需求。這種時候除非 web 能解決你所有的需求,否則 linux 環境下的桌面應用不夠豐富成熟就成了問題。像我很喜歡用 beyond compare,linux 上就沒有很好的替代品。再比如 office 類軟體,就算你不用 word/excel,ppt 你免不了要做吧?mac 上的 ppt 和 keynote 都是事實標準,到了 linux 上你就得想別的辦法了。
linux 連中文輸入法都要折騰半天,還不一定能和所有應用兼容。這樣的折騰,對前端來說無異於浪費時間。
當然反過來說,各家系統也都有自己的長處,如果你特別在乎某一點,就可能忽略它其他方面的缺點。
比如 windows 上的文件管理應用,比 mac 好用太多了,尤其是 total commander。首先說明,我的第一台 Macbook 是 10 年前了,所以我們在討論的不一定是同一個問題。話說當年 Mac 的質量還是很高的,完全不需要管什麼系統優化之類的事情,也不容易崩潰,使得用戶可以專註於做自己想要做的事情。對於前端來說:
1. 要能方便 ssh 上伺服器,然後所有事情都跟本地無關了。
2. 要有好的 IDE,當年 TextMate 是 Mac 獨佔。現在基於 Atom 的跨平台方案太多,所以 Mac 沒有明顯優勢。3. 要能處理前端圖形素材。當年 Adobe 全套都為 Mac 優化得很好,不過現在大家都改用 Sketch 了,但這相當於把設計翻譯為代碼這一步驟綁死在 Mac 上了。Windows 相對來說要做的管理工作多很多,有不少問題需要分心去處理。當然現在 Windows 10 要好一些了,我就把它當 Mac 用了。我什麼優化都不做,需要什麼就照裝上去,反正我也不分區。
經過這麼多年,中國程序員和美國程序員都轉用 Mac 了,現在就是個慣性的問題了。現在已經不是因為粉絲而用 Apple 的產品了,因為 Apple 現在產品的問題也不少。但當你同行的人都在用時你不用就有點奇怪,你需要幫忙時別人也不知道怎麼幫你,因為沒用過。
接下來會怎樣還是要看哪家能夠利用開發環境把人綁住。如果 Mac 能繼續綁住設計師,那前端是很難逃脫的,因為你總要跟設計師的輸出打交道。不是標配,說標配只是想讓老闆配Mac,配個Mac只要不是mini就五位數上下。大家都懂。
要說Linux也行的話就變成2000塊錢的破電腦了。
不過Windows還真挺蛋疼的,前端用node的時候好多時候都是自己用的工具鏈,和production沒關係。如果還得考慮windows好多庫不太能用。
感覺我都不能姓前了。
前端圈真是浮躁,甚至還看到有人說HTML+CSS已經不重要了,只要會JS就是一個合格的前端。
之前入門前端的時候就聽人說,前端是最不挑平台的。我只有個垃圾Windows本就聽你們的鬼話進了前端坑。現在你們居然說Mac是標配!!原來我學了兩年門都沒入啊。
我寫前端就一個VSCode ,命令行?NPM?Git?CLI?cmd不行感情我powershell也不行了?powershell微軟出的是垃圾,好的我還有WSL啊!!大神都用vim寫代碼?無修正vim給你又不會用
我自己用vue-cli都生成幾個項目了,npm install 執行了幾十次了,npm run dev(build)都執行過幾百次了,難道大多數前端不都是執行這些簡單操作的嗎?寫了幾十個頁面,做了幾個單頁面應用就沒有我windows水土不服的時候。你們公司某些庫只支持Mac,這是你司的特有情況,怎麼就成了所有前端的標配了呢?
隔壁C++板塊還在討論 Visual Studio 是否把工程化看的太重,對新手隱藏了太多細節,一步步寫 gcc 鏈接參數,寫 makefile 多好,到了前端板塊就是,一口一個工程化,一口一個便利,一口一個自動化。我覺得有朝一日當 Visual Studio 擁有完善的前端工程化支持,所有的包都能使用 NuGet 自動管理的時候,當初喊著前端工程化的人又抱起了 Webpack 4,5,6,7 說你看這寫配置文件多好啊,你們那 Visual Studio 工程化太明顯了,對新手隱藏了太多細節。這些人雙標玩的不要太溜。
告訴你Mac是前端標配的不是傻就是壞,就是想你浪費時間上知乎提這種無聊問題,沒想到還有像我這麼無聊的人來答。頁面寫多了只記得當初剛入門時學的東西——前端是最不吃平台的技術棧。寫前端管那麼多幹嘛,一個瀏覽器,一個代碼編輯器就可以創造一個世界。
兩點:
1. 同時照顧到了GUI和命令行能力,畢竟電腦還是要日常用
2. 唯一能調試iOS的電腦
不過也算不上標配吧。
不僅是前端,只要你不是做Windows開發,Mac都是標配。
原因很簡單:MacOS是標準的經過認證的UNIX系統,Unix/Linux系統的工具鏈和庫基本上都可以通用。用包管理器下載二進位工具,只要有Linux版的,就有Mac版的。工具和庫包含的腳本大部分都是用bash寫的。非Windows平台開發的幾乎所有的命令行工具(以及所有的前端工具npm,webpack,gulp和眾多框架的cli)都是以UNIX風格設計的。上StackOverFlow搜個問題,解決方案如果涉及腳本操作,幾乎都是bash script.
至於為什麼Mac多而不是PC + Linux?其實我見過用Linux的也不少,但Mac更多些,主要是Mac省事,UI好用,而且MacOS預裝很多開發工具,可以省得折騰。
在Windows下用UNIX風格的工具鏈也不是不行,可以上MingGW,Cygwin。因為不是原生環境,配置一些庫和工具之類經常出很多莫名其妙的問題,因為太小眾,上網也搜不到解決方案。開發人員時間寶貴,何必花在這種吃力不討好的環境配置上面。
前端開發如果要測試IE,跑個虛擬機就行。
還有就是一些細小的體驗問題了。比如Mac上你插上一個外接顯示器,系統會記住兩個屏幕的相對位置和已打開程序的布局,下次只要插上同型號的顯示器布局就可以恢復。這對現在流行的非固定工位特別有用。以及蘋果的觸摸板手勢操作是所有品牌中最好的,我其他的都用不慣。
不可否認Mac比同配置的PC總是要貴,但對做開發提升的生產力而言這點錢是值得的。我認識的很多開發換新機都是直接買最高配置的MacBook。
現在還有些跑在瀏覽器里的雲端IDE方案,比如AWS Cloud9;要是實在沒有Mac,這些也可以在windows機子上跑。但C9也是基於Amazon Linux的環境。
windows在開發表現下太差,特別是安裝各種包和工具的時候。不過windows下軟體選擇比mac多也算個優勢。
linux常用軟體太少,沒法正常開展工作。
mac兼顧了兩者,並且mac配置都不低,所以用起來挺舒服,作為工作使用的電腦,很合適。
其實我還一直想配一台1W+的PC,用起來應該也挺爽的就是~
因為mac的高解析度,讓前端寫起來特別爽,賊爽,飛一般的爽。
Windows 的 CLI 太難用,Linux 的桌面太難用,Mac OS 只好成為這其中最好的選擇。
其實是沒得選~
因為說這話的人是mac粉, 並且不用調ie瀏覽器兼容性問題...
個人感受
1、linux是開源的,mac基本兼容大多數linux系統下的開源庫,
2、特別是現在前段工程化了,node以及各種devdependencies在win下兼容難受,
3、而unbuntu什麼等等桌面版的linux,在日常看看電影,用用微信方面又特別難受所以還是mac最適合開發- -
一句話回答:等公司倒閉的時候,Mac還能多賣回點錢來不是?
這個問題大概在2014年之後才成立,之前IE佔主流的時候,Mac上很多網頁能正常打開就不錯了,根本談不上「標配」,在世界範圍內,2012年中Chrome取代IE成為使用量最多的瀏覽器。
而在中國,這個時間則要等到2015年,頗為諷刺的是默認設置的Chrome我無法正常打開百度統計的頁面,顯示「載入Flash出錯」所以這個圖我是拿IE截的。
你們別拍我,百度的鍋,百度的鍋!我的Chrome設置的是彈出Flash提醒的,但百度就是不提醒,嘆號里也沒有。知乎現在可不能站錯了隊。(手動滑稽)
至少我在2014年的時候參與開發的項目仍然明確要求支持IE8,那會兒說Mac標配多少有點不接地氣。
蘋果在前端圈流行,主要是3個原因
1、Chrome
這個是最主要的原因,2008年12月Google首先在Windows上發布Chrome的第一個正式版本,並在之後的幾年間代替IE成為主流的瀏覽器,值得注意的是,Chrome在Windows平台上發布比Mac和Linux都要早上一年多,在非Windows平台上,2009年6月開始開發者預覽,2009年12月開始beta,2010年5月的Chrome 5.0才是正式版本。
之後的故事大家都知道了,社區多年來對IE的怨念被釋放出來,Chrome一路披荊斬棘並超過了IE成為最流行的瀏覽器。當對IE的支持不是必須而是可選的前提下,前端「逃離」Windows才成為可能。
2、iPhone
在iPhone出現之前,移動端開發世界裡是幾乎沒有蘋果的存在的,黑莓、塞班、Windows Mobile的開發工具都不在Mac上。iPhone App Store的成功首先將大批移動開發者吸引到Mac平台上,緊隨其後的則是Mobile Web開發者,但影響最為深刻的,則是2010年9月10號
蘋果聲明解除iOS應用開發工具禁令_業界_科技時代_新浪網
這個消息正式解開了Appcelerator Titanium和Nitobi PhoneGap(Apahe Cordova的前身)這些JavaScript開發框架身上的魔咒,正式承認了JavaScript及前端工程師在移動端開發生態的地位,那個時候前端圈子遠沒有現在火爆,反而移動端是大熱門,許多前端開發者瞅准這個機會進入了iPhone開發行列,當然也有許多開發者看重的是JavaScript的跨平台特性、開發便利(相對好招人)、適用面廣等等特點,這其中就包括我的前老闆,總之,iPhone的火爆吸引(迫使)大批開發者轉移到Mac平台上,建立了較高的開發者參與度(developer engagement)。
3、Node.js
最初的Node.js只能運行在Linux和Mac OS X上,2011年6月的0.6.0才支持Windows,因為使用了JavaScript所以Node.js被視為前端開發者接觸後端開發的首選框架。
很快Node.js的影響力就滲透到前端,這主要來自於前端工程化的需求,npm包管理器開始從Node.js社區滲透到前端社區,並成為AngularJS等現代前端框架用戶的標配。不過由於歷史的原因,npm在Windows上的成熟度一直落後於Linux和Mac,2012年2月的node.js 0.6.11才在Windows上標配npm,這也導致了整個Node.js社區對Windows的支持都慢半拍,比如node-gyp之類的對Windows的兼容性就一直不怎麼好。
總結一下
Chrome取代IE成為第一大瀏覽器,讓Windows對於前端開發者不再不可替代
iPhone成為重要的網上應用平台,iOS開發環境和Mac綁定拉升了Mac在前端世界的地位
前端工程化實踐依賴Node.js社區的諸多成果,而Node.js對Windows支持不佳,降低了Windows平台的地位
因此這一推一拉,Mac就取代Windows成了(2015年之後)的前端標配了。
對了,Linux呢?
Linux一來缺乏前端世界所依賴的圖像設計工具(Adobe系列),二來缺乏客戶端對應平台的強聯繫(如IE對於Windows,iPhone對於Mac,是的,不是Chrome也不是Safari,而是iPhone),因此Linux在前端領域註定不會得到類似Mac的地位。
標配不標配我不知道,反正我用MBP。前端需求變化是很頻繁的,經常需要跟PD撕逼需求,跟UED討論設計,跟後端聯調。這些都需要到處抱個電腦到處移動吧,而MBP連滑鼠都不需要,正好符合我。
那些回答里寫Mac顯示效果好的人咋想的 ?作為一個前端你寫的東西大部分都是Windows用戶在看,跟你用Mac coding有啥關係。
說這句話的人也許只是想表明他有個Mac,想那麼多幹啥。
一會問學Vue、Angular還是React?
一會問Mac咋成標配了?
一會問培訓出來前端飽和了怎麼辦?
一會問jQuery是不是過時了?
最後還問前端現在是不是很浮躁?
嗯,我覺得是的。
假設公司採購一批電腦,一半windows本一半mac本,公司會如何分配?
設計全mac,剩下的mac都給前端那些吵著要mac的,windows分給其他
這就是吵吵的好處,以後大家都相信mac是前端標配之後前端就能在物質上默認享受和設計一樣的待遇我寫前端,macos確實是標配。究其原因,還是天生unix環境,相比windows更接近生產環境,遇坑較少。另外就是macos的ui好看,續航時間長,輕薄,出個短途差可能配件都不用帶,帶一個裸本就可以了。10k對個程序員來說真不貴,大家一般都願意投資自己,提高編程效率和體驗
哈,Mac加上Windows虛擬機才是前端標配。
畢竟,Windows上虛擬Mac慢得難受:-)前端後端先別管他,在Mac下好歹還有個能用的C++編譯器,在Windows下VC只能編譯C艹,MinGW里的那個又特么整天ICE,簡直不想讓人活……
mac + 外界顯示屏 才是前端標配:
mac端:
桌面1:分屏開 命令行工具+翻譯工具,命令行實時查看報錯信息(但我一般也很少看)。桌面2: 編輯器全屏桌面3: 分屏開兩個瀏覽器頁面 (一個查資料,另一個愛幹嘛幹嘛)外接顯示屏端:
桌面1: 分屏開兩個瀏覽器頁面,用於調試頁面。另一個常用文檔,或者設計稿;桌面2: 開一個其他不常用的進程,我一般是音樂/或者電視劇什麼的。因為桌面我一直就是這麼設置的,所以基本上用熟了就是,三指右滑命令行翻譯,三指左滑瀏覽器頁面。單指滑入左邊界進入外界顯示屏,單只滑入右邊界回到mac端......
- 不卡
- 完全不用滑鼠- 這麼多頁面,用手勢切換頁面流暢- 基本不關機/但有時會卡死,筆記本可以隨開隨用- 充電兩小時 可以碼一天win下我也用,推薦wox 工具 + cmder命令行因為他們都說好我就用了
在知乎不跟隨是會被打死的
推薦閱讀:
※用Mac可以避免Windows上的頻繁重裝系統嗎?
※OS X 能不能自定義滑鼠游標?
※求助word for Mac 目錄下的灰色底怎麼去掉?
※Mac 上有哪些和 Potplayer 一樣強大的播放器?
※Mac有沒有什麼軟體可以讓CAJ轉換成PDF格式? ?