程序員為什麼要用 Linux 環境編程,用 Windows 不可以嗎?

現在伺服器windows也多了,比如用myeclipse、eclipse之類的IDE編程,真的有區別嗎,需要刻意到Linux下編程嗎?

======2015.7.24=======

一直沒有補充,在仔細的看大家的回答,我覺得都很好,可是後來慢慢變成了系統之間的掐架,甚至還有@地鐵風 這樣說「你以為用 Java 的才叫程序猿么」,我實在覺得可笑。

說點個人觀點,雖然我只是大三的學生觀點也許不成熟。

語言只是一種工具,說出上面這些話的人本來就是有點可笑的,不管哪種語言沒有誰更好,這不過是一種實現你的想法的工具。而我問的這個問題,只是意在想知道是否程序員一定要具備linux開發的技能。而對於這兩種系統我自己覺得沒有誰好誰不好,linux是不少程序員的最愛,當然是有他的有點,但是windows也有它不可忽視的優點,桌面應用是絕對遠超linux的。這裡肯定有笑的,心裡說「程序員要什麼桌面應用啊,終端才是真理」,但是就我看來,作為一個程序員,應該明白,自己開發的東西也是為了更多人的便利,IDE的存在就是為了讓程序員有更好的體驗感,怎麼就可以無端排斥IDE,我做java開發,可是我也非常傾佩VS的強大,所以對一個程序員來說,爭吵哪個語言、哪個開發工具、哪個系統更好是沒有意義的。所以後面各位朋友回答的時候,請不要因為這樣的問題吵起來了,我想問的不是這些。


似乎沒人提到構建Android系統的問題。

如果你要構建Android本身(不是app,不是app,不是app),從源代碼管理到編譯,google只提供了linux和mac兩個平台上的工具。mac要錢,所以就用linux了。


作為3系統用戶………………我來說兩句。

1st,我是電子狗,so,如果需要畫電路圖,跑電路模擬,windows是必須的。

2nd,寫嵌入式Linux程序,寫Arduino程序,Linux是必須的。

3rd,寫iOS程序,沒mac能頂?

當你啥刀子都知道該怎麼用,用在什麼地方上,你就不會問這問題了。


鑒於 @Kenneth這位仁兄屏蔽我在他答案下的評論,所以我來說兩句。。。

利益相關:我是搞Web開發,也玩iOS開發,所以Linux、MacOSX、Windows我都用過。

怎麼說呢?這三個系統各有各的好吧,我喜歡linux的終端多過Windows的cmd,Windows桌面的界面多過Linux和OS X,沒有什麼特別的原因,就是習慣和方便。

談談日常的開發,我們公司都是在Windows進行的開發,然後再把它部署到Linux伺服器上面。我不知道知乎是不是有一種政治正確,好像用Windows就自帶原罪什麼的,用Linux和OS X就比Windows的高人一等。無論用什麼系統,對於我來說,都是工具而已,什麼的工作需要什麼樣更合適的工具,僅此而已。大概是我的水平還不夠,所以還沒辦法像在座的一些大神深刻理解某些系統的好處,並且至死不渝地當做一種宗教來信仰。

我非常不贊成為黑而黑,實際像我評論的那位仁兄一出口就是"程序員的世界90%不屬於微軟",我認為還是需要先謹慎地調查一下實際情況再說。作為用數據說話的我,從CSDN上面找到這樣一篇調查,相信實際情況應該也跟調查情況差不多:

如果大家有興趣的話,可以去查看這篇原文:2014中國軟體開發者調查(一):Java最受歡迎 第二語言JS使用比例最高-CSDN.NET

該說的,我都說了,最後說一句:

文明上網,理性發言,用事實和數據說話,不要帶有人身攻擊!


太方便了,我現在雙系統,用Linux多。

像娛樂什麼的,打打遊戲才用win


編程不僅僅是要你說的那些工具。最重要的是類Unix環境。

首先是統一utf-8的環境,不用費心思去搞語言編碼的問題就足以拋棄windows了。

然後是大量的工具。在linux上可以很方便的scp或者rsync日誌下來,然後用sed,awk等等分析。

用慣了命令行操作以後,window的cmd是完全沒法上手的....

但linux的圖形界面確實不大好,硬傷。

所以mac是最適合程序員的。有iterm,有漂亮的UI,便攜,續航時間久。輕~


開發什麼軟體就用什麼系統,開發linux軟體用linux當然比windows方便,更多人使用linux只因為更多人需要開發運行在linux上的軟體(android也是linux)。

linux搭開發環境比windows方便太多倍了。伺服器開發有很多依賴在linux下一個apt-get能搞定在windows下能累死你。編譯android源代碼,做ndk應用,用linux用方便很多。linux下所有編碼預設都utf8,而windows就存在gbk碼,utf8碼,utf16/ucs2le之間轉換的問題。 以上的問題你要說在windows下有沒有辦法,也不是沒有辦法,但都更折騰。

所以選擇linux無非是為了一個簡單的原因:不折騰,少折騰。

咱們辦公室堅持用windows的都是折騰黨。他們費九牛二虎之力讓windows開發環境一樣能用的時候,卻總會發現程序在windows下開發調試存在這樣那樣的問題。

鑒於我們的程序最終一定是在Linux下運行的,折騰windows下的環境並無意義。我個人是經常在自己的模塊加宏定義「該功能不支持windows平台」,以避免造成不必要的麻煩。

所以其實,你需要什麼開發環境,取決於你的程序在什麼環境上跑。

開發蘋果軟體,用蘋果最好了,開發linux/android/伺服器軟體,用linux最好了,開發windows/wp應用,用windows最好了!~~因為這所謂最好的方式,其實都是最不折騰的方式。


如果不是開發windows桌面應用的話,windows就僅僅是選擇之一,問題倒是什麼一定要用windows呢?

我的團隊用什麼系統的都有,他們愛用什麼用什麼,只要不耽誤幹活,我不攔著。


三大系統都這麼久了,而編程作為一個系統的發展的核心,我覺得說哪個比哪個系統編程更強我都不信

只不過每一個系統有自己的邏輯和用法,而且都有一些其他平台沒有的工具。

然而我對 Linux 的了解比 mac 和 windows 稍微多一點,所以用著更順手。而且我更喜歡 Linux 上的一些工具。僅此而已。

-------------------------------

當然首贊 @Kenneth 提到的兩難問題確實有。於是我就買了三台電腦,分別有三個系統,然後用Linux 寫代碼和作業,用 windows 看番刷知乎,用 mac。。。借給別人去星巴克。。。


兩款系統的使命就不一樣!

windows的使命是:在世界上的每一台電腦上運行,面向的群體是所有人,那麼微軟首要考慮的就會使系統的易用性而不是對編程的友好。

linux的使命是:為程序員服務,因為他本身就是開源社區的產物。

但他們都有兩面性,微軟在辦公領域和遊戲領域的地位是linux不可媲及的,但是如果你熱愛開源,崇尚自由,那麼linux就是你的選擇。

感覺又是一個神奇的問題。。。

「媽媽,我們切肉一定要用菜刀嗎?其他的都不行么?」

「傻孩子,切肉當然是用菜刀啊!」

「水果刀不可以么?我覺得水果刀也挺好的呀!」


搞固件的時候用Windows居多

編譯Windows內核的時候用Windows

編譯Linux和Android內核的時候用Linux較好

開發IOS應用的時候用MAC

開發Android應用的時候同事用Windows我用Ubuntu

寫.Net桌面程序的時候用Windows

給Linux伺服器端寫腳本的時候用Linux

寫WindowsMobile的C++程序的時候用Windows

寫JAVA企業級應用的時候啥都用

最後,寫Slide用PPT,用Windows。


這取決於你將來的程序要在哪運行。如果你作為一個創業公司,拿了微軟的前三年養活你政策,你在linux下面開發出來的程序自然就無法享受福利了。


"先問是不是,再問為什麼「目測也成知乎體的標杆了==


Stack Overflow Developer Survey 2015

不多說,自己看。有些人還真以為自己所在的某個行業就能代表整個程序員了。


可以用Windows啊。

當然你把你限定在一個系統上,你找工作就會受限制。「會用Windows開發」絕對是個簡歷加分項(哪怕你去蘋果,那也是有Windows版iTunes的對吧?),「只會用Windows開發」則絕對是個減分項(哪怕你去微軟,那也是有Mac版的Office的對吧?),這很顯然,對吧?

用每個系統都有它讓你爽的地方和坑你的地方。目前來說Linux讓我比較爽,但是偶爾需要用一下MacOS或者Windows我也就用了……

我喜歡Linux不妨礙我覺得Visual Studio是個大殺器,PowerShell很科學,也不妨礙我覺得Powerpoint和Keynote比LibreOffice Presentation要好啊。

我喜歡Linux也不妨礙我喜歡Dota 2,歐陸風雲,爐石,風暴英雄啊——不過前兩個遊戲Linux原生支持,後兩個wine完美模擬,嘿嘿……

不同系統之間哪有你們說的那麼大差別。而且重啟一下切換個系統不也就半分鐘的事,這還是不用SSD的速度。哪有那麼水火不容?


通常情況下。

看到好東西了。你可以git clone下來。然後cmake一下。然後make —j8?有點污 不要在意)。缺啥apt一下。然後就可以搞了。

Windows怎麼弄呢。。。。。


真正的程序猿從來不會拘泥於系統,該用什麼的時候就用什麼,保持主見,不粉不黑。

至於有人說:

真正的程序員都是有些偏執的。。

嗯。。本人偏愛visual studio,c#大法好,並認為其它的IDE都是SB。至於系統,我用哪個開心我就用哪個,就是這麼隨心所欲。

因為年輕,所以敢說,敢做,敢折騰。

此回答下凡是無腦黑visual studio和c#的一律拉黑,要黑請黑的漂亮。


非程序員過來跑個題。

前段時間我們這兒買了台新儀器,老貴了,號稱是鬼子公司的最新產品,全國頭一台哦。聽說還可以編程,有很強的可擴展性呢~

…………你們一定猜不到,這麼酷帥的儀器,它的工控機是什麼操作系統…………

……

……

……

……

……

……

……

……

是DOS啊!就是古代windows啟動前那個黑黑的DOS啊!

作為一台i3的電腦,它跑完了那些黑底白字的開機進程後,還是滿屏幕的黑底白字啊!

還特么是這個公司最近幾年嘔心瀝血研發出的新產品啊!

連我都為那個dell的顯示器感到不值!

至於編程和可擴展性?

嗯,你可以進入shell,編自己的script,跑自己的macro,老老實實用各種%16f
之類的東西打出菜單界面,用一串goto而不是「Click=flush_buffer」來召喚你的小弟們,每天敲cd和dir/p一萬遍啊一萬遍。

而這台儀器末端的產品,卻是整個互聯網建立的基石。

每當面對著這台儀器的時候,我都感到一縷軟粉之魂在熊熊燃燒 ?ω?


如果是C++的話、只要符合標準放在哪個平台都一樣啊。另外調試程序vs比gdb爽幾千倍


其實主要是大部分程序員是面向裝逼的程序設計。

老是拿CMD說事兒,提到PowerShell就說慢,說得XWindow很快很快一樣;

//老是拿Redis說事兒,好像SQL Server之類的就能在Linux跑一樣;

老是拿語言說事兒,結果我每次說C#、F#就教導我語言不重要,思想才重要;

老是拿Vim說事兒,每當我說Visual Studio云云就給我展示插件插得和IDE外觀差不多的的文本編輯器;

老是拿娛樂說事兒,All work and no play makes Jack a dull boy.

老是拿開源說事兒,結果開源代碼也沒看過幾行;

老是拿界面說事兒,你有空折騰XWindow就沒空改個Windows字體;

老是拿Windows要錢說事兒,買台Mac 10K多眼睛都不眨一下,PC預裝的Windows選配升級到專業版就開始肉疼(不,一看到有Windows就肉疼,各種不要不要的然後矯情說沒Windows授權);

老是拿要用記事本寫程序教導新人,也沒見過幾個人拿記事本寫Cocoa程序;

其實做了這麼多,雖然讓自己覺得不方便,但是吹牛的時候這些就是滿滿的談資啊!眾人仰望有木有!一路丟盔卸甲,但是在心靈里裝上了最堅硬的盔甲!


唉,程序猿要秀個優越就只能靠「用的什麼操作系統」,真特么醉了。

不是說題主,是說某些答主。

題主你不用管這麼多,哪個方便就用哪個。順便提一句,總有一天你會發現,你的電腦除了方便coding之外,還要方便你寫文檔,溝通同事,畫各種架構設計圖,做presentation。


推薦閱讀:

程序員如何一個人干幾個人的活?
Google為什麼不為Android中的RecyclerView添加Item的點擊監聽器?
如何自定義隨機數函數?
怎樣理解或評價面向對象的編程技術?
如何從零基礎做出類似拳皇一類的動作類2D遊戲?

TAG:MicrosoftWindows | 編程 | Linux | 開發環境 |