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