為什麼 Mac 適合編程?

c語言初學者,剛大一,在知友的躥騰下購買了rmbp(正在用她寫問題)。以前從未用過OSX系統,故想請問各位: 1.為什麼說起Xcode大家都說遠比不上VS,但是說起編程都說OSX比Win好?我暫時粗淺的理解是寫代碼不就是用這些Ide么,ide都差了為什麼還說她適合編程?

2.為什麼OSX明明諸多不方便,特別是軟體兼容上好多重要的軟體都不支持,支持了也偷工減料,還那麼多人喜歡OSX?

3.我承認多手勢操作挺爽的,瀏覽網頁挺爽的,鍵盤手感挺爽的。但感覺OSX雖然比Win有這些優點,但最重要的需求卻沒支持到,為什麼還那麼多人喜歡OSX?

4.請問Surface Pro3適合編程么?(VS運行是否流暢,鍵盤手感,大小是否合適)如果不適合請問什麼Win本比較適合編程?

——————————————————————————

因為我們學校沒怎麼教專用名詞,第一節課就上手編了,所以對這些名詞不熟悉,現在已經改過來了,希望不會誤導其他新手

——————————————————————————

隨手寫的問題居然已經有將近10w人看了,看到96k這個數字作為一隻小白已經被震驚了好伐!!


像我這樣,需要同時給 iOS、Android、Linux Server、Windows開發程序,那麼Mac就是唯一的選擇了。


人與動物最大的區別就是,人會使用工具。

下面是如何優雅的使用Mac開發之工具篇:

1. IDE

PhpStorm,收費的但絕對物有所值,世界上有家公司叫JetBrains,他們開發的IDE都炒雞好使,誰用誰知道 JetBrains IDEs to create a better Web: IntelliJ IDEA, ReSharper, RubyMine, WebStorm, PhpStorm, PyCharm

2. 資料庫Client

Sequel Pro ,可以輕鬆的進行MySQL的各種操作,關鍵是人家還是免費的,我最喜歡的功能就是,可以通過一層SSH隧道進行MySQL的連接。

3. 版本控制

Git,現在大家都用Git了,還在用svn的請不要關注我, SourceTree Free Mercurial and Git Client for Windows and Mac應該是目前最好用的Git圖形化界面了。

4. Terminal TotalTerminal Zsh Ohmyzsh

程序猿用Mac的一個很關鍵原因就是MacOS是一個UNIX系統,可以很方便的模擬Linux伺服器環境。配合zsh 和 ohmyzsh,在同事面前不要太炫酷

配合TotalTerminal is a system-wide terminal accessible via a hot-key 的快捷鍵呼出功能,簡直是如虎添翼!

5. 文件傳輸

https://cyberduck.io/ 幾乎支持所有的文件傳輸協議,非常方便

6. 命令行相關

  1. 前面說到Zsh OhMyZsh。配合眾多的插件非常的心應手。

  2. 為什麼我不喜歡Alfred,首先因為它收費,其次就是有了Flashlight 這個東東,配合10.10以後的Spotlight,能實現很多炫酷的功能:

    1. bd xxxx,直接百度xxxx關鍵字

    2. ts 轉換時間戳

    3. 甚至可以自己動手寫插件,這一切都是開源的。
  3. 各種軟體包都可以用HomeBrew、Port方便的安裝,不用像在windows上用虛擬機或者Cygwin。
  4. Mac下寫C、C++的系統程序一般情況下都可以直接移植到Linux下運行,這點非常的方便,當時 auxten/gingko · GitHub 、auxten/gko_pool · GitHub就是在Mac下寫好才放到Linux運行的。

7. 快捷鍵的一點Tips,絕對是MacOS獨有的:

如何評價 OS X 的快捷鍵? - Mac

幫朋友打個小廣告

Reboot OpsDev 交流群 365534424


大一你學C語言就用得起mbp是你的福氣。

我到現在都還買不起mbp呢。

你覺得mbp難用?你試試Linux唄?

至於適合編程的本?隨便,我反正覺得只要顯示器和鍵盤給力其他無所謂。


我覺得大家都忽略了一個東西。用戶群

mac適合編程(寫Windows軟體的當我沒說,在mac上裝Windows也當我沒說),除了Unix哲學,還有用戶群體本身。

有一大群的黑客/技術宅他們自己就在用mac,相信你看youtube上的各類技術分享,常見到mac,我記得前幾年Hacker News上有個問卷,黑客們都用的什麼操作系統,mac OS X 是排第一位的,甚至超越了linux

操作系統為用戶提供編程環境,反過來,優質用戶又為自己使用的操作系統貢獻優質工具

如此循環,就成為今天我們體驗良好編程環境。


Windows 啊,是給只說英語的人設計的。我想在 Windows 10 上配一個正確的英文/簡體/繁體的 language failback,竟然不能。


每一個被Linux and Unix 虐過的程序員最後都投入了mac的懷抱


抖個機靈,分析問題要從問題的要素開始。「為什麼 Mac 適合編程?」,能這麼說的都是些什麼人呢?開發所基於的系統決定了你的派系:win,mac,linux,及其他少數派。

1)需要調用系統api的開發,基本上win開發只能在win上,mac只能在mac上,linux的可以在mac和linux上,(我說的絕大數情況下,喜歡折騰的除外。)mac先得一分,mac+1 、

2)做web前端開發,三大平台差不多都可以,但是主要是在win和mac上,linux差些,所以 mac+2 win+1,

3)伺服器端開發,目前的伺服器的市場佔有量linux遙遙領先,兼顧linux的命令和精美界面的mac,好用的不要不要的。在這裡mac拉了好多贊。mac+1024

所以,撇開個人喜好,mac適合編程就是這麼來的。


看你編什麼程序。

你編windows程序還用mac就是自己給自己找麻煩了。

1. mac適合編寫ios/MAC程序(沒有mac也編寫不了)

2. web網路編程。因為web伺服器都是linux。mac是unix like環境,命令跟linux一樣,可以用brew直接建立編程環境,編寫,直接部署,麻煩會少很多,直接ssh上去管理,都很方便。

當然你的伺服器是windows當我什麼都沒有說。


大一大二寫程序懵懵懂懂,最開始的Windows用的應該是盜版軟體,大致只用Code Block寫C和C++,Eclipse寫Java,總之代碼寫的很爛。

然後大三入手了mac,一開始只是原來的Thinkpad實在太卡了,後來還一直被室友各種打不了LOL什麼的嘲笑,堅持編程到現在,雖然不敢說很強,但是至少比以前進步太多。

mac內核是Unix Darwin,內置了很多Unix的軟體,原來Thinkpad上裝著Ubuntu和Windows 7,樓上有人說得很好,比Linux更舒服的界面,比Windows更簡潔的環境。

1.自帶Vi和Emacs,所以只需要糾結自己做哪個派別就好。配置功能等只要follow普通用戶就好。

2.自帶Apache伺服器,配置wordpress做自己的博客分分鐘的事情。

3.自帶SQLite資料庫,MySQL也有mac客戶端,學習資料庫分分鐘的事情。

4.支持Python、PHP等語言,本人在做Python科學計算和機器學習的事情,所以最開始接觸mac的時候順手學了Python語言。

5.Xcode和VS,還是更喜歡Xcode,自帶openGL庫,配置boost庫,openCV庫是非常簡單的事情,恕我VS編程少,真的用不懂VS。

6.macport和homebrew,可以讓你下載到大部分軟體,現在從wordpress轉到Hexo,表示Node.js大法好。

7.自帶Git,直接從Terminal啟動Git服務,所有Xcode代碼可以備份。

8.自己編寫iOS程序,然後在設備運行很爽。

加點私貨,承認Windows的VS很不錯,也表示Linux開源大法好。用什麼樣的電腦並不能決定你是怎樣的一個碼農。但是越來越多的碼農小夥伴把筆記本換成了mac,恩,是的,性價比並不高,在咖啡館敲代碼怎麼看都是一件裝逼的事情。但是在mac上敲久了代碼,久而久之,會有一種要把自己的代碼變得更高效,更好的錯覺。因為mac,戒掉了遊戲,以前花在遊戲上的時間,現在花到了琢磨技術上。以前很討厭敲代碼,因為總是覺得寫不好,現在打開Xcode看到自己很多project反而很開心,大概用了這麼多UI優美的mac軟體,和Unix下高效的軟體之後,即與善人居,如入芝蘭之室,久而不聞其香,即與之化矣。


如果是要做windows開發,surface pro 3跑vs是很好的。

如果是要做iOS開發,那mac幾乎是必須的。不管xcode有沒有vs好用,搞iOS開發,默認就得用它。

除了這兩者之外,還有其它很多很多開發,比方說,跑在linux上的伺服器端程序,像php呀~go呀等等~這類開發,其實用linux最合適。否則在win/mac上搞各種編譯工具鏈支持等有時非常麻煩。

但是,性能強勁+工業設計優秀的linux筆記本非常難搞到,而隨著虛擬機技術的發展,在mac或者win下跑linux性能也是不錯,所以,也有很多童鞋買mac,以擁有一台性能工業設計均卓越的筆記本,然後跑虛擬機做開發,就好像我。

所以,用mac的人還是蠻多的。

同理,蘇菲也是很好,好吧,其實我air跟蘇菲兩者都有,混用的。

====== 我是來黑蘇菲的分割線 ======

這幾天用surface pro 3做了大量開發,結論是我應該會回mac去。蘇菲,或者說windows還是不適合。

最主要的問題是windows 8的hyper-V,這貨居然獨佔了虛擬化硬體資源,用它跑虛擬機,比方說windows phone,便無法跑別的虛擬機,比方說安卓的。

我寧可搞台mbpr,然後在虛擬機裡面搞windows開發;而且也未必需要,現在xamarin搞.net開發也越來越成熟了。


根據工作、學習、生活需要自己選就好了。

做Windows系統開發就不要選Mac了;要去星巴克喝半天咖啡還是用Mac的好,否則電池都不夠用的;

有錢就MBP+Thinkpad,各種編程環境、操作系統都熟悉一下。

沒錢就趕緊學習吧,等有錢了,買了MBP,你會發現各有所長,習慣就好。


我來說說為何(大量)程序員覺得Mac更適合編程。

  1. 程序員需要買筆記本,而且肯定不會選擇中低端的那些,至少要有i5 CPU、SSD之類的,在這樣的要求下,MacBook無疑是很好的選擇,和MacBook達到相同配置、具有相同續航水平的Windows筆記本基本都在和MacBook一樣的價位。但考慮到MacBook的工業設計水平和適合裝逼的Apple Logo,MacBook確實成了最合適的選擇。選擇了MacBook之後,要是想用Windows,體驗就很差了(續航、操作各方面),因此比較少可能在MacBook上用Windows。
  2. 不少程序員對M$有敵對情緒,不過說真的M$的東西基本都很封閉,你要是搞M$的那一套語言(比如C#)、Framework的話,全部東西(IDE、操作系統等)都套在了M$的產品里。但Apple就好不少了,比如OS X上默認的C/C++/ObjC編譯器clang,它首先是個Open Source的編譯器,同時Apple也向其貢獻代碼促進發展。M$的編譯器就是封閉的,雖然C#要開源的,但目前還沒完成,我們先不討論這個。
  3. Xcode確實比VS渣一些。VS我感覺從2012開始代碼編輯功能有了很大改進。另外Xcode是免費軟體,VS是收費的(http://Amazon.com上可以搜到VS 2013 Pro售價在500刀左右),但VS有免費的Express版本,我猜體驗是要下降一些的(不然誰會去買高端的收費版本)。不過他們倆在JetBrains的IDE面前都很渣。(下面評論有提到VS 2013 Community,我查了一下確實是免費並且相對full feature的版本,不過是這幾月才推出的。看來M$在這方面是計劃變得更開放。)
  4. OS X是Unix-like操作系統,並且POSIX compliant,這意味著大量針對Linux編寫的程序可以在OS X直接編譯(或者做極少的修改就可編譯)。反觀Windows,偏差就比較大了,雖然有cygwin和mingw這樣的東西,但要在Windows下編譯一個針對Unix系統設計的東西還是挺折騰的。這點可以參考Ruby,雖然Windows下是有編譯好的Ruby(RubyInstaller for Windows),但可以看到他們才搞定到2.1.5,Ruby最新版本已經到2.2.0了。如果用Ruby安裝gem,gem如果用了native extension的話,在Windows下編譯有時也會出偏差。除了編譯的問題,在OS X下你也可以體驗Shell(bash等),可以學會用終端操作許多東西,這樣當你需要操作一個Linux伺服器的時候就能比較快的上手。當然有人說Unix-like的操作系統你也可以用Linux啊,但說真的Linux的桌面環境相比Windows和OS X屬於沒法用的那種。

由於以上幾個關鍵原因,不少程序員都會推崇Mac。然後回到題主的四個問題:

  1. Xcode和VS都是IDE,不是編譯器。然後Xcode用的編譯器是clang,我個人覺得他比VS的編譯器和gcc都好。
  2. 寫代碼需要的軟體OS X上基本都找得到,比如JetBrains的IDE都是跨平台的。所以不知道你說的重要的軟體是啥,如果說是Word那一類,那些和程序員關係不大。(如果你覺得Word不好我推薦你用Google Docs)
  3. 同2
  4. Surface Pro 3的配置運行VS應該沒問題(我不清楚低配版本的情況,i5 CPU+8GB內存肯定是夠了)。但我個人不看好Surface這個產品,感覺產品定位就有問題,作為平板來說相比於iPad Air十分重,作為筆記本感覺也比較尷尬(鍵盤手感),加上缺少Metro應用,基本上你不會想著使用觸摸。然後那個觸控筆也偏雞肋。還有Windows對高DPI的逗比支持。

利益相關:MacBook Pro 13、Surface Pro 一代用戶。

=====================================

看下面有討論gcc、clang和MSVC優劣的,我來簡單說說我知道的:

  • 在Unix-like操作系統里,只有gcc和clang可以選擇,Linux選擇的是gcc,OS X和FreeBSD選擇的是clang。gcc的好處是在Linux下有最好的兼容性,系統內核、系統的library都是gcc編譯的。clang相比gcc的優勢大概就是編譯速度,和對標準支持的速度。我測試過clang的編譯速度是比gcc要快一些的,而且通常給出的錯誤信息更友好一些(gcc4.8開始有一定改善)。在標準的支持方面,gcc 4.9才完全支持C++11標準(regex的bug到4.9才修正),而clang 3.3就已經完全支持C++11標準,clang 3.4已經完全支持C++14標準。gcc相比於clang還有一個優勢,在有些情況下gcc的優化器比clang更好。(參考GCC 5.0 Outruns LLVM 3.5 Compiler By A Bit On Core-AVX2)
  • 在Windows下,MSVC無疑是最好的選擇。使用gcc通常是為了編譯某些針對Linux系統編寫的代碼。但是Windows下的gcc是基於cygwin或mingw,他們用了自己的一套runtime,沒法和MSVC的runtime兼容。clang 3.5開始,官方提供了對Windows的支持,我看了一下它還是基於mingw的。但是clang在後續的版本中會逐漸加強對MSVC的兼容性(參考MSVC compatibility)。
  • 最後關於gcc和clang,gcc的代碼是出了名的「結構混亂」。例如你要實現一個IDE,希望利用編譯器里的parser來幫助分析代碼,gcc中的這個模塊就幾乎無法取出,但是clang有組織好的API可以直接使用。基於LLVM,你可以實現自己創造的語言的編譯器。(事實上不少語言的編譯器就是基於LLVM的)


你一個大一的,用什麼不都是用么?哪來的不便啊?你有啥重要需求啊?啥重要軟體啊?舉個例子唄


要什麼用什麼,我還覺得終端更適合編程!


很多回答已經過時了。。

自從windows 10出了bash,我基本已經拋棄mac了。只有ios的東西才拿回來用,否則幾個月放在那吃灰都可能。

因為mac很久都沒用,翻牆軟體已經連不上了。就連需要git個東西,我都是windows下bash git出來,考到mac里。。懶得折騰了。


Windows 下面用 VS 之外的東西編譯簡直自虐,尤其是那一套從 *nix 移植過來的工具鏈。我為了跑個程序還得在 Windows 上面運行一個 *nix 風格的 shell 然後跑那些移植過來的編譯器之類的我為啥不直接用 *nix 呢?以及歷史遺留的字元編碼問題,路徑問題,環境變數問題之類都是大坑。


到2016年,Windows10 RedStone已經同時擁有了更好的圖形界面和更好的Linux-Like環境

但是如果你想同時開發.Net和iOS的話Mac仍然是唯一選擇,因為Mac下跑Win虛擬機已經非常成熟,運行VisualStudio跟Windows真機已經差得不多了,而反過來則不行


iOS在安卓面前秀優越也就算了,這市場佔有率不到10%的Mac OS操作系統哪來的自信?

Mac OS適合設計那是事實,因為人家顏色管理和屏幕顯示都是上乘。要說Mac OS更適合編程那是無稽之談。


mac適合寫mac/ios app

win適合寫win32exe 或者.net

反著玩就是作死

看你自己的喜好吧


因為mac上不能玩遊戲。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。


推薦閱讀:

在前端開發中,你曾經遇到過什麼大坑,很久才跳出來?
程序編譯器是否存在這種機制?
如何評價《AWS S3 雲存儲莫名消失:各大網站和 Docker 紛紛中招!》?
初學 C/C++ 時有哪些需要掌握的好習慣?
不寫業務代碼的程序員工作內容是什麼樣子的?

TAG:Mac | 程序員 | 編程 |