{eval=Array;=+count(Array);}
你好,我是只說代碼的大餅,很高興回答你的問題。
首先,說下這幾年自己使用過的開發(fā)工具,
1.VS2010 到現(xiàn)在的VS2019.。
2.IntelliJ IDEA。
3.Android Studio。
4.VSCode。
5.微信開發(fā)者工具。
6.HBuilder。
以上這些工具都是在Win10下使用的,感覺也沒什么問題,編譯好的項目也沒發(fā)現(xiàn)過因為是win下編譯的而出現(xiàn)問題。
其次,在上家公司有使用虛擬機(jī)里寫代碼的,那是因為使用了商用控件,所以才去虛擬機(jī)里裝的開發(fā)環(huán)境,而且虛擬機(jī)里安裝的操作系統(tǒng)還是Windows,也沒安裝Linux的。
最后,最近幾年流行docker部署應(yīng)用,一次打包,多處運行。不管是Linux還是win10現(xiàn)在都可以使用docker打包應(yīng)用程序。
總結(jié):
身邊還真的沒有使用Linux下編程的,但有在虛擬機(jī)里寫代碼的。
還有就是現(xiàn)在都流行程序在docker里跑,把程序打包成鏡像就能在不同系統(tǒng)環(huán)境下跑 了,關(guān)系型數(shù)據(jù)庫可能還是不太適合在docker里跑,一般可能還是在linux操作系統(tǒng)下 直接運行,所以并沒有像你說的程序員都在Linux下編程的問題,反而使用Windows或 者mac開發(fā)的程序員更多,大廠有可能是在Linux下開發(fā) 。
回答完畢,謝謝,我是只說代碼的大餅。
這個問題其實是偽命題,因為雖然網(wǎng)絡(luò)上使用linux的用戶發(fā)出的聲音更大,但是毫無疑問,還是使用windows的程序員更多。只不過使用windows的程序員一般都沒什么必要討論windows的使用方法,畢竟大家都會。
而使用linux的程序員光是linux的桌面配置就可以多帶帶拿出來討論很久,更別提各種linux版本直接的比較等等。
當(dāng)然有一說一,linux的優(yōu)勢就在于包管理器可以很方便的安裝編程所需的各種sdk,而且會自動配置環(huán)境變量。通過用戶目錄下的一些配置文件可以比較方便的遷移開發(fā)環(huán)境,這一點確實是windows做不到的。
但是其實吧,這個問題也不是那么重要。因為一般情況下程序員的開發(fā)環(huán)境變動的并不是很大。你搭建好一個java8的開發(fā)環(huán)境,可能好幾年都不用換了。
就我個人而言,linux下的docker等工具,才是更吸引我的地方。這也是linux上獨有而windows上沒有的功能。也是我使用windows編程的一個痛點。好在現(xiàn)在vmware等虛擬化軟件也支持hyperv了,大家可以在使用vmware的時候同時使用windows版的docker,也是算是一個小小的補償吧。
Linux和Windows實際上不是環(huán)境而是操作系統(tǒng),除了這兩個以外,還有蘋果電腦支持的macOS,當(dāng)然這只是指電腦的操作系統(tǒng),畢竟目前程序員主要還是使用電腦來編程的,雖然iPad作為編程工具現(xiàn)在也是可行的。實際上,現(xiàn)在很多程序員會喜歡用macOS來,不過喜歡使用哪個操作系統(tǒng)來用作編程用電腦的操作系統(tǒng)還是主要取決于幾個方面。
IDE實際上才是開發(fā)環(huán)境,Windows作為主流的操作系統(tǒng)IDE支持肯定是最全的,除了iOS App開發(fā)環(huán)境XCode不支持外,其他編程語言基本都能支持,而且因為比較大的用戶量,所以面對Windows操作系統(tǒng)開發(fā)的IDE還是比較完善的,而且基本都有不錯的用戶界面。
對于Linux來說,因為原本就是一個來自開源社區(qū)的操作系統(tǒng),所以本身就自帶了很多開發(fā)工具。但是因為Linux的用戶界面沒有Windows那么成熟,所以有些IDE界面上來說并不是那么好,不過功能來說還是差不多的,而且來自開源社區(qū)的開發(fā)力量可以讓Linux很多技術(shù)支持比較前沿,IDE也同樣道理。不過沒有大廠的背景,所以對于Windows應(yīng)用或者M(jìn)ac/iOS App的開發(fā)支持會相對弱一點。
順便也說一下macOS,現(xiàn)在因為iPhone的崛起,所以蘋果電腦作為開發(fā)用電腦開始逐步普遍起來了,所以基本上主流開發(fā)語言都能在macOS上找到相應(yīng)的IDE,到時對于Windows軟件的開發(fā)可能支持就沒有Windows好了,比如.Net Framework等等。
IDE支持來說三個操作系統(tǒng)都不錯,不過也有各自的短板,基本算是打平吧。
程序員開發(fā)完成后需要測試,如果測試環(huán)境和實際發(fā)布環(huán)境差距比較大的話,那么測試就沒有意義了,所以開發(fā)所處于的操作系統(tǒng)和上線后使用的操作系統(tǒng)一致性就比較重要了。
Windows來說,如果開發(fā)的是Windows軟件的話,無容置疑是最一致的操作系統(tǒng),不過目前更多的應(yīng)用是在移動端或者服務(wù)器端,也就是說Windows作為模擬環(huán)境并不是那么的一致。而且,作為服務(wù)器來說,Windows還是和Linux有一定差距。
Linux這點上就比較有優(yōu)勢了,基本不同Linux版本占據(jù)了80%以上的服務(wù)器市場,所以使用Linux來開發(fā)服務(wù)器端的應(yīng)用大概率來說是和發(fā)布環(huán)境是類似的。但是,對于App或者軟件前端的開發(fā),Linux的支持就比較差一點了,畢竟Windows和macOS有更大的普通用戶基礎(chǔ),這樣開發(fā)的應(yīng)用主要還是在這兩個平臺上的。Android是一個Linux內(nèi)核的系統(tǒng),但是Android的應(yīng)用是在Java虛擬機(jī)上運行的,所以三個操作系統(tǒng)的支持都差不多。
macOS因為是基于Unix開發(fā)的系統(tǒng),所以底層是Linux很接近,不過還是沒有直接在Linux上開發(fā)那么直接方便,不過優(yōu)勢可以對于macOS/iOS下的App開發(fā)提供比較好的模擬發(fā)布環(huán)境。
與發(fā)布環(huán)境的一致性來說,服務(wù)器端開發(fā)Linux是有絕對優(yōu)勢的,其他就不同平臺有不同平臺的優(yōu)勢,所以Linux在這點上略勝一籌。
編程不單單只有開發(fā)環(huán)境支持,還需要其他軟件的支持,對于這點來說Windows作為占有率最高的操作系統(tǒng),軟件支持還是非常好的,基本上能找到任何想要的軟件,尤其是想Adobe全家桶之類的軟件。
Linux在軟件支持上就優(yōu)劣參半了,畢竟源自開源社區(qū),所以基礎(chǔ)開放方面需要的軟件還是能找得到的,不過其他軟件就比較難找到了,例如聊天軟件、協(xié)同軟件等
macOS因為最近一段時間的崛起,很多軟件都能有mac版,不過Mac版軟件的使用成本比較高,比較難找到破解版軟件,絕大開發(fā)相關(guān)的正版軟件收費都不便宜的。
對于其他軟件支持來說,Linux支持相對比較弱一點,Windows和macOS應(yīng)該不相伯仲。
硬件支持主要是指電腦和其他設(shè)備。Windows這點上因為已經(jīng)有那么長的發(fā)展歷史了,基本電腦都能支持Windows,就是是蘋果也能安裝Windows,那么這樣購買開發(fā)用電腦的時候就比較靈活,而且能更好的控制成本。對于其他設(shè)備的支持,Windows的驅(qū)動支持還是不錯的,不過要更深一層的控制其他設(shè)備可能就比較困難了。
Linux在發(fā)展初期就是以替換Windows為目標(biāo)的,所以基本W(wǎng)indows的能用的電腦,Linux都能用,不過對于一些開發(fā)相關(guān)的設(shè)備驅(qū)動比較難找,不過開發(fā)者功力夠的話,Linux內(nèi)核開源的特性可以讓開發(fā)者更容易開發(fā)底層驅(qū)動。
macOS電腦要求就比較高了,雖然現(xiàn)在有很多黑蘋果電腦出現(xiàn),不過畢竟還是在Apple電腦上比較穩(wěn)定,所以成本就相對高了。對于其他設(shè)備的支持,Apple電腦支持也不是那么好。
所以硬件支持來說,對于一般開發(fā)者Windows和Linux成本比較可控,macOS成本比較高,不過支持程度上差不多。對于高手來說Linux就更靈活了,畢竟Windows和macOS都不是開源系統(tǒng)。
實際通過幾個方面的比較,整體來說對于高手來說Linux的確會有非常大的靈活性,但是普遍的開發(fā)者來說,三個操作系統(tǒng)差別不大,只能說蘿卜青菜各有所好了。
而且因為Linux一般不是開箱即可用,所以選擇使用Linux作為日常工作開發(fā)操作系統(tǒng)還是比較少的。
對編程、產(chǎn)品感興趣,可以關(guān)注我一起討論
這是由目標(biāo)程序環(huán)境和人員使用習(xí)慣決定的。
很多后臺程序或者說服務(wù)端開發(fā)喜歡在linux環(huán)境開發(fā),開發(fā)環(huán)境和目標(biāo)發(fā)布環(huán)境一致,減少中間環(huán)節(jié),而且是開源,免費,運行流暢,專注,使用習(xí)慣了。
但同樣,也有更多的人喜歡在windows環(huán)境下開發(fā),除了gui操作方便順暢,各類軟件多,游戲多,硬件驅(qū)動支持的好外,同樣也是使用習(xí)慣了,很多人一開始就在用windows,習(xí)慣成自然,現(xiàn)在如go語言之類還可以跨平臺編譯,vs都內(nèi)嵌了ssh工具,docker的必備,特別是我們常用的java大部分無需考慮平臺特性的特點,實際上我周圍開發(fā)的人還沒有一個人在用非windows,少量有人用mac是為了蘋果端的開發(fā)。
現(xiàn)階段環(huán)境下,用哪種開發(fā)環(huán)境已經(jīng)不是屏障了,主要就是使用習(xí)慣決定的。
Dos,Windows,Linux,Unix,Redhat這些都是管理計算機(jī)系統(tǒng)資源的底層操作系統(tǒng),是各種應(yīng)用軟件賴以運行的底層支撐,不是編程語言軟件。
分別為上述這些操作系統(tǒng)編寫上層應(yīng)用軟件的程序員都大有人在。他們不存在誰優(yōu)誰劣的問題。
至于各種編程語言,如匯編語言、各類C、Basic、Java、Foxpro等,他們都有自己的開發(fā)、調(diào)試、編譯平臺,這些平臺都是應(yīng)用層工具軟件,雖然各有功能優(yōu)劣利弊,但也都能在上述各種操作系統(tǒng)上運行自如。
看所開發(fā)軟件的運行環(huán)境。曾經(jīng)在widows上開發(fā)了做開發(fā)了一個功能,測試沒啥問題,上傳到linux服務(wù)器上卻一直報錯,找了好久發(fā)現(xiàn)路徑名沒有區(qū)分大小寫。
都沒什么不行的。就是如果生產(chǎn)環(huán)境是Linux的用Linux或者macOS方便些而已,畢竟terminal一樣。事實上大多數(shù)軟件都屬于這類。也有例外,比如你要是開發(fā)微軟那一套你就應(yīng)該用windows,你要是開發(fā)蘋果的app就應(yīng)該用Mac。就這么簡單。
這個要看實際的需求了。1.如果你的程序只是Windows平臺運行,自然不用關(guān)心Linux 2.如果你的程序考慮跨平臺,也可以在Windows上編寫,然后在Linux編譯就可以了。3.如果你只做Linux后臺服務(wù),根本不在我windows運行,那你為什么不直接用Linux呢,Windows上沒有調(diào)試運行環(huán)境,編寫完成了,然后再拿到Linux重新調(diào)試,你不覺得多此一舉嗎?所以還是看實際需求,不能一概而論!
0
回答0
回答5
回答10
回答10
回答8
回答3
回答0
回答0
回答0
回答