網站(zhàn)建設的程序設計(jì)語言及優勢
網站(zhàn)建設的程序設計(jì)語言及優勢
在計(jì)算(suàn)機行(xíng)業,硬件設備的更新、軟件版本的換代、參考資料的出版體(tǐ)現了著名的Gorden Moore定律(1965):18~24個(gè)月換一個(gè)版本或提升一個(gè)速度或空(kōng)間(jiān)的數(shù)量級。當今,計(jì)算(suàn)機軟件技(jì)術(shù)發展的總趨勢是:全球化、網絡化、服務化。作(zuò)為(wèi)IT領域的教育、管理(lǐ)、研究與開(kāi)發人(rén)員,掌握一到兩門(mén)程序設計(jì)語言,設計(jì)與開(kāi)發一些(xiē)應用領域(桌面上(shàng)或企業級)中的程序與系統,既是對我們的基本要求,也是一種挑戰。本文就當前主流的程序設計(jì)語言的曆史、定位、發展、應用、版本及開(kāi)發工具等方面做(zuò)個(gè)簡介、分析與比較。這些(xiē)觀點僅代表個(gè)人(rén),學識和(hé)能力有(yǒu)限,所講之內(nèi)容有(yǒu)不當之處,還(hái)望各位不吝指正,講的問題也不全面,希望得(de)到大(dà)家(jiā)的補充和(hé)完善,以達到共同學習的目的。
一、C++與VC++
1970年, Ken Thompson開(kāi)發出B語言,并以此做(zuò)出了DEC公司PDP-7小(xiǎo)型機上(shàng)的Unix。1972年,Bell實驗室的Dennis Ritchie和(hé)Brian Kernighan在B的基礎上(shàng)補充和(hé)完善,開(kāi)發出了C語言。1987年發布了美國國家(jiā)标準ANSI C87。該語言的最大(dà)貢獻就是,做(zuò)出了劃時(shí)代的三個(gè)操作(zuò)系統Unix、MS-DOS和(hé)Windows。1980年,Bell實驗室的Bjarne Stroustrup對C進行(xíng)改進和(hé)擴充,成了最初被命名為(wèi)“帶類的C”——面向對象的C,1983年正式定名為(wèi)C++,1994年出現ANSI C++草稿。1991年微軟的VC++随Visual Studio發布。
1、定位 C++與VC++是當今域最主流的高(gāo)級程序設計(jì)和(hé)面向對象的開(kāi)發語言,其定位為(wèi):
l 真正的面向對象的程序設計(jì)語言;
l 支持底層的複雜系統程序設計(jì),而又不失C的效率;
l 支持大(dà)型應用系統的開(kāi)發。
事實上(shàng),隻有(yǒu)C++真正實現了同時(shí)對高(gāo)低(dī)層次的支持,基于此,C++得(de)到了廣泛的使用:從嵌入式系統(工業控制(zhì))到超大(dà)型應用系統(如美國電(diàn)信網絡系統)的應用開(kāi)發,C++的應用已經彌漫到IT行(xíng)業的各個(gè)角落。全世界大(dà)約有(yǒu)1500萬C++程序員。
2、發展 對系統級的程序員來(lái)說,C++的地位是不可(kě)替代的,C++還(hái)将繼續存在而且有(yǒu)旺盛的生(shēng)命力。俗話(huà)說:“真正的程序員用C++”。國內(nèi)優秀的C++程序員不多(duō)(沒有(yǒu)兩年以上(shàng)的實際編程經驗,成不了優秀的VC++程序員),優秀的企業級C++架構設計(jì)師(shī)更是屈指可(kě)數(shù)。為(wèi)了适應微軟的.Net戰略,其最新版本為(wèi)VC++ 7.0則改名為(wèi)VC++.NET。
3、應用 2000年前,我國金融業的核心系統、電(diàn)信業的核心系統以及許多(duō)政府部門(mén)的應用系統,采用C/C++/VC++(原來(lái)用C做(zuò)了些(xiē)系統)開(kāi)發,Java虛拟機JVM、金山(shān)詞霸、WPS Office、超級解霸、網絡螞蟻Netants,湖(hú)南交通(tōng)廳的Intranet的部分子系統等。
4、開(kāi)發工具 VC++6.0,1998年随Visual Studio 6 一同發布。最新的版本是2002年2月發布的VS.NET中的VC++.NET。常用的IDE還(hái)有(yǒu)Borland 公司的C++ Builder。
二、Java
1990年,以Sun Microsystem公司的James Gosling為(wèi)首的小(xiǎo)組,設計(jì)開(kāi)發了一種平台獨立的語言Oak,主要用于為(wèi)各種家(jiā)用電(diàn)器(qì)的編寫程序。1995年1月,Oak被改名為(wèi)Java 并發布Java1.0和(hé)HotJava浏覽器(qì)。1996年,Sun推出Java開(kāi)發工具包JDK、數(shù)據庫連接接口标準JDBC。同年,IBM、Macrosoft、Apple、HP、NEC、Hitachi、Toshiba等公司将Java嵌入到起操作(zuò)系統中或獲得(de)了Java許可(kě)證,加拿(ná)大(dà)的北方電(diàn)訊宣布将Java技(jì)術(shù)應用到其電(diàn)話(huà)機等通(tōng)信設備中。
1、定位 一種解決應用領域問題的語言:
l 語法簡潔;
l 滿足Web應用、分布式系統、開(kāi)放性體(tǐ)系、平台無關、安全的發展趨勢;
l 企業級的電(diàn)子商務應用;
l 嵌入式設備中的應用。
嵌入式設備:具有(yǒu)微處理(lǐ)器(qì)、存儲器(qì),為(wèi)特定功能設計(jì)制(zhì)作(zuò)的設備。
Java借鑒了C/C++中的許多(duō)思想,如:類、繼承等,
1)與C++的不同點
l 語法簡單;
l 運行(xíng)在虛拟環境之中(JVM);
l 沒有(yǒu)指針類型;
l 隻有(yǒu)單繼承無多(duō)繼承。
相對于C++而言,Java的優勢是開(kāi)發周期短(duǎn)、代碼安全(因為(wèi)沒有(yǒu)指針),以及平台無關性等。然而對于底層開(kāi)發,Java還(hái)是不夠理(lǐ)想。另一方面,Java語言在PDA、手機、信息家(jiā)電(diàn)、IC卡等嵌入系統式中也有(yǒu)較好的應用,這正是VC++、VB語言需要補充和(hé)改進之處。
2)運行(xíng)機制(zhì)如下:
Java源文件
Java編譯器(qì)
字節碼文件
Java Aplet Java應用程序
支持Java的浏覽器(qì)執行(xíng) Java解釋器(qì)執行(xíng)
字節碼文件:與平台無關的二進制(zhì)碼文件,執行(xíng)時(shí)由解釋器(qì)解釋成本地機器(qì)碼,運行(xíng)一行(xíng)解釋一行(xíng)。
Java提供了豐富的WFC類庫,提供了多(duō)線程标準、JDBC标準、GUI标準,而這些(xiē)标準在C++中是不存在的。因為(wèi)C++并不是直接面向解決應用問題的用戶。
2、發展 1998年,Sun公司發布Java 2,包括三個(gè)部分:J2EE、J2SE、J2ME
l J2EE:Java 2 Enterprise Edition,面向基于J2EE(Java 2 Enterprise Edition)框架的大(dà)型電(diàn)子商務平台與應用,EJB(Enterprise JavaBeans)等是其使用的主要技(jì)術(shù)。1999年,Sun公司推出一種動态網頁技(jì)術(shù)——JSP(Java Script Page),該技(jì)術(shù)基于Java Servlet(Web服務器(qì)端運行(xíng)的Java)和(hé)Java體(tǐ)系。
JSP與ASP的主要區(qū)别:
Ø 腳本語言:ASP以JavaScript和(hé)VBScript為(wèi)腳本,JSP則以Java為(wèi)腳本;
Ø 數(shù)據庫接口:ASP使用ODBC通(tōng)過ADO連接數(shù)據庫,Java通(tōng)過标準的JDBC連接數(shù)據庫。通(tōng)過免費的JDBC—ODBC橋,Java可(kě)以轉化JDBC訪問為(wèi)ODBC訪問。
l J2SE:Java 2 Standard Edition,面向普通(tōng)PC應用;
l J2ME:Java 2 Micro Editioin,針對嵌入式設備、消費類電(diàn)器(qì)的應用。
作(zuò)為(wèi)一門(mén)正處于發展高(gāo)峰期的程序設計(jì)語言,在可(kě)以預見的未來(lái)3年內(nèi),Java将進一步鞏固其在服務器(qì)端确立的戰略優勢并同時(shí)向嵌入式系統等應用中延伸,形成規模化的Java應用。
2002年12月,SUN公司又發布了最新的J2EE、J2ME面向移動終端規範。
3、應用 在Web網頁中,經常可(kě)以看到Java的應用——JSP。交通(tōng)運輸管理(lǐ)行(xíng)業的最大(dà)軟件開(kāi)發商——亞橋(Asiabridge)國際信息技(jì)術(shù)開(kāi)發公司,在道(dào)路運輸管理(lǐ)、物流網的設計(jì)和(hé)規劃中,均是采用J2EE構架。此外,SUN公司稱,全世界已經有(yǒu)至少(shǎo)5000萬部Java手機。世界主要的計(jì)算(suàn)機公司、移動通(tōng)信公司、我國的移動、聯通(tōng)等,均支持或已經采用了Java技(jì)術(shù)。
4、開(kāi)發工具 Java2,開(kāi)發工具有(yǒu)VJ++ 、J Builder 及SUN公司的免費開(kāi)發工具JDK1.4,JDBC3.0。
三、Delphi
1971年,瑞士的N.Wirth教授設計(jì)開(kāi)發出基于Algol60、Algol68的通(tōng)用程序高(gāo)級語言,并以法國數(shù)學家(jiā)Pascal命名。該語言是世界上(shàng)第一個(gè)結構化程序設計(jì)語言——E.W.Dijkstra、C.A.R.Hoare提出的思想,也是80年代到90年代初計(jì)算(suàn)機專業的首選學習語言。1991年,Borland公司将該語言擴充成Object Pascal,并以此為(wèi)基礎發布了著名的Delphi。
1、定位
l 基于Windows APIs 的C++與Java開(kāi)發應用系統的一個(gè)中間(jiān)産物;
l 比C++簡單,比運行(xíng)于JVM的Java效率高(gāo);
l 可(kě)視(shì)化程度比VB、VC++好,但(dàn)學習難度比VC++低(dī);
l 可(kě)以實現VC++的全部功能。
Delphi最大(dà)的特色是豐富的類庫——VCL和(hé)其他的組件庫。該元件庫提供比VC++、VB等常見的開(kāi)發工具好用的對象組件庫,并容易由程序員自己設計(jì)開(kāi)發出VCL。此外,C++Builder使用與Delphi相同的VCL,即Delphi開(kāi)發的代碼或元件,可(kě)以輕松地在C++Builder中使用。全球有(yǒu)100萬的Delphi使用者。
2、發展 Delphi在未來(lái)一段時(shí)間(jiān)将繼續存在。當前,Delphi仍然是首選的C/S應用系統的開(kāi)發工具、是數(shù)據庫應用系統的開(kāi)發工具。Delphi不僅在Windows客戶端具有(yǒu)RAD優勢,還(hái)且增強了如下幾個(gè)方面的功能:
l 支持XML、SOAP等工業标準,提供可(kě)視(shì)化的快速Web開(kāi)發環境;
l 內(nèi)建對Linux的跨平台支持;
l 對Windowx XP、.NET的支持與開(kāi)發。
長遠來(lái)看Delphi将受到C#、Java等的挑戰:C#的WebService應用開(kāi)發、Java的運行(xíng)效率。
Kylix:以Object Pascal為(wèi)基礎語言,開(kāi)發Linux應用程序的IDE。Delphi本質上(shàng)是基于Windows APIs,而Kylix則是基于OOP可(kě)視(shì)組件庫CLX(Component Library for CrossPlatform——一組基于QT(Linux中的OOP DLL庫)。
3、應用 著名的Foxmail、Windows優化大(dà)師(shī)、網絡伴侶等均是Delphi的傑作(zuò)。我系參與開(kāi)發的“省級公路運輸管理(lǐ)局的汽車(chē)維修管理(lǐ)系統”、“省級道(dào)路運輸行(xíng)業駕駛員培訓管理(lǐ)系統”、“省級道(dào)路客運班線牌管理(lǐ)系統”、“基于WEB平台的統計(jì)報表合并及處理(lǐ)系統”等也是使用Delphi編寫的。
4、開(kāi)發工具 2001年6月,發布Delphi 6.0,2002年8月發布Delphi 7.0 Studio,增強了網絡方面的VCL,整合了Kylix 3,第一個(gè)中立開(kāi)發公司發布的支持.NET技(jì)術(shù)平台。有(yǒu)四個(gè)版本:Framework、Enterprise、Professional、Personal,前三個(gè)版本含Kylix 3。
四、.NET
2000年6月,微軟正式宣布.NET構架。當時(shí)的微軟中國研究院院長李開(kāi)複博士被比爾·蓋茨委以重任,調往美國微軟,負責微軟曆史上(shàng)最重要的一次變革:.NET戰略。微軟著名的利器(qì)——Visual Studio 6是1998年發布的。4年後的今天,發布了全新的基于.NET開(kāi)發工具包——Visual Studio .NET,足見微軟的寶壓在.NET上(shàng)了。
.NET是微軟的XML Web服務平台,包含了建立和(hé)運行(xíng)基于XML的軟件所需要的全部部件。在.NET中,程序員設計(jì)編寫的是XML Web服務,而不再是服務器(qì)或客戶端的獨立應用程序。
1、.NET程序設計(jì)語言框架
C#、VB、C++、JScript、滿足CLS的語言
.NET中間(jiān)語言編譯器(qì)
C++ 中間(jiān)語言 IL:Intermediate Language
編譯器(qì) JIT編譯器(qì):Just in Time即時(shí)編譯器(qì)
EXE 可(kě)執行(xíng)文件
現有(yǒu)OS 通(tōng)用語言運行(xíng)時(shí)刻庫 CLR
機器(qì)硬件 現有(yǒu)操作(zuò)系統 機器(qì)硬件
.NET沒有(yǒu)象Java一樣使用JVM(虛拟機)技(jì)術(shù),運行(xíng)于.NET上(shàng)的軟件被完全編譯,并象C代碼一樣運行(xíng)在機器(qì)硬件級。當.NET運行(xíng)時(shí)刻庫CLR(Comman Language Runtime)執行(xíng)一個(gè)被轉換為(wèi)IL的程序時(shí),使用JITer編譯器(qì)将IL快速地編譯成本地代碼。其中,CLR部分位于硬件之上(shàng),部分位于現有(yǒu)OS之上(shàng),為(wèi)組件與計(jì)算(suàn)機或機器(qì)OS交換提供所有(yǒu)服務。
2、CLR與.NET的關系
C#、C++、VB、JScript、滿足CLS的語言
通(tōng)用語言規範CLS
WebService 用戶接口
數(shù)據和(hé)XML
基礎類庫
通(tōng)用語言運行(xíng)時(shí)刻庫CLR
.NET應用系統的數(shù)據由XML封裝,通(tōng)過HTTP協議傳輸,依照SOAP(Small Object Access Protocol)與其他WebService對話(huà)與溝通(tōng)。
3、.NET的核心組成
.NET是一種全新的平台,它将對現有(yǒu)的所有(yǒu)代碼産生(shēng)影(yǐng)響。蓋茨說:“微軟所有(yǒu)的産品都會(huì)被涉及。我們的整個(gè)戰略是圍繞這個(gè)平台展開(kāi)的。” ,其核心為(wèi)三部分:CLR、統一的編程類庫和(hé)一個(gè)被稱為(wèi)ASP+的高(gāo)級ASP版本:
1)通(tōng)用語言運行(xíng)庫CLR
實際上(shàng)每一種編程語言都已包含一個(gè)運行(xíng)庫:VB有(yǒu)VBRun,VC++有(yǒu)MSVCRT。此外,像VFP、PB等都有(yǒu)運行(xíng)庫。.NET提供了一個(gè)跨所有(yǒu)編程語言的統一環境,其基礎是通(tōng)用語言規範CLS。
2)統一編程類庫
C++使用MFC,Java使用WindowsFC,VB使用VB APIs,Delphi 使用VCL。.NET框架類為(wèi)開(kāi)發人(rén)員提供了一套可(kě)以使用的統一的面向對象、異步、層次結構的可(kě)擴展類庫。從JScript 到C++的所有(yǒu)編程語言,對于.NET框架都是相互等同的,開(kāi)發人(rén)員可(kě)以自由地選擇他們想使用的任何語言。
3)ASP+
ASP+提供了一個(gè)Web應用程序模型,該模型由一組控件和(hé)一個(gè)基本結構組成。有(yǒu)了它,Web應用程序的構建變得(de)非常容易。開(kāi)發人(rén)員可(kě)以直接使用ASP+控件集,該控件集封裝了公共的、用于超文本标識語言(HTML)用戶界面的各種組件(諸如文本框、下拉選單等等)。
4、解決的核心問題
l 互操作(zuò)性(Interoperability)、集成性(Integration)和(hé)應用程序的可(kě)擴展性(extensibility)太難實現而且代價很(hěn)高(gāo)。Microsoft .NET依靠XML(一個(gè)由World Wide Web Consortium(W3C)管理(lǐ)的開(kāi)放标準)消除了數(shù)據共享和(hé)軟件集成的障礙;
l Microsoft .NET建立在一個(gè)開(kāi)放的标準上(shàng),它包含了所有(yǒu)編程語言;
l WebService模式 MS-DOS使得(de)個(gè)人(rén)電(diàn)腦(nǎo)上(shàng)廣為(wèi)接受;Windows增強了用戶的圖形界面,使其成為(wèi)首選的與軟件交互方式,最終使得(de)圖形界面成為(wèi)個(gè)人(rén)電(diàn)腦(nǎo)的主流。而.NET則要把XML Web服務變成日後的主流計(jì)算(suàn)模式。
五、C#語言
對C/C++程序員來(lái)說,使用VB、Delphi等RAD工具,工作(zuò)效率高(gāo),但(dàn)犧牲了C/C++程序員熟悉的靈活性。對他們而言,最好的解決方案是:快速開(kāi)發RAD、滿足Web應用、保持底層編碼能力和(hé)C/C++的靈活性。這就是C#的目标。該系統的主要研制(zhì)者——Anders Hejlsberg,就是鼎鼎有(yǒu)名的Delphi的研制(zhì)者之一。
1、定位
l 微軟在.NET平台上(shàng)的Java的語言;
l Web Services應用系統的主要語言;
l 能使C++程序員快速開(kāi)發程序;
l 具有(yǒu)底層控制(zhì)能力。
C#對于從高(gāo)層商用軟件到系統級應用程序的多(duō)種組件構造都是合适的選擇,C#本來(lái)的意思就是C++++,如果熟悉了C++,那(nà)麽學習C#要比學習Java要容易得(de)多(duō)。
2、特點
1)與C++比較 自C/C++演變而來(lái),但(dàn)簡化與更新了C++中的類,降低(dī)了C++的複雜性,抛棄了C++的一些(xiē)無用功能。具有(yǒu)垃圾回收功能,使得(de)程序員不需要對內(nèi)存進行(xíng)手動管理(lǐ);
2)管理(lǐ)機構 C#不是由微軟來(lái)管理(lǐ),而是由ECMA(歐洲計(jì)算(suàn)機制(zhì)造聯合會(huì))來(lái)管理(lǐ),和(hé)Jscript、CLS一樣(ECMA是一個(gè)獨立的實體(tǐ));
3、發展
随着Windows操作(zuò)系統2000、XP及未來(lái)的NET版本,C#将成為(wèi)微軟公司基于Windows、Web等主要開(kāi)發語言及工具。VS.NET中的C#為(wèi)第一個(gè)版本。
六、VB.NET
在可(kě)視(shì)化RAD開(kāi)發工具中,內(nèi)核語言以BASIC的曆史最長,1955年随Fortran出現後的第一個(gè)适合初學者的高(gāo)級程序設計(jì)語言。它是一個(gè)解釋型弱數(shù)據類型語言,其True BASIC、QBASIC、Turbo BASIC等曾風行(xíng)一時(shí),目前仍然有(yǒu)人(rén)在使用DOS平台下的QBASIC。1991年發布VB1.0後,随着應用的發展,先後衍生(shēng)出了VB、VBA、VBScript等語言。
1、定位
l 比C/C++易學好用的快速開(kāi)發工具,搶占由Delphi、PB等RAD占領的技(jì)術(shù)領域,
l 擴展到Back Office、Web等應用領域。
l 創建Windows客戶端的應用程序;
l 創建XML Web服務應用程序。
從技(jì)術(shù)角度而言,VB不能算(suàn)是一個(gè)純粹面向對象的程序設計(jì)語言,這方面它大(dà)大(dà)落後于Borland Delphi、Object Pascal (Pascal的Delphi版本)。由于衍自Microsoft的皇家(jiā)血統,所以VB、VBA、VBScript在應用系統、Web網絡方面獲得(de)了可(kě)靠的持續性發展能力,但(dàn)與Delphi相比,其并不具備技(jì)術(shù)上(shàng)的競争優勢。
2、發展 1998年VB6.0發布後,經過4年,微軟發布了其升級版本VB.NET,該版本的結構調整較大(dà),有(yǒu)了質的變化。該版本将統一VB、VBA、VBScript。
3、應用 VB在東亞,特别是在日本應用非常普遍。除核心的程序代碼外,Windows XP中大(dà)約2億行(xíng)代碼是Micorsoft公司用VB寫成的,而不是C++/VC++(事實上(shàng),Bill Gates 是一個(gè)Basic的頂級高(gāo)手)
4、開(kāi)發工具 VB.6,1998年随Visual Studio一同發布。最新的VB7.0,2002年2月,則改稱為(wèi)VB.NET。
七、結論
Delphi、C++Builder、Visual C++、VB等,能在市場(chǎng)上(shàng)立足,肯定都是有(yǒu)自己的過人(rén)之處的,而且一個(gè)人(rén)精通(tōng)數(shù)種開(kāi)發語言、數(shù)種開(kāi)發工具是不可(kě)能的事情。對于計(jì)算(suàn)機語言來(lái)說,未來(lái)真正重要的通(tōng)用主流語言隻有(yǒu)三種C++、Java和(hé)C#。
1、底層開(kāi)發與學習語言C++
C++将更适合于編寫圖形界面系統GUI、虛拟機(比如Java虛拟機)、殺毒軟件或者其他的盒裝軟件(比如說Photoshop、Dreamweaver)、底層設計(jì)與開(kāi)發應用。同時(shí),C++适合做(zuò)學習之用,為(wèi)進一步學習掌握Java、C#打下基礎。
2、Web應用語言C#、Java
如果開(kāi)發為(wèi)客戶定制(zhì)的應用系統,包括桌面應用和(hé)Web應用,Java、C#是更好的選擇。
3、客戶端應用語言Delphi
如果虛拟機的執行(xíng)效率趕不上(shàng)Delphi,它就有(yǒu)存在的理(lǐ)由,從長遠來(lái)看Delphi可(kě)能不那(nà)麽樂觀。當前,在Windows客戶端,設計(jì)開(kāi)發應用系統VCL無疑最好的。
那(nà)麽最終誰會(huì)赢呢?多(duō)赢的可(kě)能性大(dà)一些(xiē)。有(yǒu)文分析,到2005年,企業級開(kāi)發平台的霸權之争将是一場(chǎng)“半斤對八兩的雙雄會(huì)”,Java和(hé).NET将各占領40%左右的市場(chǎng)。大(dà)多(duō)數(shù)大(dà)企業組織将同時(shí)采用這二種平台,它們已經成為(wèi)業界事實上(shàng)的标準。如果數(shù)據庫DBMS一樣,最終語言将如何整合、發展,是否有(yǒu)新的設計(jì)語言或規範出來(lái),将有(yǒu)市場(chǎng)來(lái)決定。
真正的程序員用VC++,聰明(míng)的程序員用Delphi,未來(lái)的程序員用Java和(hé)C#。每當新的硬件設備、軟件開(kāi)發平台及開(kāi)發工具出現時(shí)(尤其在IT領域中),既給我們帶來(lái)了挑戰,更給我們帶來(lái)了機遇。抓住機遇、與時(shí)俱進、迎接挑戰。
準備不充分、內(nèi)容不全面、講得(de)不好,請(qǐng)多(duō)多(duō)指教,謝謝。