MIT教授將網頁開發整合為完整獨立的程式語言Ur/Web
MIT的軟體技術教授Adam Chlipala設計了新的Ur/Web程式語言,這是一個整合HTML、CSS、XML、SQL及JavaScript等網路標準的“完整獨立”語言, 強調快速、安全及“元編程”的開放源碼專案,可望減少開發人員設計網路應用程式所耗費的時間與精力。
美 國麻省理工學院(MIT)的軟體技術教授Adam Chlipala設計了新的Ur/Web程式語言,這是一個整合HTML、CSS、XML、SQL及JavaScript等網路標準的“完整獨立”語言 (self-contained programs),強調快速、安全及“元編程”(metaprogramming,或作“超編程)的開放源碼專案,可望減少開發人員設計網路應用程式所 耗費的時間與精力。
根據Chlipala所發表的論文,Ur/Web是個靜態的函數式語言,它把各種疊床架屋的網路標準融合成單一的程式模型,不論從安全或效能來看,都讓網路得以保留它作為一個單純應用程式平臺的本質。
Chlipala 表示,全球網路(World Wide Web,WWW)是個非常受歡迎的平臺,可用來設計各種具備圖像使用者介面的應用程式,各種網路標準也慢慢出現,造就今日復雜的生態體系。若要以瀏覽器及 伺服器所支援的語言撰寫豐富的功能,至少必須熟悉產生文件架構的HTML、產生文件格式的CSS、提供互動服務的JavaScript,以及遞送上述內容 的HTTP通訊協定。近來還有一些受歡迎的應用程式仰賴JSON來傳遞復雜的資料格式,或是以SQL來儲存永久的結構化資料,這些不同的語言的程式碼經常 以各種復雜且片段的方式相互嵌入。
Ur/Web主要解決了兩個問題,一是把封裝(Encapsulation)應用在豐富網路程式中,支援那些能夠以私有狀態處理網路應用程式關鍵片段的程式模組。其次是揭露一個供開發人員使用的并發模型,用來支援伺服器端與客戶端之間的重要通訊。
因 此,Ur/Web允許開發人員把網路應用程式當作獨立程式來撰寫,Ur/Web的編譯器可以自動產生相對應的XML程式碼及樣式表規格,進而將 JavaScript與資料庫程式碼擺放在正確的地方。Chlipala說明,雖然Ur/Web編譯器能夠產生XML、JavaScript與SQL程式 碼,但它并不會自動制造樣式表,而是分析完整的程式后列出有關的CSS類別,再提出設定建議。
Ur/Web除了能夠協調各種網路標準之 外,理論上還會更加安全。它采用了強型別(strongly typed),任何在Ur/Web中所設定的新變數都被局限在單一的型別,同時也限制了變數的范圍。例如想在網頁上同時提供行事歷與廣告版位的組件 (widget)時,開發人員并不希望廣告會影響行事歷的運作,或是行事歷干預了廣告的遞送,Ur/Web會禁止這兩個不同網頁組件之間擅自相互存取。
不 過IDG News分析認為,對于一般的開發者來說,做為一種“函數式程式設計語言”(functional programming language)的Ur/Web將會有很高的學習門檻,Chlipala教授也同意這樣的看法,并拿Ur/Web與受到特定族群喜愛的Haskell做 比較,而Haskell就是以晦澀難懂而知名。
Chlipala準備在明年1月由計算機協會主辦的程式語言原則座談會(Symposium on Principles of Programming Languages)上正式發表及展示Ur/Web的細節。(編譯/陳曉莉)
來源:ithome 發布者:iThome