程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 匯編語言 >> 匯編語言的藝術-觀念正誤(五)

匯編語言的藝術-觀念正誤(五)

編輯:匯編語言

五、模組的效率

模組並不是一個新觀念,在人類文明發展史上,人一直致力於瞭解自己身處的宇宙。這種瞭解,實際上就是模組應用的觀念,將宇宙大環境,分解成為人所能認知的小環境,進而將小環境再分解成為個人的經驗素材。
這樣一層層地分解下去,便有了「概念、知識」。換句話說,概念及知識,就是一個個代表人類對客觀認知的模組。
基於模組的特性,人才能靈活地加以應用,因而產生了「人類文明」。同理,當電腦的軟件,也演化為模組方式,進一步大量推廣運用時,電腦文明的時代,即將到來。
模組的效率是結構性效率的最高表現,在我們處身的宇宙中,無處沒有結構,無一不受到結構的支配。有關模組規劃、制作和應用,將在第四章第三節、模組觀念中詳加討論。

第四節 程式價值

一、程式的種類

因為目的不同,一般說來,程式可以分為以下四種。

1,應用程式:
凡專門提供給用戶,作某種特殊應用的軟件,皆稱為用程式。通稱「套裝軟件」( Application Package),即成套包裝的軟件。

2,系統程式:
即為系統所提供的「通用程式」,包括在 DOS環境下運行的「命令」(Command) 及「基本中斷程式」等。這些程式都是支援系統硬體,供用戶應用的工具。

3,介面程式:
介面意為「介」於多個「面」之間,凡電腦各系統、硬體與軟體、軟體與軟體之間,皆可稱之為介面。
對程式師而言,寫作程式需要「程式語言」的發展環境,所謂的介面程式,即為此類發展環境所必需者。
此外諸如網絡及通訊等,也可以稱為介面程式。

4,控制程式:
利用程式控制機器運作者,此類程式完全依賴硬體獨特的機能,專業性極強。

二、價值觀念

不論什麼程式,都應該以「正確、精簡、效率」為基本原則。但在目前,除了系統程式比較重視精簡及效率外,其他的程式多半只重視正確性而已。
人們往往以為只有硬體才具有價值,其實大謬不然。硬體的變化有限,軟體則永無止境;硬體的價值容易衡量,軟體卻祗有行家才能判斷其良窳。在商業利益掛帥的今天,所謂的「行家」,經常就是「既得利益者」。消費大眾是盲目的,也是無辜的,行家為了自身的利益,很少願意道破其中原委。
此外還有另一層原因,硬體生產需要技術、材料、資金及設備環境,而軟件則人人都可以隨手盜用。對一個從事軟件設計的程式師,盡管有心將工作做得盡善盡美,但一想到其嘔心瀝血發展出來的精品,很可能剎時之間就被不尊重軟件價值的消費者偷抄盜賣,哪裡還有興致去精雕細琢?
如果我們能先將軟體的價值觀建立起來,且人人尊重軟體應有的價值,如此真正受惠的,將是廣大的消費大眾。否則,這樣惡性循環下去,電腦只能靠硬體的改進,來達到效率的追求,軟體不過是一種「速食」性的消費品,永遠沒有價值。
以金額來看,硬體的市場邊際價值遠不如軟體為高。因為硬體的生產成本高,用戶每購買一台,就滿足了基本需求。故此必須經常推陳出新,以資獲利。當然,市場也有其平衡的法則,高利之下,競爭者多,過時的、效率低的硬體又因恐遭市場淘汰而大幅度的降價。
從過去的經驗中可以推出,硬體效率的改進,大約每年一次,而軟體則完全建立在其「價值觀」之上。如果值得,設計者願意投入,軟體可以在很短的周期中,或因觀念的突破,或因工具的特性,功能及效率立即提高了十百倍!問題在於,連從事程式設計的程式師,對軟體的認識都不夠充分,所制作的軟件尚無法滿足使用者的需求,充其量只是速成品罷。故不論是程式師或使用者,對軟件的價值觀都難以建立。
上述的工具是指「組合語言」,而觀念則是將組合語言視作「藝術」。當然,這些只是理想,基於人性,理想永遠祇屬於少數人。可是,少數人的理想經常會推動時代,為多數人謀取福利。

三、創造價值

資訊時代方興未艾,可以預期到只要有人類存在,電腦將是不可或缺的伴侶,永遠伴著人類不斷朝向超高效率的境地邁進。且不論硬體技術如何改進、變化,應用軟體才是電腦生命的靈魂。一個有價值的軟件,在千錘百煉之下,經過人智的洗禮,其意義絕不是物質報酬可以比擬的。
再換一個角度來看,電腦的硬體技術日新月異,體積日趨輕巧。雖然記憶量也在不斷增加,但是軟件卻剛剛相反,由於對高階語言的依賴,程式占用系統的空間越來越大,以致於抵消了硬體演進所創造的價值。
當然這都是軟件工程師的責任,如果從事軟件開發者,不立時覺悟,電腦將不過是「金玉其表,敗絮其內」。同理,從事軟件開發者,如果僅顧眼前的方便、急功近利,能抄就抄,能偷就偷,長此以往,電腦永遠不能形成氣候。
因此,鑽研軟體的制作技術,創造軟件的實用價值,才是資訊時代的主導方向。從這個角度上來看,組合語言所具備的效率優勢,遠較高階語言容易制作的優點更有意義。
對程式師而言,僅把程式當作一種工作,而不追求效率價值,則其技術及境界將止於此,其成就亦可想而知。唯有殚精竭慮,不斷追求完美的人,無論觀念和技術都將逐步提升,則在未來的資訊時代中,將會占有一席之地。

四、追求價值

那麼,究竟應該如何去追求最高的價值呢?我們不妨從幾個不同的角度來分析。

1,程式價值的定義:
前面說過,組合語言是一種藝術工具,用組合語言所寫的程式則是藝術品。而藝術品的價值是很難加以衡量。可是,程式又是一種工具,對工具而言,它是客觀存在,必然具有客觀的價值。
因此,我們可以站在客觀的立場,將用組合語言所制作的程式、以及其應有的價值,分門別類予以定義。在此我們不考慮其他程式語言所制作的軟件,並不表示這些價值定義不適用,而是認為這種比較不公平。因為以下的定義,都是根據組合語言的特性而考慮的。

1-1 成本價值=目標1×目標2/成本
「成本價值」是一種人人都知其然而不知其所以然的觀念,是指以某一固定成本,在目標1與2兩者之間,根據效率定義,何者價值高,即為其成本之代價。
在現實世界裡,人所從事的工作,有抽象的精神或心理代價,也有金錢或物質代價,甚至兩者兼而有之。不論如何,也不論成本為何,其價值高者,經常是人所追求的目標。在這種基礎上投入的成本,其價值的高低,將視人所追求的目標而定。


由於「理想」很有可能只是某種特殊的目標或影響,其利益經常遠大於經濟上的獲利。因此,要提高成本價值,絕非僅僅降低成本而已,而是如何提高其影響力。
再若經濟上的獲利高於理想,以現實的角度而來看,人不可能輕易放棄利益,而去追求價值不足的「理想」。
在這種理論下,人的發展方向,是從事理想的追尋抑或物質利益的滿足,端視理想與獲利兩者,對個人的成本價值而定。同理,人工作的方式及對工作的要求,亦因成本價值而有所取捨。
采用組合語言制作程式,就是明顯的成本價值觀念。因為組合語言的效率高,追求效率的實現就是一種理想,為此,投下時間及各種難以估計的成本,對那些有能力牟利者說來,當然是不值得。可是在不知「阿堵物」為何者,除了理想的追求,還待何為?
以上面的公式來看,降低成本仍可提高其價值,獲利的增加亦然,這是必然的,即所謂的「附加價值」。關鍵在於如果「理想」的價值低於獲利,自然而然,其目標將轉移為獲利。反之,為了牟利,也可能在發現了理想價值後而改途轉向。
附帶的產生了一個話題,若矢志追求理想的人又想兼顧金錢利益,一旦金錢利益的成本價值超過了理想時,根據前述理論,此人隨時可能變節。至少,在我個人的見聞中,還沒有例外的。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved