<返回列表

新聞分類

新聞中心

網(wǎng)站建設(shè)的程序設(shè)計語言及優(yōu)勢

網(wǎng)站建設(shè)的程序設(shè)計語言及優(yōu)勢

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

一、C++VC++

1970年, Ken Thompson開發(fā)出B語言,并以此做出了DEC公司PDP-7小型機上的Unix。1972年,Bell實驗室的Dennis RitchieBrian KernighanB的基礎(chǔ)上補充和完善,開發(fā)出了C語言。1987年發(fā)布了美國國家標準ANSI C87。該語言的最大貢獻就是,做出了劃時代的三個操作系統(tǒng)Unix、MS-DOSWindows。1980年,Bell實驗室的Bjarne StroustrupC進行改進和擴充,成了最初被命名為“帶類的C”——面向?qū)ο蟮?/span>C,1983年正式定名為C++1994年出現(xiàn)ANSI C++草稿。1991年微軟的VC++Visual Studio發(fā)布。

1、定位  C++VC++是當今域最主流的高級程序設(shè)計和面向?qū)ο蟮拈_發(fā)語言,其定位為

l  真正的面向?qū)ο蟮某绦蛟O(shè)計語言;

l  支持底層的復雜系統(tǒng)程序設(shè)計,而又不失C的效率;

l  支持大型應(yīng)用系統(tǒng)的開發(fā)。

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

2、發(fā)展  對系統(tǒng)級的程序員來說,C++的地位是不可替代的,C++還將繼續(xù)存在而且有旺盛的生命力。俗話說:“真正的程序員用C++”。國內(nèi)優(yōu)秀的C++程序員不多(沒有兩年以上的實際編程經(jīng)驗,成不了優(yōu)秀的VC++程序員),優(yōu)秀的企業(yè)級C++架構(gòu)設(shè)計師更是屈指可數(shù)。為了適應(yīng)微軟的.Net戰(zhàn)略,其最新版本為VC++ 7.0則改名為VC++.NET。

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

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

二、Java

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

1、定位  一種解決應(yīng)用領(lǐng)域問題的語言:

l  語法簡潔;

l  滿足Web應(yīng)用、分布式系統(tǒng)、開放性體系、平臺無關(guān)、安全的發(fā)展趨勢;

l  企業(yè)級的電子商務(wù)應(yīng)用;

l  嵌入式設(shè)備中的應(yīng)用。

嵌入式設(shè)備:具有微處理器、存儲器,為特定功能設(shè)計制作的設(shè)備。

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

1)與C++的不同點

l  語法簡單;

l  運行在虛擬環(huán)境之中(JVM);

l  沒有指針類型;

l  只有單繼承無多繼承。

相對于C++而言,Java的優(yōu)勢是開發(fā)周期短、代碼安全(因為沒有指針),以及平臺無關(guān)性等。然而對于底層開發(fā),Java還是不夠理想。另一方面,Java語言在PDA、手機、信息家電、IC卡等嵌入系統(tǒng)式中也有較好的應(yīng)用,這正是VC++VB語言需要補充和改進之處。

2)運行機制如下:

                 Java源文件            

                 Java編譯器            

                 字節(jié)碼文件            

    Java Aplet           Java應(yīng)用程序   

支持Java的瀏覽器執(zhí)行   Java解釋器執(zhí)行 

字節(jié)碼文件:與平臺無關(guān)的二進制碼文件,執(zhí)行時由解釋器解釋成本地機器碼,運行一行解釋一行。

Java提供了豐富的WFC類庫,提供了多線程標準、JDBC標準、GUI標準,而這些標準在C++中是不存在的。因為C++并不是直接面向解決應(yīng)用問題的用戶。

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

l  J2EEJava 2 Enterprise Edition,面向基于J2EEJava 2 Enterprise Edition)框架的大型電子商務(wù)平臺與應(yīng)用,EJB(Enterprise JavaBeans)等是其使用的主要技術(shù)。1999年,Sun公司推出一種動態(tài)網(wǎng)頁技術(shù)——JSPJava Script Page),該技術(shù)基于Java Servlet(Web服務(wù)器端運行的Java)Java體系。

JSPASP的主要區(qū)別:

?  腳本語言ASPJavaScriptVBScript為腳本,JSP則以Java為腳本;

?  數(shù)據(jù)庫接口ASP使用ODBC通過ADO連接數(shù)據(jù)庫,Java通過標準的JDBC連接數(shù)據(jù)庫。通過免費的JDBCODBC橋,Java可以轉(zhuǎn)化JDBC訪問為ODBC訪問。

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

l  J2MEJava 2 Micro Editioin,針對嵌入式設(shè)備、消費類電器的應(yīng)用。

作為一門正處于發(fā)展高峰期的程序設(shè)計語言,在可以預(yù)見的未來3年內(nèi),Java將進一步鞏固其在服務(wù)器端確立的戰(zhàn)略優(yōu)勢并同時向嵌入式系統(tǒng)等應(yīng)用中延伸,形成規(guī)?;?/span>Java應(yīng)用。

200212月,SUN公司又發(fā)布了最新的J2EE、J2ME面向移動終端規(guī)范。

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

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

三、Delphi

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

1、定位 

l  基于Windows APIs C++Java開發(fā)應(yīng)用系統(tǒng)的一個中間產(chǎn)物;

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

l  可視化程度比VBVC++好,但學習難度比VC++低;

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

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

2、發(fā)展  Delphi在未來一段時間將繼續(xù)存在。當前,Delphi仍然是首選的C/S應(yīng)用系統(tǒng)的開發(fā)工具、是數(shù)據(jù)庫應(yīng)用系統(tǒng)的開發(fā)工具。Delphi不僅在Windows客戶端具有RAD優(yōu)勢,還且增強了如下幾個方面的功能:

l  支持XML、SOAP等工業(yè)標準,提供可視化的快速Web開發(fā)環(huán)境;

l  內(nèi)建對Linux的跨平臺支持;

l  Windowx XP、.NET的支持與開發(fā)。

長遠來看Delphi將受到C#、Java等的挑戰(zhàn):C#WebService應(yīng)用開發(fā)、Java的運行效率。

KylixObject Pascal為基礎(chǔ)語言,開發(fā)Linux應(yīng)用程序的IDE。Delphi本質(zhì)上是基于Windows APIs,而Kylix則是基于OOP可視組件庫CLX(Component Library for CrossPlatform——一組基于QTLinux中的OOP DLL庫)。

3、應(yīng)用  著名的FoxmailWindows優(yōu)化大師、網(wǎng)絡(luò)伴侶等均是Delphi的杰作。我系參與開發(fā)的“省級公路運輸管理局的汽車維修管理系統(tǒng)”、“省級道路運輸行業(yè)駕駛員培訓管理系統(tǒng)”、“省級道路客運班線牌管理系統(tǒng)”、“基于WEB平臺的統(tǒng)計報表合并及處理系統(tǒng)”等也是使用Delphi編寫的。

4、開發(fā)工具  20016月,發(fā)布Delphi 6.0,20028月發(fā)布Delphi 7.0 Studio,增強了網(wǎng)絡(luò)方面的VCL,整合了Kylix 3,第一個中立開發(fā)公司發(fā)布的支持.NET技術(shù)平臺。有四個版本:Framework、Enterprise、ProfessionalPersonal,前三個版本含Kylix 3。

四、.NET

20006月,微軟正式宣布.NET構(gòu)架。當時的微軟中國研究院院長李開復博士被比爾·蓋茨委以重任,調(diào)往美國微軟,負責微軟歷史上最重要的一次變革:.NET戰(zhàn)略。微軟著名的利器——Visual Studio 61998年發(fā)布的。4年后的今天,發(fā)布了全新的基于.NET開發(fā)工具包——Visual Studio .NET,足見微軟的寶壓在.NET上了。

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

1、.NET程序設(shè)計語言框架

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

                   .NET中間語言編譯器            

C++        中間語言 ILIntermediate Language

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

EXE                可執(zhí)行文件            

現(xiàn)有OS      通用語言運行時刻庫 CLR      

機器硬件     現(xiàn)有操作系統(tǒng)  機器硬件        

.NET沒有象Java一樣使用JVM(虛擬機)技術(shù),運行于.NET上的軟件被完全編譯,并象C代碼一樣運行在機器硬件級。當.NET運行時刻庫CLRComman Language Runtime)執(zhí)行一個被轉(zhuǎn)換為IL的程序時,使用JITer編譯器將IL快速地編譯成本地代碼。其中,CLR部分位于硬件之上,部分位于現(xiàn)有OS之上,為組件與計算機或機器OS交換提供所有服務(wù)。

2、CLR.NET的關(guān)系

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

                           通用語言規(guī)范CLS             

                WebService             用戶接口     

                          數(shù)據(jù)和XML             

                             基礎(chǔ)類庫               

                      通用語言運行時刻庫CLR        

.NET應(yīng)用系統(tǒng)的數(shù)據(jù)由XML封裝,通過HTTP協(xié)議傳輸,依照SOAP(Small Object Access Protocol)與其他WebService對話與溝通。

3、.NET的核心組成

.NET是一種全新的平臺,它將對現(xiàn)有的所有代碼產(chǎn)生影響。蓋茨說:“微軟所有的產(chǎn)品都會被涉及。我們的整個戰(zhàn)略是圍繞這個平臺展開的。” ,其核心為三部分:CLR、統(tǒng)一的編程類庫和一個被稱為ASP+的高級ASP版本:

1)通用語言運行庫CLR

實際上每一種編程語言都已包含一個運行庫:VBVBRunVC++MSVCRT。此外,像VFP、PB等都有運行庫。.NET提供了一個跨所有編程語言的統(tǒng)一環(huán)境,其基礎(chǔ)是通用語言規(guī)范CLS

2)統(tǒng)一編程類庫

C++使用MFC,Java使用WindowsFC,VB使用VB APIs,Delphi 使用VCL。.NET框架類為開發(fā)人員提供了一套可以使用的統(tǒng)一的面向?qū)ο?、異步、層次結(jié)構(gòu)的可擴展類庫。從JScript C++的所有編程語言,對于.NET框架都是相互等同的,開發(fā)人員可以自由地選擇他們想使用的任何語言。

3ASP+

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

4、解決的核心問題

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

l  Microsoft .NET建立在一個開放的標準上,它包含了所有編程語言;

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

五、C#語言

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

1、定位 

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

l  Web Services應(yīng)用系統(tǒng)的主要語言;

l  能使C++程序員快速開發(fā)程序;

l  具有底層控制能力。

C#對于從高層商用軟件到系統(tǒng)級應(yīng)用程序的多種組件構(gòu)造都是合適的選擇,C#本來的意思就是C++++,如果熟悉了C++,那么學習C#要比學習Java要容易得多。

2、特點 

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

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

3、發(fā)展 

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

六、VB.NET

在可視化RAD開發(fā)工具中,內(nèi)核語言以BASIC的歷史最長,1955年隨Fortran出現(xiàn)后的第一個適合初學者的高級程序設(shè)計語言。它是一個解釋型弱數(shù)據(jù)類型語言,其True BASIC、QBASIC、Turbo BASIC等曾風行一時,目前仍然有人在使用DOS平臺下的QBASIC。1991年發(fā)布VB1.0后,隨著應(yīng)用的發(fā)展,先后衍生出了VBVBA、VBScript等語言。

1、定位

l  C/C++易學好用的快速開發(fā)工具,搶占由Delphi、PBRAD占領(lǐng)的技術(shù)領(lǐng)域,

l  擴展到Back Office、Web等應(yīng)用領(lǐng)域。

l  創(chuàng)建Windows客戶端的應(yīng)用程序;

l  創(chuàng)建XML Web服務(wù)應(yīng)用程序。

從技術(shù)角度而言,VB不能算是一個純粹面向?qū)ο蟮某绦蛟O(shè)計語言,這方面它大大落后于Borland Delphi、Object Pascal PascalDelphi版本)。由于衍自Microsoft的皇家血統(tǒng),所以VBVBA、VBScript在應(yīng)用系統(tǒng)、Web網(wǎng)絡(luò)方面獲得了可靠的持續(xù)性發(fā)展能力,但與Delphi相比,其并不具備技術(shù)上的競爭優(yōu)勢。

2、發(fā)展  1998VB6.0發(fā)布后,經(jīng)過4年,微軟發(fā)布了其升級版本VB.NET,該版本的結(jié)構(gòu)調(diào)整較大,有了質(zhì)的變化。該版本將統(tǒng)一VB、VBAVBScript。

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

4、開發(fā)工具  VB.6,1998年隨Visual Studio一同發(fā)布。最新的VB7.0,20022月,則改稱為VB.NET

七、結(jié)論

Delphi、C++BuilderVisual C++、VB等,能在市場上立足,肯定都是有自己的過人之處的,而且一個人精通數(shù)種開發(fā)語言、數(shù)種開發(fā)工具是不可能的事情。對于計算機語言來說,未來真正重要的通用主流語言只有三種C++、JavaC#。

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

C++將更適合于編寫圖形界面系統(tǒng)GUI、虛擬機(比如Java虛擬機)、殺毒軟件或者其他的盒裝軟件(比如說Photoshop、Dreamweaver)、底層設(shè)計與開發(fā)應(yīng)用。同時,C++適合做學習之用,為進一步學習掌握Java、C#打下基礎(chǔ)。

2、Web應(yīng)用語言C#Java

如果開發(fā)為客戶定制的應(yīng)用系統(tǒng),包括桌面應(yīng)用和Web應(yīng)用,Java、C#是更好的選擇。

3、客戶端應(yīng)用語言Delphi

如果虛擬機的執(zhí)行效率趕不上Delphi,它就有存在的理由,從長遠來看Delphi可能不那么樂觀。當前,在Windows客戶端,設(shè)計開發(fā)應(yīng)用系統(tǒng)VCL無疑最好的。

那么最終誰會贏呢?多贏的可能性大一些。有文分析,到2005年,企業(yè)級開發(fā)平臺的霸權(quán)之爭將是一場“半斤對八兩的雙雄會”,Java.NET將各占領(lǐng)40%左右的市場。大多數(shù)大企業(yè)組織將同時采用這二種平臺,它們已經(jīng)成為業(yè)界事實上的標準。如果數(shù)據(jù)庫DBMS一樣,最終語言將如何整合、發(fā)展,是否有新的設(shè)計語言或規(guī)范出來,將有市場來決定。

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

準備不充分、內(nèi)容不全面、講得不好,請多多指教,謝謝。

掃碼加客服微信
確 認