在小編的前面兩篇文章中介紹了學(xué)java和python需不需要學(xué)習(xí)linux。各位細(xì)心的讀者會(huì)發(fā)現(xiàn),好像學(xué)習(xí)linux跟編程沒(méi)有啥關(guān)系啊,那學(xué)linux有啥用?去做一個(gè)管服務(wù)器的運(yùn)維嗎?非也,小編的這篇文章會(huì)讓你發(fā)現(xiàn),部分語(yǔ)言,還真的是需要學(xué)linux的。
首先我們回憶一下java和python不需要學(xué)習(xí)linux的一個(gè)重要的因素:它們都有一個(gè)特性——跨平臺(tái)可移植性。這個(gè)特性主要是跟誰(shuí)區(qū)分的呢。沒(méi)錯(cuò),是跟一眾跨平臺(tái)需要分別編譯的語(yǔ)言(主要是C/C++這一類(lèi)語(yǔ)言)。以C++為例,首先不同的操作系統(tǒng)的運(yùn)行時(shí)環(huán)境就有所區(qū)別,代碼也有可能因此產(chǎn)生區(qū)別。因?yàn)槭褂玫木幾g器可能有所不同,所以最后編譯出來(lái)的結(jié)果也會(huì)有所區(qū)別。一個(gè)很典型的例子,在visual C++6.0版本中允許 ?void main()
? 的存在,而且在很多國(guó)內(nèi)的c語(yǔ)言的教材中都有所出現(xiàn),但是這樣的代碼不能在GCC編譯器下通過(guò)。而且最新的C++語(yǔ)言規(guī)范中也不允許這樣的寫(xiě)法(微軟的規(guī)范與C++規(guī)范大致方向相同但還是有一定區(qū)別)。而Linux系統(tǒng)使用的是GCC編譯器(也有可能使用別的編譯器,但GCC是linux自家的編譯器(GCC和linux同屬GNU,GCC出現(xiàn)的最初目的就是為linux提供C語(yǔ)言的編譯支持))。所以一個(gè)項(xiàng)目,使用linux和Windows,不僅最后編譯的文件不同,甚至連編譯前的代碼也可能有所不同。這就導(dǎo)致了Windows和linux的代碼之間不能互通。
我們知道,最終項(xiàng)目部署在服務(wù)器上,而服務(wù)器很大可能是linux,所以,最終編譯的代碼,肯定是要能在linux上運(yùn)行的。那么作為開(kāi)發(fā)而言,最好的解決方式就是使用linux進(jìn)行編程,編譯完代碼后再放到Linux服務(wù)器上,這樣就不會(huì)出現(xiàn)不兼容的問(wèn)題了。
當(dāng)然,針對(duì)這個(gè)問(wèn)題,微軟也作出了很大的努力,visual studio作為地表最強(qiáng)IDE,它其實(shí)是完全支持C++規(guī)范的,之所以會(huì)出現(xiàn)略微區(qū)別是因?yàn)槲④洖榱思嫒菀郧耙驗(yàn)闃?biāo)準(zhǔn)不健全而設(shè)計(jì)的產(chǎn)品遺留下來(lái)的問(wèn)題(還是那個(gè)?void main()
?,這就是典型的不規(guī)范的c++寫(xiě)法,但規(guī)范的c++寫(xiě)法vs也是完全支持的,你會(huì)發(fā)現(xiàn)只要GCC能跑的代碼,visual studio都能跑)。不過(guò)盡管如此,visual studio也沒(méi)有辦法完全抹去Linux的影響,最終還是需要Linux進(jìn)行整合。
以上這種情況如果用一句簡(jiǎn)短的話概括,就是,編程語(yǔ)言是跨平臺(tái)的,但是它們的系統(tǒng)底層(編譯器和運(yùn)行時(shí)環(huán)境等)并不是跨平臺(tái)的,所以這種語(yǔ)言不能跨平臺(tái)運(yùn)行,有這種問(wèn)題的不止c/c++,還有Pascal(Delph) 等語(yǔ)言。
所以,在使用這些不能跨平臺(tái)運(yùn)行的語(yǔ)言的時(shí)候,考慮到最終部署的服務(wù)器是linux,最好用linux進(jìn)行編程,而不會(huì)使用linux,無(wú)疑會(huì)對(duì)編程產(chǎn)生很大的影響。當(dāng)然了如果使用的是可以跨平臺(tái)的語(yǔ)言的話,編程就可以采用Windows編程了。雖然最后部署還是需要linux支持,但是因?yàn)橛袑iT(mén)的運(yùn)維負(fù)責(zé)linux的操作,所以使用跨平臺(tái)編程語(yǔ)言的小伙伴可以不學(xué)習(xí)使用linux。
以上就是小編對(duì)“學(xué)編程需要學(xué)linux嗎”的全部介紹。如果需要學(xué)習(xí)linux,linux微課是一個(gè)不錯(cuò)的選擇,可以幫助各位讀者在較短的時(shí)間內(nèi)掌握l(shuí)inux的基本使用,恰逢618編程獅年中大促,還不抓緊時(shí)間趕緊上車(chē)?