<返回列表

新聞分類

新聞中心

網站建設的程序設計語言及優勢

網站建設的程序設計語言及優勢

在計算機行業,硬件設備的更新、軟件版本的換代、參考資料的出版體現了著名的Gorden Moore定律(1965)18~24個月換一個版本或提升一個速度或空間的數量級。當今,計算機軟件技術發(fā)展的總趨勢是:全球化、網絡化、服務化。作爲IT領域的教育、管理、研究與開(kāi)發(fā)人員,掌握一到兩(liǎng)門程序設計語言,設計與開(kāi)發(fā)一些應用領域(桌面(miàn)上或企業級)中的程序與系統,既是對(duì)我們的基本要求,也是一種(zhǒng)挑戰。本文就當前主流的程序設計語言的曆史、定位、發(fā)展、應用、版本及開(kāi)發(fā)工具等方面(miàn)做個簡介、分析與比較。這(zhè)些觀點僅代表個人,學(xué)識和能(néng)力有限,所講之内容有不當之處,還(hái)望各位不吝指正,講的問題也不全面(miàn),希望得到大家的補充和完善,以達到共同學(xué)習的目的。

一、C++VC++

1970年, Ken Thompson開(kāi)發(fā)出B語言,并以此做出了DEC公司PDP-7小型機上的Unix1972年,Bell實驗室的Dennis RitchieBrian KernighanB的基礎上補充和完善,開(kāi)發(fā)出了C語言。1987年發(fā)布了美國(guó)國(guó)家标準ANSI C87。該語言的最大貢獻就是,做出了劃時代的三個操作系統UnixMS-DOSWindows1980年,Bell實驗室的Bjarne Stroustrup對(duì)C進(jìn)行改進(jìn)和擴充,成(chéng)了最初被(bèi)命名爲“帶類的C”——面(miàn)向(xiàng)對(duì)象的C1983年正式定名爲C++1994年出現ANSI C++草稿。1991年微軟的VC++Visual Studio發(fā)布。

1、定位  C++VC++是當今域最主流的高級程序設計和面(miàn)向(xiàng)對(duì)象的開(kāi)發(fā)語言,其定位爲

l  真正的面(miàn)向(xiàng)對(duì)象的程序設計語言;

l  支持底層的複雜系統程序設計,而又不失C的效率;

l  支持大型應用系統的開(kāi)發(fā)。

事(shì)實上,隻有C++真正實現了同時對(duì)高低層次的支持,基于此,C++得到了廣泛的使用:從嵌入式系統(工業控制)到超大型應用系統(如美國(guó)電信網絡系統)的應用開(kāi)發(fā),C++的應用已經(jīng)彌漫到IT行業的各個角落。全世界大約有1500C++程序員。

2、發(fā)展  對(duì)系統級的程序員來說,C++的地位是不可替代的,C++還(hái)將(jiāng)繼續存在而且有旺盛的生命力。俗話說:“真正的程序員用C++”。國(guó)内優秀的C++程序員不多(沒(méi)有兩(liǎng)年以上的實際編程經(jīng)驗,成(chéng)不了優秀的VC++程序員),優秀的企業級C++架構設計師更是屈指可數。爲了适應微軟的.Net戰略,其最新版本爲VC++ 7.0則改名爲VC++.NET

3、應用  2000年前,我國(guó)金融業的核心系統、電信業的核心系統以及許多政府部門的應用系統,采用C/C++/VC++(原來用C做了些系統)開(kāi)發(fā),Java虛拟機JVM、金山詞霸、WPS Office、超級解霸、網絡螞蟻Netants,湖南交通廳的Intranet的部分子系統等。

4、開(kāi)發(fā)工具  VC++6.01998年随Visual Studio 6 一同發(fā)布。最新的版本是20022月發(fā)布的VS.NET中的VC++.NET。常用的IDE還(hái)有Borland 公司的C++ Builder

二、Java

1990年,以Sun Microsystem公司的James Gosling爲首的小組,設計開(kāi)發(fā)了一種(zhǒng)平台獨立的語言Oak,主要用于爲各種(zhǒng)家用電器的編寫程序。19951月,Oak被(bèi)改名爲Java 并發(fā)布Java1.0HotJava浏覽器。1996年,Sun推出Java開(kāi)發(fā)工具包JDK、數據庫連接接口标準JDBC。同年,IBMMacrosoftAppleHPNECHitachiToshiba等公司將(jiāng)Java嵌入到起(qǐ)操作系統中或獲得了Java許可證,加拿大的北方電訊宣布將(jiāng)Java技術應用到其電話機等通信設備中。

1、定位  一種(zhǒng)解決應用領域問題的語言:

l  語法簡潔;

l  滿足Web應用、分布式系統、開(kāi)放性體系、平台無關、安全的發(fā)展趨勢;

l  企業級的電子商務應用;

l  嵌入式設備中的應用。

嵌入式設備:具有微處理器、存儲器,爲特定功能(néng)設計制作的設備。

Java借鑒了C/C++中的許多思想,如:類、繼承等,

1)與C++的不同點

l  語法簡單;

l  運行在虛拟環境之中(JVM);

l  沒(méi)有指針類型;

l  隻有單繼承無多繼承。

相對(duì)于C++而言,Java的優勢是開(kāi)發(fā)周期短、代碼安全(因爲沒(méi)有指針),以及平台無關性等。然而對(duì)于底層開(kāi)發(fā),Java還(hái)是不夠理想。另一方面(miàn),Java語言在PDA、手機、信息家電、IC卡等嵌入系統式中也有較好(hǎo)的應用,這(zhè)正是VC++VB語言需要補充和改進(jìn)之處。

2)運行機制如下:

                 Java源文件            

                 Java編譯器            

                 字節碼文件            

    Java Aplet           Java應用程序   

支持Java的浏覽器執行   Java解釋器執行 

字節碼文件:與平台無關的二進(jìn)制碼文件,執行時由解釋器解釋成(chéng)本地機器碼,運行一行解釋一行。

Java提供了豐富的WFC類庫,提供了多線程标準、JDBC标準、GUI标準,而這(zhè)些标準在C++中是不存在的。因爲C++并不是直接面(miàn)向(xiàng)解決應用問題的用戶。

2、發(fā)展  1998年,Sun公司發(fā)布Java 2,包括三個部分:J2EEJ2SEJ2ME

l  J2EEJava 2 Enterprise Edition,面(miàn)向(xiàng)基于J2EEJava 2 Enterprise Edition)框架的大型電子商務平台與應用,EJB(Enterprise JavaBeans)等是其使用的主要技術。1999年,Sun公司推出一種(zhǒng)動态網頁技術——JSPJava Script Page),該技術基于Java Servlet(Web服務器端運行的Java)Java體系。

JSPASP的主要區别:

Ø  腳本語言ASPJavaScriptVBScript爲腳本,JSP則以Java爲腳本;

Ø  數據庫接口ASP使用ODBC通過(guò)ADO連接數據庫,Java通過(guò)标準的JDBC連接數據庫。通過(guò)免費的JDBCODBC橋,Java可以轉化JDBC訪問爲ODBC訪問。

l  J2SEJava 2 Standard Edition,面(miàn)向(xiàng)普通PC應用;

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

作爲一門正處于發(fā)展高峰期的程序設計語言,在可以預見的未來3年内,Java將(jiāng)進(jìn)一步鞏固其在服務器端确立的戰略優勢并同時向(xiàng)嵌入式系統等應用中延伸,形成(chéng)規模化的Java應用。

200212月,SUN公司又發(fā)布了最新的J2EEJ2ME面(miàn)向(xiàng)移動終端規範。

3、應用  Web網頁中,經(jīng)常可以看到Java的應用——JSP。交通運輸管理行業的最大軟件開(kāi)發(fā)商——亞橋(Asiabridge)國(guó)際信息技術開(kāi)發(fā)公司,在道(dào)路運輸管理、物流網的設計和規劃中,均是采用J2EE構架。此外,SUN公司稱,全世界已經(jīng)有至少5000萬部Java手機。世界主要的計算機公司、移動通信公司、我國(guó)的移動、聯通等,均支持或已經(jīng)采用了Java技術。

4、開(kāi)發(fā)工具  Java2,開(kāi)發(fā)工具有VJ++ J Builder SUN公司的免費開(kāi)發(fā)工具JDK1.4JDBC3.0

三、Delphi

1971年,瑞士的N.Wirth教授設計開(kāi)發(fā)出基于Algol60Algol68的通用程序高級語言,并以法國(guó)數學(xué)家Pascal命名。該語言是世界上第一個結構化程序設計語言——E.W.DijkstraC.A.R.Hoare提出的思想,也是80年代到90年代初計算機專業的首選學(xué)習語言。1991年,Borland公司將(jiāng)該語言擴充成(chéng)Object Pascal,并以此爲基礎發(fā)布了著名的Delphi

1、定位 

l  基于Windows APIs C++Java開(kāi)發(fā)應用系統的一個中間産物;

l  C++簡單,比運行于JVMJava效率高;

l  可視化程度比VBVC++好(hǎo),但學(xué)習難度比VC++低;

l  可以實現VC++的全部功能(néng)。

Delphi最大的特色是豐富的類庫——VCL和其他的組件庫。該元件庫提供比VC++VB等常見的開(kāi)發(fā)工具好(hǎo)用的對(duì)象組件庫,并容易由程序員自己設計開(kāi)發(fā)出VCL。此外,C++Builder使用與Delphi相同的VCL,即Delphi開(kāi)發(fā)的代碼或元件,可以輕松地在C++Builder中使用。全球有100萬的Delphi使用者。

2、發(fā)展  Delphi在未來一段時間將(jiāng)繼續存在。當前,Delphi仍然是首選的C/S應用系統的開(kāi)發(fā)工具、是數據庫應用系統的開(kāi)發(fā)工具。Delphi不僅在Windows客戶端具有RAD優勢,還(hái)且增強了如下幾個方面(miàn)的功能(néng):

l  支持XMLSOAP等工業标準,提供可視化的快速Web開(kāi)發(fā)環境;

l  内建對(duì)Linux的跨平台支持;

l  對(duì)Windowx XP.NET的支持與開(kāi)發(fā)。

長(cháng)遠來看Delphi將(jiāng)受到C#Java等的挑戰:C#WebService應用開(kāi)發(fā)、Java的運行效率。

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

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

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

四、.NET

20006月,微軟正式宣布.NET構架。當時的微軟中國(guó)研究院院長(cháng)李開(kāi)複博士被(bèi)比爾·蓋茨委以重任,調往美國(guó)微軟,負責微軟曆史上最重要的一次變革:.NET戰略。微軟著名的利器——Visual Studio 61998年發(fā)布的。4年後(hòu)的今天,發(fā)布了全新的基于.NET開(kāi)發(fā)工具包——Visual Studio .NET,足見微軟的寶壓在.NET上了。

.NET是微軟的XML Web服務平台,包含了建立和運行基于XML的軟件所需要的全部部件。在.NET中,程序員設計編寫的是XML Web服務,而不再是服務器或客戶端的獨立應用程序。

1.NET程序設計語言框架

                  C#VBC++JScript、滿足CLS的語言

                   .NET中間語言編譯器            

C++        中間語言 ILIntermediate Language

編譯器     JIT編譯器:Just in Time即時編譯器

EXE                可執行文件            

現有OS      通用語言運行時刻庫 CLR      

機器硬件     現有操作系統  機器硬件        

.NET沒(méi)有象Java一樣(yàng)使用JVM(虛拟機)技術,運行于.NET上的軟件被(bèi)完全編譯,并象C代碼一樣(yàng)運行在機器硬件級。當.NET運行時刻庫CLRComman Language Runtime)執行一個被(bèi)轉換爲IL的程序時,使用JITer編譯器將(jiāng)IL快速地編譯成(chéng)本地代碼。其中,CLR部分位于硬件之上,部分位于現有OS之上,爲組件與計算機或機器OS交換提供所有服務。

2CLR.NET的關系

                 C#C++VBJScript、滿足CLS的語言  

                           通用語言規範CLS             

                WebService             用戶接口     

                          數據和XML             

                             基礎類庫               

                      通用語言運行時刻庫CLR        

.NET應用系統的數據由XML封裝,通過(guò)HTTP協議傳輸,依照SOAP(Small Object Access Protocol)與其他WebService對(duì)話與溝通。

3.NET的核心組成(chéng)

.NET是一種(zhǒng)全新的平台,它將(jiāng)對(duì)現有的所有代碼産生影響。蓋茨說:“微軟所有的産品都(dōu)會被(bèi)涉及。我們的整個戰略是圍繞這(zhè)個平台展開(kāi)的。” ,其核心爲三部分:CLR、統一的編程類庫和一個被(bèi)稱爲ASP+的高級ASP版本:

1)通用語言運行庫CLR

實際上每一種(zhǒng)編程語言都(dōu)已包含一個運行庫:VBVBRunVC++MSVCRT。此外,像VFPPB等都(dōu)有運行庫。.NET提供了一個跨所有編程語言的統一環境,其基礎是通用語言規範CLS

2)統一編程類庫

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

3ASP+

ASP+提供了一個Web應用程序模型,該模型由一組控件和一個基本結構組成(chéng)。有了它,Web應用程序的構建變得非常容易。開(kāi)發(fā)人員可以直接使用ASP+控件集,該控件集封裝了公共的、用于超文本标識語言(HTML)用戶界面(miàn)的各種(zhǒng)組件(諸如文本框、下拉選單等等)。

4、解決的核心問題

l  互操作性(Interoperability)、集成(chéng)性(Integration)和應用程序的可擴展性(extensibility)太難實現而且代價很高。Microsoft .NET依靠XML(一個由World Wide Web Consortium(W3C)管理的開(kāi)放标準)消除了數據共享和軟件集成(chéng)的障礙;

l  Microsoft .NET建立在一個開(kāi)放的标準上,它包含了所有編程語言;

l  WebService模式  MS-DOS使得個人電腦上廣爲接受;Windows增強了用戶的圖形界面(miàn),使其成(chéng)爲首選的與軟件交互方式,最終使得圖形界面(miàn)成(chéng)爲個人電腦的主流。而.NET則要把XML Web服務變成(chéng)日後(hòu)的主流計算模式。

五、C#語言

對(duì)C/C++程序員來說,使用VBDelphiRAD工具,工作效率高,但犧牲了C/C++程序員熟悉的靈活性。對(duì)他們而言,最好(hǎo)的解決方案是:快速開(kāi)發(fā)RAD、滿足Web應用、保持底層編碼能(néng)力和C/C++的靈活性。這(zhè)就是C#的目标。該系統的主要研制者——Anders Hejlsberg,就是鼎鼎有名的Delphi的研制者之一。

1、定位 

l  微軟在.NET平台上的Java的語言;

l  Web Services應用系統的主要語言;

l  能(néng)使C++程序員快速開(kāi)發(fā)程序;

l  具有底層控制能(néng)力。

C#對(duì)于從高層商用軟件到系統級應用程序的多種(zhǒng)組件構造都(dōu)是合适的選擇,C#本來的意思就是C++++,如果熟悉了C++,那麼(me)學(xué)習C#要比學(xué)習Java要容易得多。

2、特點 

1)與C++比較  C/C++演變而來,但簡化與更新了C++中的類,降低了C++的複雜性,抛棄了C++的一些無用功能(néng)。具有垃圾回收功能(néng),使得程序員不需要對(duì)内存進(jìn)行手動管理;

2)管理機構  C#不是由微軟來管理,而是由ECMA(歐洲計算機制造聯合會)來管理,和JscriptCLS一樣(yàng)(ECMA是一個獨立的實體);

3、發(fā)展 

随著(zhe)Windows操作系統2000XP及未來的NET版本,C#將(jiāng)成(chéng)爲微軟公司基于WindowsWeb等主要開(kāi)發(fā)語言及工具。VS.NET中的C#爲第一個版本。

六、VB.NET

在可視化RAD開(kāi)發(fā)工具中,内核語言以BASIC的曆史最長(cháng),1955年随Fortran出現後(hòu)的第一個适合初學(xué)者的高級程序設計語言。它是一個解釋型弱數據類型語言,其True BASICQBASICTurbo BASIC等曾風行一時,目前仍然有人在使用DOS平台下的QBASIC1991年發(fā)布VB1.0後(hòu),随著(zhe)應用的發(fā)展,先後(hòu)衍生出了VBVBAVBScript等語言。

1、定位

l  C/C++易學(xué)好(hǎo)用的快速開(kāi)發(fā)工具,搶占由DelphiPBRAD占領的技術領域,

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

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

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

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

2、發(fā)展  1998VB6.0發(fā)布後(hòu),經(jīng)過(guò)4年,微軟發(fā)布了其升級版本VB.NET,該版本的結構調整較大,有了質的變化。該版本將(jiāng)統一VBVBAVBScript

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

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

七、結論

DelphiC++BuilderVisual C++VB等,能(néng)在市場上立足,肯定都(dōu)是有自己的過(guò)人之處的,而且一個人精通數種(zhǒng)開(kāi)發(fā)語言、數種(zhǒng)開(kāi)發(fā)工具是不可能(néng)的事(shì)情。對(duì)于計算機語言來說,未來真正重要的通用主流語言隻有三種(zhǒng)C++JavaC#

1、底層開(kāi)發(fā)與學(xué)習語言C++

C++將(jiāng)更适合于編寫圖形界面(miàn)系統GUI、虛拟機(比如Java虛拟機)、殺毒軟件或者其他的盒裝軟件(比如說PhotoshopDreamweaver)、底層設計與開(kāi)發(fā)應用。同時,C++适合做學(xué)習之用,爲進(jìn)一步學(xué)習掌握JavaC#打下基礎。

2Web應用語言C#Java

如果開(kāi)發(fā)爲客戶定制的應用系統,包括桌面(miàn)應用和Web應用,JavaC#是更好(hǎo)的選擇。

3、客戶端應用語言Delphi

如果虛拟機的執行效率趕不上Delphi,它就有存在的理由,從長(cháng)遠來看Delphi可能(néng)不那麼(me)樂觀。當前,在Windows客戶端,設計開(kāi)發(fā)應用系統VCL無疑最好(hǎo)的。

那麼(me)最終誰會赢呢?多赢的可能(néng)性大一些。有文分析,到2005年,企業級開(kāi)發(fā)平台的霸權之争將(jiāng)是一場“半斤對(duì)八兩(liǎng)的雙雄會”,Java.NET將(jiāng)各占領40%左右的市場。大多數大企業組織將(jiāng)同時采用這(zhè)二種(zhǒng)平台,它們已經(jīng)成(chéng)爲業界事(shì)實上的标準。如果數據庫DBMS一樣(yàng),最終語言將(jiāng)如何整合、發(fā)展,是否有新的設計語言或規範出來,將(jiāng)有市場來決定。

真正的程序員用VC++,聰明的程序員用Delphi,未來的程序員用JavaC#每當新的硬件設備、軟件開(kāi)發(fā)平台及開(kāi)發(fā)工具出現時(尤其在IT領域中),既給我們帶來了挑戰,更給我們帶來了機遇。抓住機遇、與時俱進(jìn)、迎接挑戰。

準備不充分、内容不全面(miàn)、講得不好(hǎo),請多多指教,謝謝。

掃碼加客服微信
确 認