最近一位讀者詢問下一個轟動控制系統世界的編程語言是什么?這問題很重要,因為許多系統集成商和應用開發人員都在找尋所謂“正確”的答案。很不幸,沒有一個唯一正確的答案,不同的問題需要不同的語言。而幸運的一面,詢問和回答一系列的疑問,可以幫助找到那個“正確”的語言。這一系列的疑問包括:目標用戶、應用類型、用戶的規模以及長期的支持策略。 首先,需要知道目標客戶群是車間制造用戶還是普通用戶。車間的系統幾乎全部使用Microsoft的軟件,但是普通用戶經常使用Unix或Linux。微軟的對象系統都必須使用一種與其系統能很好的整合在一起的語言,如VB.Net和C#。而Unix和Linux系統則可以有一個更為寬廣的選擇面,通常都是使用開源的語言。 一個成功的控制實施方案,應該使用一種和控制系統壽命相當的語言。 應用類型也會影響語言的選擇。大多數情況下,如果使用中需要一個功能強大的用戶界面的話,對于客戶來說javascript和AJAX模式(異步javascript和XML)是最好的選擇。如果使用中要建立數據庫和網絡服務器終端的話,那么諸如Pearl, PHP, Python或 Ruby腳本語言是很好的選擇。 如果應用中需要的是強大的通訊功能及面向對象的數據庫,那么具有強大的類型檢查功能的面向對象的語言諸如:C++,C#或Java是正確的選擇。如果使用需要實時或準實時的話,那么諸如C++語言會很好用,因為它可以控制執行周期和加強類型檢查功能。 一款編程語言是否完美也同樣與用戶庫的理想規模及長期的支持戰略有關。小的用戶庫通常只有十幾個裝置,數十個使用者。這樣的話,一種類似于VB(Visual Basic)的語言是個好選擇。因為它縮減了開發成本并且可實施調試同時還提供專業的界面。由于用戶規模很小,所以維護工作必須也簡化,而類VB語言可以很容易進行維護。 大用戶會有幾百個裝置而且每個裝置都有可能同時有幾百個用戶使用,一個錯誤可能會使得安裝以及升級的成本大大提高。大用戶庫通常需要轉移的開發和測試環境以及一個強大的類型檢查功能的語言如C#或Java。 許多客戶應用程序集成商都將目標對準工廠制造用戶。他們通常都有幾十個裝置,要求提供一個基于網絡的界面,包含一些數據庫和通訊基礎,并且一般不需要實時控制。 我個人對這些應用要求默認的選擇是AJAX模式,在客戶端的用戶界面使用javascript語言,而在服務器端使用VB.Net語言。服務器端可以用Pearl,Ruby,Python或PHP 語言編寫,但是這些語言都主要是為了XML和網頁所設計,對于普通的控制應用中通訊需要的支持很少。 幾乎可以用所有可得到的語言編寫出成功的應用程序,包括Smalltalk, Lisp, FORTRAN和APL。然而,一個成功的控制應用必須使用一種與控制系統壽命相當的,并且能夠得到成功公司支持的語言。 有些事情對于軟件人來說比選擇語言的討論更為重要。由于模糊的語言架構及語法的偏好,替換一種語言有可能只是處于對宗教的熱衷。無論風險如何,我大膽地預測下一個使整個控制世界轟動的編程語言將會是面向小用戶的javascript和VB.Net和面向大用戶的javascript和C#。 |