<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    冒號課堂§6.3:前臺語言

     

    冒號課堂

    6.3前臺語言——視覺與交互的藝術

    世人反不難而易之,用是通者亦罕                       ——《歐陽修·詩解統序》

     

    關鍵詞:前臺語言,VB,Delphi,JavaScript,AJAX

    摘要:簡談VBDelphiJavaScript

     

       預覽

    ·          Delphi讓復雜的事情變得簡單,VB讓簡單的事情變得更簡單

    ·          它(JavaScript)宛如一只神奇的魔袋,乍看平淡無奇,卻總能變出意想不到的寶貝

    ·          待友之道,貴在放大其優點而縮小其缺點,對待語言亦當如是

    ·          大道相通,難者亦易,易者亦難


       提問  


    • Visual BasicDelphi有何共同點和不同點?
    • 相比其他的富客戶端技術,JavaScript的前景如何?
    • JavaScript是一門嚴肅的語言嗎?
    • 前臺編程、后臺編程與系統編程,哪個最難?

     

        講解

     

    稍事休息后,冒號切換了話題:“接下來簡單聊聊Visual BasicDelphi。”

    嘆號略帶得色:“Visual Basic最好用了,建個窗體,從工具箱中拖些控件,再定義一下它們的屬性和行為,搞定!”

    冒號點點頭:“VB最大的優點就是易學易用、上手快開發快,對非計算機專業人士尤其具有吸引力。”

    引號咬文嚼字:“言外之意,VB對于專業人士就不那么合適了?”

    “恐怕也不好這么說。”冒號打了個哈哈,“當然簡單易用不是沒有代價的,隨便拖放一個控件,就生成了一大堆代碼,程序員的發揮余地自然受限,代碼效率也難以保證。不過VB多用于前臺的可視化開發,對運行效率要求相對較低,因此還是很有市場的。另外,VB進化到VB.NET后,從單純的事件驅動式的編程范式發展為對象式、泛型式和函數式等多種范式,越來越強大、越來越嚴格也越來越復雜,不再是人們戲稱的‘玩具語言’了。”

    逗號插話:“用Delphi來開發圖形界面不也很快嗎?”

    冒號接過話來:“正因為它們擅長可視化快速應用開發(RAD),才常常作為前臺語言來使用。事實上,它們不單單是語言,也是開發環境。沒有IDE,人們照樣能寫CC++JavaPerl等代碼,但恐怕沒有誰會拋開IDE去開發VBDelphi程序。Delphi又稱Object Pascal,前身是教學語言PascalVB的前身是入門語言BASICBeginner's All-purpose Symbolic Instruction Code),故而均具有易學易用的特點。”

    問號要求:“能否比較一下二者的優缺點?”

    冒號回應:“引用Computerworld的評論:‘Delphi讓復雜的事情變得簡單,VB讓簡單的事情變得更簡單’。Delphi優秀的VCL框架使得它作為前臺語言略勝一籌;更高的運行效率使得它同樣能勝任后臺工作;VB僅限于Windows,而Delphi可移植到Linux下的Kylix;對指針的支持則是便利與復雜的雙刃劍。反過來,VB的學習曲線更短;如果專注微軟技術,VB更便于擴展開發包括MS Office在內的應用程序,VB.NET更能充分利用.NET平臺上的資源;不過VB版本更新較快,在緊跟時代的同時,也給程序員帶來惱人的兼容性問題。”

    句號再次體會到:“正如在JavaC#中作選擇一樣,平臺是語言選擇的一個重要因素。”

    “說得沒錯。”冒號表示認可,“由于BASIC是微軟的起家語言,VB的門檻又低,同時VB.NET也是.NET的一部分,它的前景還是樂觀的,有些不利的是 微軟明顯把重心放在C#上。談到Delphi,不得不提Borland公司。這位曾經的軟件巨人開發了無數經典的產品,卻因經營不善而日漸沒落,不久前將子 公司CodeGear連同包括Delphi在內的產品賤賣給了他人[1]。”

    “也許,從當初Delphi的首席架構師Hejlsberg被微軟挖走的那一天起,這樣的結局就已注定了。”冒號不由得輕嘆一聲,惋惜之情溢于言表,“這再次說明技術的成功并不意味著商業的成功,同時語言的發展與背后支持的公司也是休戚相關的。Borland和微軟是兩面最好的鏡子。”

    嘆號聽出弦外之音:“看來Delphi前景不妙啊。”

    冒號不置可否:“這也很難說,畢竟Delphi的鐵桿擁護者也不少。不過隨著基于internet的應用日趨廣泛,桌面應用受到網絡應用的猛烈沖擊,VBDelphi的市場份額必然都會有所下降。在以網絡為中心的企業解決方案中,作為平臺語言的JavaC#是兩棵比肩而立的大樹,在它們周圍生長著郁郁蔥蔥的動態語言的小草。”

    話題自然而然地轉到了動態語言。

    引號看了看筆記:“按計劃,是不是該談動態語言PerlPHPPythonRuby JavaScript了?”

    冒號說道:“在這些語言中,JavaScript是個異類,雖然也有服務器端的JavaScriptSSJS),但用得最多的還是在客戶端。從這種意義上說,它也是一種前臺語言。”

    逗號微有疑惑:“您是說將它與方才的VBDelphi并列?”

    “有一點不同的是,JavaScript必須與HTMLCSSXMLXSLT等語言配合才能完成前臺工作。”冒號作了補充。

    問號似乎明白了:“您指的就是流行的AJAX技術吧。”

    “不完全是。”冒號輕輕搖了搖頭,“動態HTML技術(Dynamic HTML,簡稱DHTML)照樣可以勝任前臺事務,事實上以前B/S應用[2]都是靠它來完成瀏覽器端工作的。DHTML在靜態標記語言如HTMLXHTML等的基礎上,添加客戶端腳本語言如JavaScriptVBScript等,并輔以樣式語言如CSS。不少人以為動態HTML與動態網頁是同義詞,但實際上前者的動態效果來自客戶端,后者的動態效果還會來自服務端。至于AJAXAsynchronous JavaScript And XML),比DHTML無非多了個XHR (XMLHttpRequest) APIXHR最大的功用是能與后臺服務器進行異步通訊,從而實現頁面的局部刷新[3],而在此之前類似的效果只能通過IFrame來實現。正是這種異步技術,大大提升了用戶體驗,使得網頁效果開始前所未有地逼近桌面效果。雖然它并非一項新技術——早在2000年的IE5便實現了,但真正流行開來還只是近幾年的事。”

    引號不無擔憂:“目前富客戶端技術層出不窮,JavaScript的前景如何呢?”

    冒號給了一顆定心丸:“JavaScript在網頁技術中的主流地位在很長時間內恐怕都難以撼動。相比其他的RIARich Internet application)技術,如AdobeFlex、微軟的SilverlightSunJavaFX等,以JavaScript為核心的AJAX技術最大的優勢在于:標準、普及、成熟;不需安裝插件,只要瀏覽器支持JavaScript即可;因其文本特征而對搜索引擎更加友好。”

    嘆號談及他的感受:“JavaScript給人的感覺是:看起來很簡單,寫起來很隨意,用起來很頭痛。”

    “原因是多方面的。”冒號諄諄而言,“JavaScript語言本身來說,其弱類型和動態語言的特征給了程序員更多的自由,也帶來更多的混亂;基于原型prototype-basedOOP特征遠不如基于類(class-based)的OOP那樣為人熟知;缺乏豐富的API;不同的瀏覽器不同的版本之間兼容性差。更主要的是,JavaScript一直被嚴重低估和誤解,自視甚高的程序員往往不屑去編寫網頁,大多數JavaScript代碼由不那么專業的程序員編寫。此外IDE與調試工具的缺乏也給開發帶來掣肘。這些都加深了人們對JavaScript的簡單隨意乃至丑陋難用的印象。其實JavaScript作為一門動態語言,集過程式、對象式、函數式、事件驅動式和元編程于一身,其強大和優雅絕對是超乎想象的。它宛如一只神奇的魔袋,乍看平淡無奇,卻總能變出意想不到的寶貝。各位若有機會深入地學習和運用JavaScript,定知我所言非虛。”

    問號追問:“JavaScript最大的缺點是什么?”

    “最大的缺點是起了個極無個性的名字。”冒號半開玩笑地說,“為了沾Java的光,Netscape愣將LiveScript改成JavaScript,帶來不少混亂。”

    引號也注意到:“書店、圖書館常常將JavaScript的書與Java的放在一起。”

    冒號話鋒一轉:“談論JavaScript的缺點并沒有什么實際意義,因為它沒有同類的替代品。VBScript僅限于微軟的IE,在追求跨瀏覽器和強調標準的今天是不具備競爭力的。ActionScript具有強大的多媒體功能,但必須借助Flash插件,與JavaScript應該是互補共生的關系。另請記住:待友之道,貴在放大其優點而縮小其缺點,對待語言亦當如是。這既是一種態度,也是一種境界。”

    句號發現一個有趣的現象:“初級程序員往往偏愛前臺編程,中級以上的偏愛后臺編程,有些人則認為只有底層編程的才是真正的高手。”

    冒號解釋道:“前臺編程涉及面專,絢麗花哨的界面更容易讓初涉編程者產生成就感;后臺編程涉及面廣,需要深厚的技術積累和縝密的設計思維;底層編程涉及面深,給人神秘莫測之感。然大道相通,難者亦易,易者亦難。設計一個用戶友好的界面與設計操作系統的一個模塊,一邊是與人直接打交道,一邊是與機器直接打交道,孰難孰易、孰輕孰重,焉能一概而論?”

    見冒號說得鏗鏘有力,問號雖不忍置喙,終難掩疑竇:“用C寫操作系統的內核難道不比用VB做一個圖形界面難得多嗎?”

    “不可否認,系統編程的門檻確實要高得多,需要程序員具備更多的硬件和操作系統知識和更強的編程能力。”冒號以退為進,“它最大的挑戰在于:在相對貧乏的軟件資源和相對簡陋的開發環境下,能高效、安全地管理包括CPU、內存等在內的系統資源。再說前臺編程,雖然入門容易,要想登堂入室卻是大為不易。它最大的挑戰不在代碼編寫,而在界面設計。軟件最終是為人服務的,如果沒有良好的用戶體驗,無論背后的設計如何高明、算法如何精妙,用戶也是不會買賬的。”

    嘆號充分表示理解:“一個女孩無論多么蕙質蘭心、冰雪聰明,如果相貌丑陋、脾氣古怪,我也是不會買賬的。”

    逗號故意把臉一沉:“豈有此理,竟然自比為人家的用戶!”

    眾人嘎嘎而笑。

    問號仍有不解:“界面設計不是美工的職責嗎?”

    “美工設計的一般是靜態的視覺界面,更重要的是動態的交互界面。相貌再好,脾氣不好也不行啊!”冒號順手拾起了嘆號的比方,“雖然近來出現了交互設計師的職位,專門負責UI / UEUser Interface / User Experience),但畢竟不是每個公司都有的。即便有,程序員如果缺乏充分的認識,也難以達到設計要求。這可是融美學、心理學、統計學、計算機科學等等于一體的高難度的技術活兒啊!”

    問號心底泛起的串串疑問的泡泡漸漸開始消散。


        插語

    [1] 20085月,BorlandCodeGear以兩千多萬美元賣給Embarcadero Technologies

    [2] B/SBrowser/Server(即瀏覽器/服務器)架構,區別于傳統的C/SClient/Server客戶機/服務器)架構。

    [3] 嚴格說來,局部頁面刷新本身并不需要XHR,但刷新的數據來自XHR

     

       總結
    • Visual BasicDelphi均擅長可視化快速應用開發,易學易上手,常用于前臺的桌面應用。
    • Delphi相對VB的優勢在于:可視化框架更優秀;運行效率更高;不限于Windows;支持指針。
    • VB相對Delphi的優勢在于:學習曲線更短;便于擴展開發包括MS Office在內的應用程序;與.NET平臺更融合(主要指VB.NET);有大公司(微軟)的支持。
    • JavaScript為核心的DHTMLAJAX技術,相比其他的富客戶端技術有其明顯的優勢:標準、普及、成熟、毋需插件、對搜索引擎友好。
    • 作為弱類型的動態語言,JavaScript有它的一些問題:基于原型的對象式令人陌生;API相對貧乏;瀏覽器標準不夠統一;IDE和調試工具不夠理想;多由不夠專業的程序員編寫等等。但它本身是一門功能齊全、強大而優美的語言,只要嚴肅地對待它,它就是一門嚴肅的語言。
    • 前臺編程涉及面專,更關注界面設計;后臺編程涉及面廣,更關注業務邏輯;底層編程涉及面深,更關注系統資源。它們只是側重點有所不同,并無真正的難易之別、高下之分。

     

     “”參考

    [1] Ernesto De SpiritoA comparison between Delphi and Visual Basichttp://www.latiumsoftware.com/en/articles/00010.php

    [2] David FlanaganJavaScript: The Definitive Guide, 4th ed.Sebastopol, CAO'Reilly2001

    posted on 2009-02-22 21:57 鄭暉 閱讀(3573) 評論(4)  編輯  收藏 所屬分類: 冒號課堂

    評論

    # re: 冒號課堂§6.3:前臺語言 2009-02-23 14:53 張氏兄弟

    仁兄,在你這里加入對于AIR的評論就更詳細了
    你可以參照一下 FLEX第一步的前言或者前幾章的介紹
    主要是比較 ext(js方案),flex,微軟的阿銀!

    建議而已了!  回復  更多評論   

    # re: 冒號課堂§6.3:前臺語言 2009-02-23 15:08 鄭暉

    @張氏兄弟
    多謝你的建議。不過,本系列是圍繞第一課提到的最流行的十二種語言來分類討論的,因此未能涵蓋所有流行的前臺語言。  回復  更多評論   

    # re: 冒號課堂§6.3:前臺語言 2009-02-24 08:52 趙國林

    哥們不錯 挺好的   回復  更多評論   

    # re: 冒號課堂§6.3:前臺語言 2009-02-26 12:37 Tairan

    講的很中肯~  回復  更多評論   

    導航

    統計

    公告

    博客搬家:http://blog.zhenghui.org
    《冒號課堂》一書于2009年10月上市,詳情請見
    冒號課堂

    留言簿(17)

    隨筆分類(61)

    隨筆檔案(61)

    文章分類(1)

    文章檔案(1)

    最新隨筆

    積分與排名

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 国产精品亚洲视频| 免费a级毛片永久免费| 插B内射18免费视频| 永久免费av无码网站大全| 国产在线19禁免费观看| 亚洲视频在线一区二区| 久久久久亚洲AV无码专区首| 亚洲成年人电影网站| 亚洲国产精品99久久久久久| 国产免费播放一区二区| 91成人在线免费视频| 免费无码又爽又刺激高潮| 亚洲国产激情一区二区三区| 亚洲Av无码精品色午夜| 国产成人亚洲精品| 日韩精品视频在线观看免费| 日本高清免费观看| 老司机永久免费网站在线观看| 国产成人亚洲毛片| 任你躁在线精品免费| 久久不见久久见免费影院| 免费a级毛片视频| 亚洲AV无码一区二区乱孑伦AS | 在线播放免费人成毛片乱码| 日本免费在线观看| 免费毛片在线播放| 亚洲精品中文字幕乱码三区| 亚洲综合伊人制服丝袜美腿| 免费一区二区三区在线视频| 少妇人妻偷人精品免费视频| 国产免费人视频在线观看免费| 精品国产免费一区二区| 亚洲午夜无码片在线观看影院猛 | 免费无码肉片在线观看| 午夜亚洲av永久无码精品| 亚洲国产精品自在线一区二区| 亚洲AV无码专区国产乱码4SE| 亚洲人成精品久久久久| 亚洲成_人网站图片| 拍拍拍无挡视频免费观看1000| 福利免费在线观看|