程序員為什麼要用 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這位仁兄屏蔽我在他答案下的評論,所以我來說兩句。。。
該說的,我都說了,最後說一句:
文明上網,理性發言,用事實和數據說話,不要帶有人身攻擊!太方便了,我現在雙系統,用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 | 開發環境 |