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/


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM