<返回列表

新聞分類

新聞中心

網站(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)的Unix1972年,Bell實驗室的Dennis Ritchie和(hé)Brian KernighanB的基礎上(shàng)補充和(hé)完善,開(kāi)發出了C語言。1987年發布了美國國家(jiā)标準ANSI C87。該語言的最大(dà)貢獻就是,做(zuò)出了劃時(shí)代的三個(gè)操作(zuò)系統UnixMS-DOS和(hé)Windows1980年,Bell實驗室的Bjarne StroustrupC進行(xíng)改進和(hé)擴充,成了最初被命名為(wèi)“帶類的C”——面向對象的C1983年正式定名為(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)1500C++程序員。

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.01998年随Visual Studio 6 一同發布。最新的版本是20022月發布的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ì)的編寫程序。19951月,Oak被改名為(wèi)Java 并發布Java1.0和(hé)HotJava浏覽器(qì)。1996年,Sun推出Java開(kāi)發工具包JDK、數(shù)據庫連接接口标準JDBC。同年,IBMMacrosoftAppleHPNECHitachiToshiba等公司将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è)部分:J2EEJ2SEJ2ME

l  J2EEJava 2 Enterprise Edition,面向基于J2EEJava 2 Enterprise Edition)框架的大(dà)型電(diàn)子商務平台與應用,EJB(Enterprise JavaBeans)等是其使用的主要技(jì)術(shù)。1999年,Sun公司推出一種動态網頁技(jì)術(shù)——JSPJava Script Page),該技(jì)術(shù)基于Java Servlet(Web服務器(qì)端運行(xíng)的Java)和(hé)Java體(tǐ)系。

JSPASP的主要區(qū)别:

Ø  腳本語言ASPJavaScript和(hé)VBScript為(wèi)腳本,JSP則以Java為(wèi)腳本;

Ø  數(shù)據庫接口ASP使用ODBC通(tōng)過ADO連接數(shù)據庫,Java通(tōng)過标準的JDBC連接數(shù)據庫。通(tōng)過免費的JDBCODBC橋,Java可(kě)以轉化JDBC訪問為(wèi)ODBC訪問。

l  J2SEJava 2 Standard Edition,面向普通(tōng)PC應用;

l  J2MEJava 2 Micro Editioin,針對嵌入式設備、消費類電(diàn)器(qì)的應用。

作(zuò)為(wèi)一門(mén)正處于發展高(gāo)峰期的程序設計(jì)語言,在可(kě)以預見的未來(lái)3年內(nèi),Java将進一步鞏固其在服務器(qì)端确立的戰略優勢并同時(shí)向嵌入式系統等應用中延伸,形成規模化的Java應用。

200212月,SUN公司又發布了最新的J2EEJ2ME面向移動終端規範。

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.4JDBC3.0

三、Delphi

1971年,瑞士的N.Wirth教授設計(jì)開(kāi)發出基于Algol60Algol68的通(tōng)用程序高(gāo)級語言,并以法國數(shù)學家(jiā)Pascal命名。該語言是世界上(shàng)第一個(gè)結構化程序設計(jì)語言——E.W.DijkstraC.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)于JVMJava效率高(gāo);

l  可(kě)視(shì)化程度比VBVC++好,但(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  支持XMLSOAP等工業标準,提供可(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)效率。

KylixObject Pascal為(wèi)基礎語言,開(kāi)發Linux應用程序的IDEDelphi本質上(shàng)是基于Windows APIs,而Kylix則是基于OOP可(kě)視(shì)組件庫CLX(Component Library for CrossPlatform——一組基于QTLinux中的OOP DLL庫)。

3、應用  著名的FoxmailWindows優化大(dà)師(shī)、網絡伴侶等均是Delphi的傑作(zuò)。我系參與開(kāi)發的“省級公路運輸管理(lǐ)局的汽車(chē)維修管理(lǐ)系統”、“省級道(dào)路運輸行(xíng)業駕駛員培訓管理(lǐ)系統”、“省級道(dào)路客運班線牌管理(lǐ)系統”、“基于WEB平台的統計(jì)報表合并及處理(lǐ)系統”等也是使用Delphi編寫的。

4、開(kāi)發工具  20016月,發布Delphi 6.020028月發布Delphi 7.0 Studio,增強了網絡方面的VCL,整合了Kylix 3,第一個(gè)中立開(kāi)發公司發布的支持.NET技(jì)術(shù)平台。有(yǒu)四個(gè)版本:FrameworkEnterpriseProfessionalPersonal,前三個(gè)版本含Kylix 3

四、.NET

20006月,微軟正式宣布.NET構架。當時(shí)的微軟中國研究院院長李開(kāi)複博士被比爾·蓋茨委以重任,調往美國微軟,負責微軟曆史上(shàng)最重要的一次變革:.NET戰略。微軟著名的利器(qì)——Visual Studio 61998年發布的。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#VBC++JScript、滿足CLS的語言

                   .NET中間(jiān)語言編譯器(qì)            

C++        中間(jiān)語言 ILIntermediate 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í)刻庫CLRComman 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)服務。

2CLR.NET的關系

                 C#C++VBJScript、滿足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)VBRunVC++有(yǒu)MSVCRT。此外,像VFPPB等都有(yǒu)運行(xíng)庫。.NET提供了一個(gè)跨所有(yǒu)編程語言的統一環境,其基礎是通(tōng)用語言規範CLS

2)統一編程類庫

C++使用MFCJava使用WindowsFCVB使用VB APIsDelphi 使用VCL.NET框架類為(wèi)開(kāi)發人(rén)員提供了一套可(kě)以使用的統一的面向對象、異步、層次結構的可(kě)擴展類庫。從JScript C++的所有(yǒu)編程語言,對于.NET框架都是相互等同的,開(kāi)發人(rén)員可(kě)以自由地選擇他們想使用的任何語言。

3ASP+

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)說,使用VBDelphiRAD工具,工作(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é)JscriptCLS一樣(ECMA是一個(gè)獨立的實體(tǐ));

3、發展 

随着Windows操作(zuò)系統2000XP及未來(lái)的NET版本,C#将成為(wèi)微軟公司基于WindowsWeb等主要開(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 BASICQBASICTurbo BASIC等曾風行(xíng)一時(shí),目前仍然有(yǒu)人(rén)在使用DOS平台下的QBASIC1991年發布VB1.0後,随着應用的發展,先後衍生(shēng)出了VBVBAVBScript等語言。

1、定位

l  C/C++易學好用的快速開(kāi)發工具,搶占由DelphiPBRAD占領的技(jì)術(shù)領域,

l  擴展到Back OfficeWeb等應用領域。

l  創建Windows客戶端的應用程序;

l  創建XML Web服務應用程序。

從技(jì)術(shù)角度而言,VB不能算(suàn)是一個(gè)純粹面向對象的程序設計(jì)語言,這方面它大(dà)大(dà)落後于Borland DelphiObject Pascal PascalDelphi版本)。由于衍自Microsoft的皇家(jiā)血統,所以VBVBAVBScript在應用系統、Web網絡方面獲得(de)了可(kě)靠的持續性發展能力,但(dàn)與Delphi相比,其并不具備技(jì)術(shù)上(shàng)的競争優勢。

2、發展  1998VB6.0發布後,經過4年,微軟發布了其升級版本VB.NET,該版本的結構調整較大(dà),有(yǒu)了質的變化。該版本将統一VBVBAVBScript

3、應用  VB在東亞,特别是在日本應用非常普遍。除核心的程序代碼外,Windows XP中大(dà)約2億行(xíng)代碼是Micorsoft公司用VB寫成的,而不是C++/VC++(事實上(shàng),Bill Gates 是一個(gè)Basic的頂級高(gāo)手)

4、開(kāi)發工具  VB.61998年随Visual Studio一同發布。最新的VB7.020022月,則改稱為(wèi)VB.NET

七、結論

DelphiC++BuilderVisual 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虛拟機)、殺毒軟件或者其他的盒裝軟件(比如說PhotoshopDreamweaver)、底層設計(jì)與開(kāi)發應用。同時(shí),C++适合做(zuò)學習之用,為(wèi)進一步學習掌握JavaC#打下基礎。

2Web應用語言C#Java

如果開(kāi)發為(wèi)客戶定制(zhì)的應用系統,包括桌面應用和(hé)Web應用,JavaC#是更好的選擇。

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ō)指教,謝謝。

掃碼加客服微信
确 認