1.引子
Pascal是目前我自己看到的最嚴謹?shù)木幊陶Z言(沒有之一),雖然不知道現(xiàn)在的大學(xué)入門編程課是什么,但是個人認為還是應(yīng)該把它作為編程入門必須課,而不是先去學(xué)什么Java、Python、C,學(xué)習(xí)Pascal可以培養(yǎng)良好的編程習(xí)慣,學(xué)了pascal之后學(xué)習(xí)其他的編程語言能做到事半功倍。IOI(國際奧林匹克信息學(xué)競賽)把Pascal語言作為三種程序設(shè)計語言之一, NOI(全國奧林匹克信息學(xué)競賽)把Pascal語言定為唯一提倡的程序設(shè)計語言。
Pascal由瑞士蘇黎世聯(lián)邦工業(yè)大學(xué)的Niklaus Wirth教授于六十年代末設(shè)計并創(chuàng)立。Pascal基于ALGOL編程語言,為紀念法國數(shù)學(xué)家和哲學(xué)家的布萊茲·帕斯卡而命名。Pascal是最早出現(xiàn)的結(jié)構(gòu)化編程語言,具有豐富的數(shù)據(jù)類型和簡潔靈活的操作語句。高級語言發(fā)展過程中,Pascal是一個重要的里程碑。Pascal語言是第一個系統(tǒng)地體現(xiàn)了E.W.Dijkstra和C.A.R.Hoare定義的結(jié)構(gòu)化程序設(shè)計概念的語言。
最初,Pascal在很大程度上但不是完全地為了教授學(xué)生結(jié)構(gòu)化編程。很多代學(xué)生已使用Pascal作為本科課程的入門語言。Pascal的變種也逐漸地用于從研究項目到PC游戲(當(dāng)年的《傳奇》游戲就是Object Pascal寫的)和嵌入式系統(tǒng)的所有領(lǐng)域。更新的Pascal編譯器存在于廣泛使用它的領(lǐng)域。
雖然當(dāng)年在大二的時候?qū)W的pascal,當(dāng)時也沒當(dāng)回事情,但是實際上pascal是我從業(yè)以來除了java外用的最多的編程語言,在C/S應(yīng)用開發(fā)的時代,基本上作為主力編程語言來使用的。
2.Pascal主要特性
作為第一個結(jié)構(gòu)化程序設(shè)計語言,其嚴謹程度堪稱完美,非常方便地用于描述各種算法與數(shù)據(jù)結(jié)構(gòu)。尤其是對于程序設(shè)計的初學(xué)者,Pascal語言有益于培養(yǎng)良好的程序設(shè)計風(fēng)格和習(xí)慣。當(dāng)年的《數(shù)據(jù)結(jié)構(gòu)》課程里面的算法基本上采用類pascal語法進行描述,還來出的《數(shù)據(jù)結(jié)構(gòu)》里面用類C語言描述算法雖然寫法上簡潔了,但是可讀性上就差那么一點意思了。
Pascal語言的主要特性有:
- 結(jié)構(gòu)化,Pascal可以方便地書寫出結(jié)構(gòu)化程序,保證了程序的正確性和易讀性更好。
- 數(shù)據(jù)類型豐富,Pascal是一種強類型語言。它提供了整數(shù)型、實數(shù)型、字符型、布爾型、枚舉型、子界型以及由以上類型構(gòu)成的數(shù)組類型、集合類型、記錄類型和文件類型。此外,還提供了其它許多語言中所沒有的指針類型。豐富的數(shù)據(jù)結(jié)構(gòu)和上述的結(jié)構(gòu)化性質(zhì),使得Pascal可以被方便地用來描述復(fù)雜的算法。
- 適用性好,既適用于數(shù)值運算,也適用于非數(shù)值運算領(lǐng)域。有些語言只適用于數(shù)值計算,有些語言則適用于商業(yè)數(shù)據(jù)處理和管理領(lǐng)域。Pascal的功能較強,能廣泛應(yīng)用于各種領(lǐng)域。
- 書寫較自由,得益于語句末的分號做分隔符,Pascal允許一行寫多個語句,一個語句可以分寫在多行上,這樣就可以使Pascal程序?qū)懙孟笤姼韪袷揭粯觾?yōu)美,便于閱讀,但一行不可超過257個字符。
3.Pascal的發(fā)展
3.1 Object Pascal
Object Pascal指Pascal的面向?qū)ο蟮难苌种В訢elphi的主要編程語言著稱。在Pascal基本語法上增加了面向?qū)ο蟮膶傩?,主要的開發(fā)工具有基于開源的Lazarus和商業(yè)的Delphi。
3.2 Borland、Anders Hejlsberg和李維
講到Pascal,繞不開的話題就是Borland公司、Anders Hejlsberg以及當(dāng)年Delphi盛行的時候在國內(nèi)知名度比較高的李維。
Borland公司在當(dāng)年P(guān)C開發(fā)工具時代簡直就是一騎絕塵的存在,也是Pascal能夠存在這么多年的主要貢獻者,DOS時代Turbo系列開發(fā)工具、Windows時代的Delphi/C++Builder系列,基本上是開發(fā)人員手中最好用的工具。這里簡單回顧一下Borland的歷史:
- 1983.5.2 Philippe Kahn和Anders Hejlsberg在美國Scott Valley共同成立BorlandInternational公司。同年11月,發(fā)布Turbo Pascal,Borland一舉成名。
- 1984 發(fā)布內(nèi)存常駐工具軟件SideKick,成功打入消費軟件市場。
- 1985 發(fā)布Borland第一個,也是最后一個Basic開發(fā)工具產(chǎn)品:Turbo Basic。從ANSA公司購得Paradox。
- 1986 發(fā)布Turbo Prolog。
- 1987 發(fā)布Turbo C 1.0,提供C語言開發(fā)集成環(huán)境工具。Turbo Pascal 4.0也在這一年推出。
- 1989 在購入Ansa公司(1987年)后,推出Paradox 3.0。
- 1990 在Turbo C基礎(chǔ)上推出C++開發(fā)工具Turbo C/C++。該產(chǎn)品也被稱為Borland C/C++。
- 1991 購入Ashton-Tate公司,獲得dBase。發(fā)布電子表格軟件Quattro Pro。該軟件生不逢時,在與MS Excel、Lotusl-2-3殘酷競爭之后,最后敗給Excel,被Novell收購。
- 1992 發(fā)布Borland C/C++3.0。這是第一個基于Windows的C++集成編程環(huán)境軟件。在Borland C/C++3.1中加入了OWL作為核心。兼并Ashton-Tate公司,推出dBase 1.0。同時也取得真正的RDBMS--InterBase。
- 1993 匆匆推出旨在與Visual C++對抗的Borland C++4.0。該版本盡管有不少創(chuàng)新,但最終被證明是失敗的。發(fā)布DOS版本的dBase-IV 2.0,并被證明是可靠的數(shù)據(jù)庫產(chǎn)品。
- 1994 發(fā)布dBase for Windows 5.0。雖然承襲dbase名號,但其核心卻是WordTech公司的Aragon for Windows。Borland在Comdex上了解到Aragon for Windows后,通過并購獲取了這項技術(shù)。而真正的dBase只留下調(diào)試器于dBase 5.0中。在面臨C/C++戰(zhàn)場三面夾擊的情況下,推出以O(shè)CF技術(shù)支持OLE的BorlandC++4.5。此役之后,Microsoft占據(jù)C/C++市場半壁江山,而Borland的市場占有率卻滑落到30%,開始走下坡路。
- 1995 Philippe Kahn因經(jīng)營不善辭去CEO一職,但繼續(xù)留任董事會成員。CEO由Gary Wetsel接任。而Philippe Kahn則由于產(chǎn)品理念分歧的緣故,自己開辦Starfish Software公司,致力發(fā)展SideKick等應(yīng)用軟件。后Starfish在無線通訊等領(lǐng)域頗有建樹,并最終被Motorola以數(shù)千萬美金的高價收購。同年情人節(jié)發(fā)布Delphi 1.0。該產(chǎn)品一炮而紅,成為扭轉(zhuǎn)Borland命運的轉(zhuǎn)折點,也成為眾多Delphi開發(fā)者的"初戀情人"。1995 發(fā)布品質(zhì)最好的Paradox For Windows 7.0。一年后,Paradox被賣給Corel公司。同年11月,由于無法忍受Philippe Kahn對Borland的一再挖角,董事會決定將其逐出公司。
- 1996 發(fā)布以32位編譯器為核心,并且大幅支持C/S編程的Delphi 2.0。發(fā)布IntraBuilder 1.0,是業(yè)界第一個數(shù)據(jù)庫Web工具。但由于太過先進等原因,叫好不叫座。一年之后,Borland宣布放棄IntraBuilder開發(fā)。繼Philippe Kahn之后,Anders Hejlsberg也離開了Borland。Delbert Yocam隨即成為Borland CEO。購入中間件Entera技術(shù),準備進軍大型的基于UNIX平臺的軟件市場。
- 1997 發(fā)布Delphi 3.0。該版本較好地平衡了COM/DCOM支持和分布式多層架構(gòu),并成為全球熱賣的產(chǎn)品。發(fā)布C++Builder 1.0。盡管Borland并沒有作太多的市場推銷活動,但該工具推出之后仍廣受好評,被譽為"C++開發(fā)者天堂"。C++開發(fā)者終于可以和Delphi開發(fā)者一樣,通過RAD的方式進行編程。Borland委托Dr. Niklaus Worth研究小組開發(fā)出效率優(yōu)良的Java JIT編譯器,隨后發(fā)布Borland第一個Java工具:Open JBuilder 1.0,但市場反應(yīng)不如預(yù)期。并購Visigenic Software公司,取得CORBA技術(shù),并很快據(jù)此開發(fā)出visibroker。通過與Netscape的合作,成功地向大眾展示該技術(shù)。發(fā)布dBase 7.0。產(chǎn)品雖好,奈何時勢不再。
- 1998 宣布公司更名為Inprise,希望籍此表達Integrating the Enterprise的公司發(fā)展目標理念。改名行動以及"打造行銷導(dǎo)向Borland"的計劃最終都一敗涂地。發(fā)布匆匆研發(fā)的Delphi 4.0,在市場遭到慘敗。Delbert Yocam的好大喜功再次讓Borland付出沉重代價。JBuilder 2.0發(fā)布,Borland的Java開發(fā)工具漸入佳境。
- 1999 在和Borland就"Brain Drain"事宜展開訴訟并發(fā)現(xiàn)局勢不利之后,Microsoft提議庭外和解并投資Borland。Delbert Yocam被解雇,Dale Fuller任Borland CEO。發(fā)布Delphi 5,一掃Delphi 4帶來的恥辱。JBuilder 3.0發(fā)布。一年后的JBuilder 3.5純以Java打造而成,畢其功于一役,充分體現(xiàn)了Borland的實力。出售dBase予Ksoft(后更名為dBase Inc.)。
- 2000 發(fā)布JBuilder 4.0,是繼JBuilder 3.5的乘勝追擊之作。推出之后很快就成為市場的霸主。和Corel的并購案失敗。
- 2001 發(fā)布JBuilder 5.0,大幅改變?nèi)藗儗Builder"不適用于團隊開發(fā)"的印象。同年底發(fā)布的JBuilder 6.0,整合UML和Extreme Programming,更是支持EJB的最好開發(fā)工具。
- 2002 發(fā)布JBuilder 7.0,最終奠定在Java開發(fā)工具市場唯我獨尊的地位。并購VMGEAF,公司,獲取OptimizeIt,并將其整合到JBuilder產(chǎn)品線。同年10月,并購Starbase公司,準備提供軟件應(yīng)用平臺。隨即,對TogetherSoft的并購案,給業(yè)界帶來極大震動。發(fā)布Delphi 7,被認為是Windows平臺原生開發(fā)工具向.NET平臺開發(fā)工具過渡的一代產(chǎn)品。
可以看到整個Borland一開始到輝煌離不開Anders Hejlsberg,一直到Anders Hejlsberg離開Borland走向微軟,Borland也漸漸走下坡路,據(jù)說當(dāng)年Anders Hejlsberg寫的Delphi編譯器在Borland公司沒人敢改動,一直沿用到Delphi后續(xù)好幾個版本,而Anders Hejlsberg去了微軟之后再創(chuàng)輝煌,一開始做VisualJ++,性能太好的原因,導(dǎo)致微軟公司背負許可官司,不得不放棄,后來直接創(chuàng)造出.NET
架構(gòu),可以說微軟對天才型的技術(shù)人員創(chuàng)新的支持是全身心投入的,當(dāng)年Anders Hejlsberg出走Borland就是因為在Borland公司認為自己不再是“不可缺少的人”,可以說是管理層和技術(shù)高手之間的矛盾導(dǎo)致的后果。
關(guān)于李維,最初是在聽Borland以及技術(shù)沙龍錄音的時候聽到這個名字,聽過他的演講之后,發(fā)現(xiàn)很多Delphi的技術(shù)細節(jié)確實需要加強,于是關(guān)注了比較久,他寫的基本Delphi的書質(zhì)量確實比較高,相信很多當(dāng)年Delphi開發(fā)的人手頭上都有他的書,后來是成為Borland大中華區(qū)的CTO。
![]() Delphi5X
|
![]() Delphi5X
|
![]() Delphi6
|
![]() Delphi5X
|
|---|
3.3 Delphi社區(qū)
當(dāng)年Delphi國內(nèi)最有名的社區(qū)當(dāng)屬大富翁論壇以及Delphi盒子,零星的就是CSDN上的分論壇。當(dāng)年大富翁論壇上的高手有不少,而且很多都會貢獻VCL組件和源代碼,問問題也能及時得到反饋,后來隨著Delphi的沒落,論壇也漸漸沒落了,現(xiàn)在很難找到這么純粹的技術(shù)論壇了。
4.Pascal開發(fā)工具
Pascal因為Borland的興起,也出現(xiàn)了很多開發(fā)工具,雖然在Delphi時代,基本上是Borland產(chǎn)品的天下。“真正的程序員用C++,聰明的程序員用Delphi”,是對Delphi最經(jīng)典、最實在的描述。turbo pascal以及Delphi的編譯器確實比其他的編譯器穩(wěn)定、快速(包括同時代的微軟的產(chǎn)品)。典型的Pascal程序如下:
program demo(input,output);{程序首部}
const{常量說明}
pi=3.14159
var{變量說明}
l,r:real;
begin{程序開始}
readln(r);{輸入半徑}
l:=2*pi*r;{計圓周長}
writeln('l=',l);{輸出圓周長}
end.{結(jié)束程序}
4.1 Turbo Pascal6.0
Turbo系列的IDE工具可以說是DOS時代最成功的集成開發(fā)工具,可以說是一直被模仿,但一直難以超越,微軟系列的開發(fā)工具基本上是沒法和這一系列的工具相比的。

4.2 Free Pascal
Free Pascal(全稱 FPK Pascal)是一個32位和64位專業(yè)Pascal編譯器。它可以在多個處理器架構(gòu)中運行:Intel x86,AMD64/x86-64,PowerPC32/64, SPARC和 ARM。它支持的操作系統(tǒng)有Linux,F(xiàn)reeBSD,Haiku,Mac OS X/ iOS/Darwin,DOS,Windows32/64/CE,OS/2,MorphOS,Nintendo GBA,Nintendo DS和 Nintendo Wii。另外,在JVM,MIPS 和 Motorola 68k處理器架構(gòu)或操作系統(tǒng)中使用的Free Pascal正在研發(fā)開發(fā)版本??梢哉fFree Pascal是繼Turbo Pascal后比較純粹的pascal編譯器,那些算法網(wǎng)站上都能看到這個身影。

4.3 Delphi/Kylix
Delphi是Borland公司研發(fā)的可視化開發(fā)工具,可在Windows3.x、Windows95、WindowsNT、WindowsXP、WindowsVista、Windows7、Windows8、Windows8.1、Windows10等環(huán)境下使用。
Kylix是一款以Delphi為基礎(chǔ),針對Linux開發(fā)而設(shè)計的應(yīng)用程序開發(fā)工具。Kylix當(dāng)時被譽為是Linux下更好的RAD(快速應(yīng)用程序開發(fā))工具,因為它幫助開發(fā)者建立新的Linux應(yīng)用程序更快和更容易??上г贙ylix3.0后沒有后續(xù)版本的跟進,不然跨平臺桌面的開發(fā)也不是QT一統(tǒng)天下的情況了。
Delphi1還是在win3.x上運行的開發(fā)16位應(yīng)用程序。
![]() delphi1
|
![]() delphi1就有BDE工具了
|
![]() delphi1
|
|---|
Delphi2開始正式支持32位應(yīng)用程序的開發(fā),原來的幾個版本分了桌面版和C/S版的,后續(xù)版本有分企業(yè)版之類的,最成熟的當(dāng)屬2、5、6版本,7版本作為原生版本的最后一個版本,至于8后面,包括后續(xù)按年號定義的版本,雖然功能強大了很多,但總感覺缺點什么,這個跟Anders Hejlsberg當(dāng)年出走,碰到方向性問題不無關(guān)系?,F(xiàn)在周邊還是有不少同事拿Delphi7開發(fā)個小東西。
![]() delphi2
|
![]() QuickReport-最常用的報表工具
|
![]() delphi2
|
|---|
![]() delphi3
|
![]() delphi3-功能強大的報表工具
|
|---|
Borland改名Inprise,結(jié)果改名帶來的產(chǎn)品也失敗,Delphi4應(yīng)該是比較失敗的產(chǎn)品。
![]() delphi4-失敗的產(chǎn)品
|
![]() Delphi4
|
|---|
Delphi的5、6、7版本確實是比較經(jīng)典的版本,6增加了Web開發(fā)的功能,并對WebService提供了支持,7的數(shù)據(jù)庫訪問控件dbexpress的穩(wěn)定性得到了不少的提升。
![]() delphi5安裝界面
|
![]() delphi6
|
![]() delphi7
|
|---|
Delphi8記得弄了個for .NET版本,感覺弄的不倫不類的,后續(xù)的版本只限于裝一下,嘗試一下。
Kylix是Borland公司推出的GNU/Linux版的開發(fā)環(huán)境,相對于Windows下的Delphi以及C++ Builder。通過Kylix,程序員可以在GNU/Linux下使用Object Pascal、C++或者C語言,進行軟件開發(fā)。在1999年9月28日Inprise/Borland聲明要開發(fā)一個“支持C、C 和Delphi的高性能Linux應(yīng)用程序開發(fā)環(huán)境時,Kylix正式啟動,它是第一個基于Linux的高性能RAD工具??上С龅?.0后再沒有后續(xù)的發(fā)展計劃了。

4.4 Lazarus
Lazarus可以說是基于Free Pascal的Delphi開源仿制品,跨平臺上比Borland出的Kylix強一點,最新版本能運行于Linux,Win32和Mac OS,而且支持32位和64位的編譯。整個界面的外觀和操作和Delphi IDE一樣,因此,如果你會使用Delphi的話,用起Lazarus IDE來就一定能得心應(yīng)手了。特別是剛從windows轉(zhuǎn)向linux或者mac平臺上的桌面開發(fā),不用太糾結(jié)xcode或者qt之類的,直接就用Lazarus上手能省不少時間。


5 結(jié)語
也許是當(dāng)年使用比較多的原因,盡管目前pascal/delphi已經(jīng)屬于不太那么關(guān)注的開發(fā)工具,但是一旦有桌面的應(yīng)用,第一時間可能還是會想到使用pascal/delphi/lazarus這類的工具,目前雖然在應(yīng)用系統(tǒng)的GUI方面使用WEB技術(shù)大行其道,而且也不斷有所謂的低代碼/零代碼的工具出現(xiàn),但對比二十年前的這類技術(shù)總覺得差點那么意思,而且就編程語言來講,雖然現(xiàn)代的編程語言省了不少程序員的一部分工作,但是就編程的邏輯性賀嚴謹性來講個人認為pascal應(yīng)該是程序員的必備入門課程,有了這個基礎(chǔ),任何編程語言都能快速掌握。
















