1. 程式人生 > >Java匹馬行天下之C國程式設計師的禿頭原因

Java匹馬行天下之C國程式設計師的禿頭原因

 

Java帝國的崛起

前言:

分享技術之前先請允許我分享一下黃永玉老先生說過的話:“明確的愛,直接的厭惡,真誠的喜歡。站在太陽下的坦蕩,大聲無愧地稱讚自己。”

《程式設計常識知多少》

《走進程式設計的殿堂》

《高階語言大鍋燴》

前面寫的三篇部落格如果有朋友認真的看了,現在對程式設計和程式語言應該有了一些瞭解,下面我針對之前介紹過的程式語言來講一個故事《Java帝國的崛起》

C語言

C國的統治

Long long ago(1972年),在古老的東方有一個國家叫C國(C語言),這個國家很強大,C國國王已經在此統治很長時間了。在C國生活著許多程式設計師,這些程式設計師都是國王親自挑選的,他們的任務就是每天跟電腦交流,保護C國網路安全。要成為C國的程式設計師要求很高,必須要用C語言跟計算機進行交流,而且必須無條件服從。說起C國的C語言,不得不承認,確實很厲害,隨著C語言的誕生和UNIX的問世,無數程式設計師都瘋狂的追求著它們,C語言就跟金庸老先生的武俠小說中的葵花寶典和九陰真經一樣,值得天下的程式設計師為之瘋狂。但這種祕籍不是什麼人都能修煉的,只有C國國王親自挑選的程式設計師才能修煉完整的C語言,好在C國人口眾多,學習的人也是不少。

C語言的強大之處在於:貼近硬體、執行極快、效率極高。因此C國的程式設計師們藉助C語言的強大開發了很多軟體,比如作業系統、編譯器、資料庫、網路系統等等吧。物極必反,凡事有利必有弊,學習C語言的程式設計師很辛苦,學習C語言的程式設計師們都被套上了兩個沉重的枷鎖:指標和記憶體管理。雖然指標無比強大,能直接操作記憶體,但是C語言卻沒有提供工具去做越界的檢查,導致很多新手程式設計師輕易犯錯。至於記憶體管理,C語言更是放任:自己分配的空間,自己去釋放!更要命的是,這些問題在編譯期發現不了,在執行時才會突然暴露,常常讓程式設計師們手忙腳亂,昏天黑地地去除錯。可以說C國程式設計師們的大量時間和寶貴精力都浪費在小心翼翼地處理指標和記憶體分配上。每個程式設計師都被這兩個東西搞得焦頭爛額!

哪有什麼歲月安好,只是你沒看到C國的程式設計師負重前行。C國的程式設計師們除了有指標和記憶體管理兩個枷鎖外,還有一點讓他們也是苦不堪言,C國國王宣稱C語言有可移植性,在一臺機器上寫的程式,只要在另一臺機器上編譯就可以了。但事實真的是如此嗎,No!C國國王要求程式設計師們在使用C語言的時候要用標準的C函式庫,如果遇到了一些針對特定平臺的呼叫,則需要針對每個平臺都寫一份!只要有一點點小錯誤,都會導致編譯失敗。

說到這,可能你還對C語言的可移植性理解不深,我再來解釋一下:

先說源程式,源程式也叫原始碼,是指未編譯的按照一定的程式設計語言規範書寫的文字檔案,是一系列人類可讀的計算機語言指令,在現代程式語言中,原始碼可是以書籍或者以磁帶的形式出現,但最為常用的格式是文字檔案,這種典型格式的目的是為了編譯出計算機程式。計算機原始碼的最終目的是將人類可讀的文字翻譯成為計算機可以執行的二進位制指令,這種過程叫做編譯。通過編譯器完成,如果按照原始碼型別區分軟體,通常被分為兩類,自由軟體和非自由軟體。

自由軟體一般是不僅可以免費得到,而且公開原始碼。

非自由軟體則是不公開原始碼。

 

瞭解了上面介紹的這些,我再說C語言的編譯過程,假如此時的你剛寫完一段輸出HelloWorld的程式碼,其實你寫的這段程式碼就是源程式,現在這個源程式只有你認識,但計算機不認識,要想讓計算機認識,就必須把你寫的源程式通過編譯器編譯成計算機能識別的二進位制檔案。假如現在你的源程式叫Hello.c,如果你編譯用的是Windows系統,編譯器就會編譯出能在Windows系統下能執行的可執行檔案Hello.exe。我為什麼要強調一下是在Windows系統下能執行,這就是上面我提到的讓C國程式設計師們頭疼不已的C語言的可移植性,一般的高階語言如果要在不同的系統平臺上執行,至少需要編譯成不同的目的碼。C語言亦是如此,在Windows系統下編譯的C語言程式,在Linux系統下是不能執行的,當然,在Linux系統下編譯的C語言程式在Windows系統下也是不能執行的。所以試著理解一下C國的程式設計師們吧,禿頭也是有原因的。

 

 

C++的出現

到了1982年,C國又推出了一門新的語言C++,添加了面向物件的功能,相容C語言,有靜態型別檢查,效能也很好。功能越強大,內容越複雜。顧名思義,C++,就是在C語言的基礎上增加了一些功能,本身C語言就讓C國的程式設計師們苦不堪言,再加點複雜的。emmmmmmm,表示同情。不要小看C++的複雜,C++雖然在圖形領域和遊戲上取得了很大的成功,但是很多C國程式設計師都學不好它,它的很多特性實在是讓C國的程式設計師們無法駕馭,整個C國的程式設計師們叫苦連天,懷疑人生,對天長嘆曰:既出C,何出C++,然後劍光一閃,削髮表示反抗,這就是C國有好多禿頭的原因之一。

 

此篇完

寫到這已經有兩千字了,意猶未盡,考慮到讓讀者緩解視力疲勞,我決定埋下伏筆,把真正的主人公JAVA留到後面。

欲知後事如何,且看下回講解。

 

                                    

 

                                 

分享的越多,你的價值增值越大,支援我就讓更多的人關注我吧

*****************************************************************************************************

我的部落格園地址:https://www.cnblogs.com/zyx110/

【原創宣告】此篇為作者原創,未經本人同意不得轉載,經本人同意轉載請說明出處。

我不能保證我所說的都是對的,但我能保證每一篇都是用心去寫的,我始終認同“分享的越多,你的價值增值越大”,歡迎大家關注我的技術分享“Java匹馬行天下”和學習心得分享“匹馬行天下”,在分享中進步,越努力越幸運,人生贏在轉折處,改變從現在開始!

支援我的朋友們記得點波推薦哦,您的肯定就是我前進的動力。