星期四, 3月 19, 2009

高階語言中的高低階

經歷機械語言、組合語言,到現今五花八門的高階語言...各式各樣的程式語言不斷被開發,功能面向森羅萬象。不過在高階語言中,仍有著「高階」與「低階」的差異。一個很明顯的例子便是 C 與 C# 或 Java

在高階語言中,所謂的「高階」,只是將程式碼包裝成便利的函式庫,讓程式開發變得更容易。從某方面來說,使用這種方便高階的語言做開發,就宛如「組裝」程式 - 將許許多多的函式組裝成想要的功能...

那麼,到底是「高階」好,還是「低階」好,其實沒有一定的定論。
某個論點是這樣的:如果追求的是效能,那麼用較低階的 C 來開發是較好的選擇;如果重視的是開發速度,那麼用方便的 C# 或 Java 會比較好。

就我最近寫了不少 C# 的心得,雖然 C# 的確在開發上極為便利,不過卻同時失去了它的彈性。Socket 這方面的函式庫,越寫越有種想要把函式解體的衝動,尤其是 Thread。

凡事有利就有弊,極高便利性的代價便是凡事皆受限於既定功能。畢竟函式庫是人開發的,或多或少都存在沒考慮清楚的地方;而當需要用上這些東西時,就會不由自由引起一股怒火...怪自己對函式庫不夠熟悉,也恨誰可以把函式庫設計得這麼爛!

當然,凡事都有其解決方法。只是在函式庫的過度包裝下,原本能很輕易解決的問題,卻需要用許多繁鎖步驟才能解決。所以...才會到現在,對 C# 仍絲毫沒有好感。

那麼,C 呢?

儘管用 C 來開發會複雜很多,所花費時間也會增為好幾倍;然而,C 蒙上了一層神秘面紗,因為太有彈性,也因此讓這個語言變得很有趣。而在開發過程中所學到的,更不是 C# 或 Java 這種包裝語言能比擬的。

所以,雖然極少有用 C 來開發的機會,我仍對它抱持著極大興趣。挑戰複雜的邏輯設計,比起組裝程式有趣多了!
So,這學期難得有用 C 來開發程式,真的得好好把握! :)

沒有留言: