標籤:超級電腦 作業系統 物件導向編程 組合語言 電腦
第十四章 軟體、硬體發展史上的風風雨雨中的一聲悲歎!
睡不著、感而寫之。 忠言逆耳、良語苦口、高山流水、曲高和寡。
我的感覺,電腦已經發展到了一個死胡同。我們似乎只是在兜圈子,從最初的彙編寫的UNIX作業系統,到如今的C語言寫的WINDOWS、LINUX。我 們應該反思、到底技術上進步了很多?還是原地兜圈子?從彙編,到C語言、指令碼語言,到C++、C#、JAVA,到VB等等所謂的進階語言;似乎取得很多進步了。我們物件導向編程啊,抽象了類、逐步貼近自然語言了。真的?我極端懷疑!人類的自然語言描述的是宇宙萬物、是對6D時空的描述。電腦語言還差得遠啊,只是模仿了一些吧。物質、意識是永恒運動的對立統一體;空間3D、時間1D。且不論物質、意識這2D先,就算我們用平面1D儲存空間去描述3D空間; 也不應拋棄時間1D啊。使用組合語言的每條指令、我們都知道指令的執行時間,和指令引起的儲存空間變化。而C及之後的電腦語言、卻拋棄了直觀表示的時間 1D。這是進步?還是倒退?你可能說,C及之後的語言:優美、簡潔;而組合語言複雜、難懂、需要與硬體打交道。其實不然,請不要用intel、amd等 CPU的彙編指令來說;那些都是垃圾裡的水玻璃!是垃圾堆中的戰鬥機。真正的組合語言只是7種基本語句:賦值指令、COPY指令、BTX(位X測試為1、 或0轉移)指令、查表跳轉指令switch(RN){….}、寄存器的移位與迴圈指令S(RD = RN S N)、寄存器的三運算元運算指令( RD = RN1ALU RN2 S #N )、調用與返回指令(CALL、RET、IRET)。指令大小基本是32位,一個字W;指令執行時間,通常都是1ns。加上一些專用硬體模組的指令,總共才10多種指令;你說,哪一種語言的保留字不是幾十種。所以、還是組合語言的語句最簡單!易懂!與硬體打交道,那是作業系統的事情;真的需要瞭解、和操作硬體時,也是彙編易於操作。簡潔,這點我承認;但那些雞鴨腸子般長的代碼,看到就心煩;C語言是可以寫得很緊奏,但反面就是不清晰。程式應該先是簡單、清晰;才論其它。如果,還要放棄直觀表示的時間1D、那真的是倒退!
物件導向?組合語言還要簡單!我們應該知道、對象的本質就是一段1D平面儲存空間、就是一個位的容器。只是從具有相同的位容器物件、我們抽象出類的概念。變數也是用來描述一段1D平面儲存空間,所以、對象也就是一種變數。C及之後的語言操作對象,最終還不是編譯成組合語言!APO的賦值指令就可直接操作對象空間中的成員對象、或變數。我們也可以把變數賦值到寄存器,再做變換、運算等;之後再回傳。對象、變數只是對儲存空間的聲明,它們對應的地址;那就是編 譯器的事情了。組合語言物件導向編程是自然、而簡單的。所以、C++、JAVA、等等物件導向的語言。那是哄小孩的兒童玩具,那是紅臉叫獸的虛妄,那是不切實際的花拳繡腿,那是本末倒置。我真的不清楚是那回事?不過想想,我們不外都是生活在垃圾世界,就覺得安然點了。我猜想,當初用彙編寫UNIX作業系統 的那些編程員;就為了優美、簡潔,發明了C語言;之後、沾沾自喜,做了個壞領導而不知。或許,那些高科技腦袋都喜歡在複雜、骯髒的地方鑽牛角尖;不像我們這些業餘笨鳥都是喜歡簡單。應用程式只能行走在自己的對象、變數空間中;進程間只能通過訊號、訊息來互連;通過動態變數的提交來做大資料量的交換;這些、 硬體是非常容易實現的。但intel的cpu結構那個4許可權、記憶體頁映射等等的非常複雜的硬體設計,我看了幾遍才明白一些;我真不明白啊,這些聰明崽是怎麼想的!暈倒,為了私利;也不應該阻礙人類的進步啊!
有時候,優美、簡潔、藝術真的沒屁用;編程思想才是關鍵!你linux作業系統牛氣,用C語言編寫的核心將近千萬行的原始碼;就不說那個捂住口袋防盜的 windows了;還有個屁優美、簡潔、藝術啊。鬼都沒法看完所有的原始碼啊。我一個業餘笨鳥設計的APO作業系統還不到4K行代碼,linux 還不臉紅!不算裝置驅動,APO作業系統核心原始碼還不到1千行;所以,我要把資料庫、瀏覽器、word辦公軟體、xwindows等等都整合到核心。現 在,是那個優美、簡潔、藝術、強大應該知道了。就說檔案系統,APO的、在有些項目就要比linux快近百萬倍。資料庫、等等方方面面都要比現代作業系統強大的多。不吹了、牛死了;我其實一點都高興不起來;作為人類的普通一員業餘愛好者,我只有一聲悲歎!
天亮了、又是一個不眠之夜。
第十四章 軟體、硬體發展史上的風風雨雨中的一聲悲歎!