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