Linux 各個發行版與 OS X 相比哪個寫代碼更舒服?為什麼?
請各抒己見
首先申明,我精通Linux和window,OS X也用了4年了,目前主要做web開發,所以角度和別人不同.
很多人說spot light(OS X下的桌面搜索工具)是最好的,對普通用戶是這樣,但程序員的工具要強悍得多. http://blog.binchen.org/posts/how-to-do-the-file-navigation-efficiently.html
我的觀點,Linux對程序員來說是最好的工具,前提是有寫腳本自由組合工具的能力.
Linux:
- Emacs和Vim的老家,兩者都是神器
- 平鋪式桌面極其強悍, 我強烈推薦i3,當然優秀的替代品很多,可實現好萊塢電影中黑客行雲流水般的感覺- 大量優秀的開源工具,可輕易結合起來再編程,比如命令行的scrot用來截圖- 生態環境成熟,安裝最新版的工具很容易更多細節參考我的"Linux桌面使用之道" (http://blog.binchen.org/posts/linux-zhuo-mian-shi-yong-zhi-dao.html), 也可參考我的https://gist.github.com/redguardtoo , 特別是git和bash設置
OS X:
也是Unix,homebrew可方便安裝Linux的工具,所以也有大部分Linux優點- 不支持平鋪式桌面,這是最大缺點- 默認安裝的開源軟體版本太老, 刪掉它們是額外的體力活- 支持X windows,但細節不完美,導致我工作不流暢,所以X windows相關的工具在OS X下只能不用了- 專業設計師同事告訴我圖像設計這塊很強,我相信他的判斷,程序員只要做些基本的圖像處理就行了,我對於Linux的Gimp的界面不滿意的,但圖像處理我用得不多.
- 常用軟體快捷鍵支持不夠,遠落後於Linux和windows- 大多數工具要花錢買,免費的質量不夠,比如剪貼板工具- 蘋果的桌面軟體和手機軟體開發當然蘋果是老大了小結一下,Linux就是頂尖工程師為工程師設計的,寫代碼是極其爽的,關鍵是接受其文化和慣例.
比如有人提到Linux下文檔處理還有版本控制的前端界面軟體不足.但是geek都是用命令行來處理的, 其高效是一般人難以想像的. 舉例來說,文檔是用Markup language 生成再轉換的. 至於版本控制,這裡有個例子http://blog.binchen.org/posts/how-to-accept-the-github-pull-request-efficiently.html
有人說圖形界面比命令行方便,那是他們眼光狹隘,以為高手操作命令行和他們一樣,比如我把一生中用過的命令行都存儲在~/.bash_history中,有自己開發的工具查詢優化,效率是小白難以想像的.Chen Bin"s answer to What are some time-saving tips that every Linux user should know?正好我這兩個環境都用,公司里在Linux下開發,回家在Mac OS下寫寫代碼。
Linux要看什麼發行版了。如果是在台式機上,Linux用ubuntu,裝上適合自己的開發環境,舒服程度我覺得和mac下差不多。我寫程序大部分時間其實是和Shell打交道,而ubuntu和mac os用的Shell都是bash。如果是筆記本電腦的話,linux明顯比不上mac了。最主要的一點是Linux難以對筆記本的CPU消耗控制得好。在我的thinkpad上運行ubuntu 11.04,一會兒鍵盤就會變得很熱。而在mac上絕對不會出現這種問題。這麼說吧,當你還停留在糾結用什麼系統的時候,你寫什麼代碼都不會舒服的,因為你作為程序員還沒有達到隨心所欲的程度。
我這麼說的意思是:工欲善其事,必先利其器。程序員的編程環境不是可以無腦的開始使用的東西,它是你的工作平台。而這個工作的舞台一旦搭建好,你會有興趣在剩下的日子裡花很多偶爾空閑與瑣碎的時間去完善它。
而這個時候,操作系統對你來說根本已經不存在。畢竟,幾乎沒有什麼靠譜的編程環境是單平台的。
我有三個平台,三台機器,每個機器已經被我折騰得一摸一樣,一樣的字體,一樣的布局,一樣的感受。。。Linux 與 Mac OS ,我認為:總體還是Linux爽,Mac OS好多收費軟體非常不錯,如果有錢的話,還是Mac OS,如果沒有錢的話Linux還是很不錯的。
俺大多數時間只寫 python php html css js 什麼的,覺得還是 mac 爽很多。無數次嘗試 ubuntu 作為主力桌面,最終結果於把所有電腦都換成 mac 系就不折騰了。像我寫這種代碼的通常也不上 ide 了,一個順手的文本編輯器就成。mac 下滿足這個條件的軟體非常多,比如 textmate 這樣的神器,coda 這樣的 html/css/js 利器,還有些小眾的比如 Kod 都很順手也很容易上手。當然還有一點,mac 桌面很多細節做的很好,對於寫代碼這種枯燥的事情,mac 帶來的愉悅感不是 linux 可比的。其它的我覺得 mac 和 linux 沒啥差,畢竟 osx 也是基於 bsd 的。當然我只是對於用桌面的人,那些 vim 和 emacs 大牛們,其實啥系統對於你們來說根本沒意義吧。。。
如果用IDE作為開發工具,譬如我用IntelliJ和Rubymine,強烈建議用OSX。
如果用Vim/emacs這種,譬如我些Python腳步,都一樣,沒啥區別。
純寫代碼的話Linux和Mac沒啥區別,估計最大的區別就是Linux能比較方便的在本地搭建一些伺服器測試環境比如本地建一個Hadoop什麼的,雖然Mac也能幹,據說要麻煩些,我沒試過。不過這些需求因人而異,有的人沒用,有的人有遠程伺服器就沒必要在本地搞一個。
而mac的優勢就是有很多其他軟體,比如遊戲或者QQ啥的,不是說Linux沒有但是肯定沒有Mac多。這些軟體並不會對編程有什麼幫助,但是會影響心情,心情這個東西可很難說...還有就是作為桌面操作系統,Mac比Linux好很多,這個好是體現在很多方面的,具體的就不細說了,大家都知道。所以要是想買筆記本或者家用電腦什麼的,有條件的還是買Mac吧,當你如果你喜歡折騰的話,你可以試試Linux。
PS:如果你平時寫程序很少用到或者不用Shell的話...Windows也是不錯的選擇。每個人對「舒服」的定義是不同的。如果覺得開發效率越高越舒服,顯然你對哪個平台的開發環境更熟悉、經驗更多,這個平台就會讓你覺得更舒服。
不過,我們這一代的人,都很幸運。有條件的同學,可以去問問那些深藏在計算機學院或研究所的老教授們,問問他們年輕時是如何編程的,真心能讓人掉淚。再看看你們這一代,誰不是台式機、筆記本、手機一樣都不缺,甚至家庭條件稍好的敗家高手們,上大學期間就租了房子,買了一堆電腦放在房子里做試驗。Win,Linux和Mac都用過了。
最終投MAC。 Mac有Unix的血統,毫無疑問,幾乎在Linux玩的一套可以搬到Mac環境中, 並且還可以告別Linux擾人的圖形界面。關於IDE:
好吧,很多人可能會喜歡vi,有人喜歡Textmate我不是那種super hacker,沒有命令癖。
Python用PyCharm
Objective-C用XcodePHP, CSS, JS,HTML用Espresso (強力推薦!用Espresso+suger可以簡潔又強大,最近剛發布2.0的版本)
所有的代碼管理用GitHub主要還是和你開發的應用類型有關。既然這是個非常主觀的問題,不如我也加個有趣的答案。有 Googler 曾這樣調侃[1]:
"Chrome is a Windows application developed on Linux and designed on Macs."
個人感覺,現在一個重要的影響因素是 git。它在 Linux 上的很多優化使得性能相對 Mac 要好很多。在大項目上,轉到 Mac 上明顯感覺到速度的差異。
[1]. http://neugierig.org/software/blog/2011/09/platform-of-the-future.html這篇文章其實在探討類似的話題時代在進步,Linux發行版也在進步。
當今Linux的可靠性和易用性被很多人低估了,很多人印象中,Linux還是那個『做什麼都要配置很多』的系統,彷彿只要一裝Linux就要寫幾百行的配置文件,圖形界面很差,動不動就崩潰。實際上你可以折騰Linux不等於你就要折騰它,現在的很多發行版在很多系統上都可以開箱即用,基本上不用折騰,而且GUI很穩定,倒是OS X還要額外更新Python啊裝homebrew gcc什麼的,而且Xcode和OS X最近都有越來越慢bug變多的趨勢。
言歸正傳,哪個舒服要看具體的開發任務,個人覺得越前端,越依賴商用軟體的越適合在OS X上開發,因為OS X得到的支持更多,而且相關工具在OS X上更集中。越後端,越依賴開源軟體的越適合在Linux開發,因為Mac OS X的軟體模型其實更像是Windows,相對比較複雜,容易產生依賴和管理問題。比如說像系統的組件和brew的組件之間的衝突就經常帶來一些麻煩。而且一般生產環境終歸還是Linux。為什麼沒有說調試呢?調試的話(不說內核代碼調試), Linux比Mac os 好用多了。 開發 和 日常管理加起來的話, 我喜歡MAC OS。
只有用家能定製以及用家知道為什麼要這麼定製的時候才會寫代碼寫起來舒服。
這也是我為什麼曾經用emacs用得很痛苦後來轉vim後看了vimcasts後好多了的原因。
所以,為什麼不從一個好的shell長什麼樣開始呢?畢竟julia-shell似乎linux與os x都能用的Put This In Your PipeShelling Out Sucks或者從最有哲學的修行僧最多的Perl那裡去看看?舒服這個詞本身的定義就很是模糊,每個人都有對舒服的定義。按我的理解這裡的舒服應該是效率更高的意思。Mac和Linux都可以做到很高的開發效率,提高效率的重點不完全在工具本身,而是在對工具的熟悉程度上。
Mac相對於Linux/*BSD來說,省去了很多桌面環境的調優工作,比如對字體的調整和硬體的支持,這些往往是使用Linux/*BSD時佔用大量時間的工作。Linux/*BSD作為桌面環境還有一個問題就是常用軟體的可靠程度還不足,如果你有更新軟體的強迫症,那麼很容易的就陷入某個未知的bug,這也會佔用你的時間去處理。當然,如果你本身是一個桌面環境的開發者和調試者或者是相關工作的,那確實很有幫助。
價錢上Mac確實要比Linux貴,這個只是一個直觀上的貴,如果把你花在調優Linux/*BSD上的時間成本計算進來,我不確定這個價格是不是還是Mac貴。這個和你對Linux/*BSD桌面環境熟悉程度有關。另外,Mac OS X本身的內核部分也是開源的,但是這個話題真心和開源與否無關。開源一樣可以收錢,封閉並不意味著昂貴。
再說開發的項目本身,如果項目本身嚴重依賴Linux/*BSD環境,且在Mac下找不到一個可以替代的開發環境,那麼選擇Linux/*BSD桌面或者虛擬機顯然能夠提高你的開發效率。
再說開發工具,主要就是IDE和編輯器一類的。Linux上有的基本上Mac上也都有。- Vim/gvim
- Emacs
- Eclipse
相反的是Mac上有的一些商業的編輯器在Linux很是匱乏。
- Textmate
- BBedit
- Coda
結論是:Mac能讓你安心的關注在自己應該關注的問題上來,Linux/*BSD做桌面環境會讓多出很多時間去做與自己開發無關的事情,根本上講還是取決於對開發環境的了解程度和工具的熟悉順手情況。
之乎上果然不一樣啊。我以為會有n多人說都用vim/emacs什麼,導致這個問題完全沒有意義(因為根本不需要IDE神馬。)
本質上沒區別,mac本來就是一個虛擬先。mac多個桌面,支持軟體多些。也可以從功能上mac強大點。
我感覺還是linux比較舒服些吧,看個人愛好吧
正好三個系統我也用過,開發過css js html asp shell java iOS Android
總體來說,除了iPhone開發,其他的Win下都可以,mac對win沒有什麼優勢(個人平時喜歡mac os系統).如果只是linux和mac比較linux下沒有什麼優勢.開發工具系統穩定系統易用上linux都有些差距.如果你是做前端web開發,還是win下吧.如果是後端多一點,不要求在linux下運行的程序不做Android開發,那就選擇mac吧.從word等辦公文檔比較,linux劣勢相當多.
開發工具上,linux上,也沒有優勢,就一個eclipse界面和代碼字體都沒有mac下漂亮,就算設置同一種字體,也離mac下的字體有些差距....(這點很無語).文檔編輯工具上,Linux下就更鬱悶了,在Linux下一直沒找到款合適的文本編輯兵器.Svn管理工具,也沒有特別合適的.離Mac下的專用管理工具相差有點大.(平時我都習慣命令行下操作Svn)日曆,郵件管理工具等,看個人喜好了.如果與手機日曆事件聯繫人同步,以及與系統緊密結合來看,Linux完全沒有優勢.再說msqlmysql等資料庫管理工具,chm幫助文檔亂碼,以及其他亂碼...哪樣Linux都要你來回折騰你.聊天工具下載工具偶爾娛樂的小遊戲音樂等,Linux都相差太遠了.操作的易用性上,滑鼠+大觸摸板...Linux下就更沒有辦法比了......隨著App Store的mac版本提供出來,對比Ubuntu下的軟體商店....Linux下在桌面開發,和一般的程序開發上,沒看到一點優勢.以上為個人的喜好.涉及到個人習慣問題,可能你在剛開始用Mac時,對使用習慣會相當惱火,過了這個磨合期就好很多了,會慢慢享受Mac帶來的這種改變.目前,個人在Mac和WinUbuntu下三個系統切換開發.Mac是大愛.
1 有裝逼情懷的,mac或者ios開發的,藝術設計之類的,經濟不窘迫的,用mac吧。2 寫文檔,寫代碼,不非得依賴linux平台(環境的),用win吧。(你還能玩玩兒遊戲)3 其他情況可以都可以使用Linux。3.1 mac上面很多軟體都要收費。3.2 wps linux版覺得非常好用。3.3 經常使用終端的,mac的終端沒發現有什麼驚天的功能,是在linux終端上沒有的。3.4 桌面特效?壁紙? 這些東西等你投入工作的時候基本就無視了。3.5 蘋果的鍵盤很少有長鍵程的吧?3.6 QQ?手機掛著就可以了,webqq也可以滿足日常的溝通了。3.7 發行版一大堆,總有可以滿足自己的。(這裡推下opensuse和國人的deepin,前者的yast確實方便,終端和圖形界面都可以運行,方便配置;而後者是國人linux裡面做的很不錯的,非常尊敬他們)3.8 不便攜?電池一會兒沒電了?不能到咖啡廳編程? 全身關注寫代碼的時候都在家或者公司吧,一個11~13寸的屏幕用於寫代碼是不是也很不方便?3.9 Mac筆記本合上就可以休眠了,工作狀態完整保存!連win都可以睡眠,還擔心什麼?---------------------------------2015-01-26 更新一條----------------------------------------------------- 3.10 deepinLinux 可以直接使用商業的 Crossover。3.11 (等待繼續補全。。。)
為什麼題主不用windows呢? 能否解釋一下.
推薦閱讀:
※vmware, visual studio, steam dota2這種需要極大內存的程序是如何分配內存的?
※想成為 Linux 驅動工程師,需要讀些什麼書?
※求推薦學習linux命令的書籍?
※在 2015 年的今天,Linux 是否比十多年前更適合大眾使用了?
※gentoo 和 archlinux 有什麼優缺點?