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