1.引子
Pascal是目前我自己看到的最严谨的编程语言(没有之一),虽然不知道现在的大学入门编程课是什么,但是个人认为还是应该把它作为编程入门必须课,而不是先去学什么Java、Python、C,学习Pascal可以培养良好的编程习惯,学了pascal之后学习其他的编程语言能做到事半功倍。IOI(国际奥林匹克信息学竞赛)把Pascal语言作为三种程序设计语言之一, NOI(全国奥林匹克信息学竞赛)把Pascal语言定为唯一提倡的程序设计语言。
Pascal由瑞士苏黎世联邦工业大学的Niklaus Wirth教授于六十年代末设计并创立。Pascal基于ALGOL编程语言,为纪念法国数学家和哲学家的布莱兹·帕斯卡而命名。Pascal是最早出现的结构化编程语言,具有丰富的数据类型和简洁灵活的操作语句。高级语言发展过程中,Pascal是一个重要的里程碑。Pascal语言是第一个系统地体现了E.W.Dijkstra和C.A.R.Hoare定义的结构化程序设计概念的语言。
最初,Pascal在很大程度上但不是完全地为了教授学生结构化编程。很多代学生已使用Pascal作为本科课程的入门语言。Pascal的变种也逐渐地用于从研究项目到PC游戏(当年的《传奇》游戏就是Object Pascal写的)和嵌入式系统的所有领域。更新的Pascal编译器存在于广泛使用它的领域。
虽然当年在大二的时候学的pascal,当时也没当回事情,但是实际上pascal是我从业以来除了java外用的最多的编程语言,在C/S应用开发的时代,基本上作为主力编程语言来使用的。
2.Pascal主要特性
作为第一个结构化程序设计语言,其严谨程度堪称完美,非常方便地用于描述各种算法与数据结构。尤其是对于程序设计的初学者,Pascal语言有益于培养良好的程序设计风格和习惯。当年的《数据结构》课程里面的算法基本上采用类pascal语法进行描述,还来出的《数据结构》里面用类C语言描述算法虽然写法上简洁了,但是可读性上就差那么一点意思了。
Pascal语言的主要特性有:
- 结构化,Pascal可以方便地书写出结构化程序,保证了程序的正确性和易读性更好。
- 数据类型丰富,Pascal是一种强类型语言。它提供了整数型、实数型、字符型、布尔型、枚举型、子界型以及由以上类型构成的数组类型、集合类型、记录类型和文件类型。此外,还提供了其它许多语言中所没有的指针类型。丰富的数据结构和上述的结构化性质,使得Pascal可以被方便地用来描述复杂的算法。
- 适用性好,既适用于数值运算,也适用于非数值运算领域。有些语言只适用于数值计算,有些语言则适用于商业数据处理和管理领域。Pascal的功能较强,能广泛应用于各种领域。
- 书写较自由,得益于语句末的分号做分隔符,Pascal允许一行写多个语句,一个语句可以分写在多行上,这样就可以使Pascal程序写得象诗歌格式一样优美,便于阅读,但一行不可超过257个字符。
3.Pascal的发展
3.1 Object Pascal
Object Pascal指Pascal的面向对象的衍生分支,以Delphi的主要编程语言著称。在Pascal基本语法上增加了面向对象的属性,主要的开发工具有基于开源的Lazarus和商业的Delphi。
3.2 Borland、Anders Hejlsberg和李维
讲到Pascal,绕不开的话题就是Borland公司、Anders Hejlsberg以及当年Delphi盛行的时候在国内知名度比较高的李维。
Borland公司在当年PC开发工具时代简直就是一骑绝尘的存在,也是Pascal能够存在这么多年的主要贡献者,DOS时代Turbo系列开发工具、Windows时代的Delphi/C++Builder系列,基本上是开发人员手中最好用的工具。这里简单回顾一下Borland的历史:
- 1983.5.2 Philippe Kahn和Anders Hejlsberg在美国Scott Valley共同成立BorlandInternational公司。同年11月,发布Turbo Pascal,Borland一举成名。
- 1984 发布内存常驻工具软件SideKick,成功打入消费软件市场。
- 1985 发布Borland第一个,也是最后一个Basic开发工具产品:Turbo Basic。从ANSA公司购得Paradox。
- 1986 发布Turbo Prolog。
- 1987 发布Turbo C 1.0,提供C语言开发集成环境工具。Turbo Pascal 4.0也在这一年推出。
- 1989 在购入Ansa公司(1987年)后,推出Paradox 3.0。
- 1990 在Turbo C基础上推出C++开发工具Turbo C/C++。该产品也被称为Borland C/C++。
- 1991 购入Ashton-Tate公司,获得dBase。发布电子表格软件Quattro Pro。该软件生不逢时,在与MS Excel、Lotusl-2-3残酷竞争之后,最后败给Excel,被Novell收购。
- 1992 发布Borland C/C++3.0。这是第一个基于Windows的C++集成编程环境软件。在Borland C/C++3.1中加入了OWL作为核心。兼并Ashton-Tate公司,推出dBase 1.0。同时也取得真正的RDBMS--InterBase。
- 1993 匆匆推出旨在与Visual C++对抗的Borland C++4.0。该版本尽管有不少创新,但最终被证明是失败的。发布DOS版本的dBase-IV 2.0,并被证明是可靠的数据库产品。
- 1994 发布dBase for Windows 5.0。虽然承袭dbase名号,但其核心却是WordTech公司的Aragon for Windows。Borland在Comdex上了解到Aragon for Windows后,通过并购获取了这项技术。而真正的dBase只留下调试器于dBase 5.0中。在面临C/C++战场三面夹击的情况下,推出以OCF技术支持OLE的BorlandC++4.5。此役之后,Microsoft占据C/C++市场半壁江山,而Borland的市场占有率却滑落到30%,开始走下坡路。
- 1995 Philippe Kahn因经营不善辞去CEO一职,但继续留任董事会成员。CEO由Gary Wetsel接任。而Philippe Kahn则由于产品理念分歧的缘故,自己开办Starfish Software公司,致力发展SideKick等应用软件。后Starfish在无线通讯等领域颇有建树,并最终被Motorola以数千万美金的高价收购。同年情人节发布Delphi 1.0。该产品一炮而红,成为扭转Borland命运的转折点,也成为众多Delphi开发者的"初恋情人"。1995 发布品质最好的Paradox For Windows 7.0。一年后,Paradox被卖给Corel公司。同年11月,由于无法忍受Philippe Kahn对Borland的一再挖角,董事会决定将其逐出公司。
- 1996 发布以32位编译器为核心,并且大幅支持C/S编程的Delphi 2.0。发布IntraBuilder 1.0,是业界第一个数据库Web工具。但由于太过先进等原因,叫好不叫座。一年之后,Borland宣布放弃IntraBuilder开发。继Philippe Kahn之后,Anders Hejlsberg也离开了Borland。Delbert Yocam随即成为Borland CEO。购入中间件Entera技术,准备进军大型的基于UNIX平台的软件市场。
- 1997 发布Delphi 3.0。该版本较好地平衡了COM/DCOM支持和分布式多层架构,并成为全球热卖的产品。发布C++Builder 1.0。尽管Borland并没有作太多的市场推销活动,但该工具推出之后仍广受好评,被誉为"C++开发者天堂"。C++开发者终于可以和Delphi开发者一样,通过RAD的方式进行编程。Borland委托Dr. Niklaus Worth研究小组开发出效率优良的Java JIT编译器,随后发布Borland第一个Java工具:Open JBuilder 1.0,但市场反应不如预期。并购Visigenic Software公司,取得CORBA技术,并很快据此开发出visibroker。通过与Netscape的合作,成功地向大众展示该技术。发布dBase 7.0。产品虽好,奈何时势不再。
- 1998 宣布公司更名为Inprise,希望籍此表达Integrating the Enterprise的公司发展目标理念。改名行动以及"打造行销导向Borland"的计划最终都一败涂地。发布匆匆研发的Delphi 4.0,在市场遭到惨败。Delbert Yocam的好大喜功再次让Borland付出沉重代价。JBuilder 2.0发布,Borland的Java开发工具渐入佳境。
- 1999 在和Borland就"Brain Drain"事宜展开诉讼并发现局势不利之后,Microsoft提议庭外和解并投资Borland。Delbert Yocam被解雇,Dale Fuller任Borland CEO。发布Delphi 5,一扫Delphi 4带来的耻辱。JBuilder 3.0发布。一年后的JBuilder 3.5纯以Java打造而成,毕其功于一役,充分体现了Borland的实力。出售dBase予Ksoft(后更名为dBase Inc.)。
- 2000 发布JBuilder 4.0,是继JBuilder 3.5的乘胜追击之作。推出之后很快就成为市场的霸主。和Corel的并购案失败。
- 2001 发布JBuilder 5.0,大幅改变人们对JBuilder"不适用于团队开发"的印象。同年底发布的JBuilder 6.0,整合UML和Extreme Programming,更是支持EJB的最好开发工具。
- 2002 发布JBuilder 7.0,最终奠定在Java开发工具市场唯我独尊的地位。并购VMGEAF,公司,获取OptimizeIt,并将其整合到JBuilder产品线。同年10月,并购Starbase公司,准备提供软件应用平台。随即,对TogetherSoft的并购案,给业界带来极大震动。发布Delphi 7,被认为是Windows平台原生开发工具向.NET平台开发工具过渡的一代产品。
可以看到整个Borland一开始到辉煌离不开Anders Hejlsberg,一直到Anders Hejlsberg离开Borland走向微软,Borland也渐渐走下坡路,据说当年Anders Hejlsberg写的Delphi编译器在Borland公司没人敢改动,一直沿用到Delphi后续好几个版本,而Anders Hejlsberg去了微软之后再创辉煌,一开始做VisualJ++,性能太好的原因,导致微软公司背负许可官司,不得不放弃,后来直接创造出.NET
架构,可以说微软对天才型的技术人员创新的支持是全身心投入的,当年Anders Hejlsberg出走Borland就是因为在Borland公司认为自己不再是“不可缺少的人”,可以说是管理层和技术高手之间的矛盾导致的后果。
关于李维,最初是在听Borland以及技术沙龙录音的时候听到这个名字,听过他的演讲之后,发现很多Delphi的技术细节确实需要加强,于是关注了比较久,他写的基本Delphi的书质量确实比较高,相信很多当年Delphi开发的人手头上都有他的书,后来是成为Borland大中华区的CTO。
![]() Delphi5X
|
![]() Delphi5X
|
![]() Delphi6
|
![]() Delphi5X
|
---|
3.3 Delphi社区
当年Delphi国内最有名的社区当属大富翁论坛以及Delphi盒子,零星的就是CSDN上的分论坛。当年大富翁论坛上的高手有不少,而且很多都会贡献VCL组件和源代码,问问题也能及时得到反馈,后来随着Delphi的没落,论坛也渐渐没落了,现在很难找到这么纯粹的技术论坛了。
4.Pascal开发工具
Pascal因为Borland的兴起,也出现了很多开发工具,虽然在Delphi时代,基本上是Borland产品的天下。“真正的程序员用C++,聪明的程序员用Delphi”,是对Delphi最经典、最实在的描述。turbo pascal以及Delphi的编译器确实比其他的编译器稳定、快速(包括同时代的微软的产品)。典型的Pascal程序如下:
program demo(input,output);{程序首部}
const{常量说明}
pi=3.14159
var{变量说明}
l,r:real;
begin{程序开始}
readln(r);{输入半径}
l:=2*pi*r;{计圆周长}
writeln('l=',l);{输出圆周长}
end.{结束程序}
4.1 Turbo Pascal6.0
Turbo系列的IDE工具可以说是DOS时代最成功的集成开发工具,可以说是一直被模仿,但一直难以超越,微软系列的开发工具基本上是没法和这一系列的工具相比的。

4.2 Free Pascal
Free Pascal(全称 FPK Pascal)是一个32位和64位专业Pascal编译器。它可以在多个处理器架构中运行:Intel x86,AMD64/x86-64,PowerPC32/64, SPARC和 ARM。它支持的操作系统有Linux,FreeBSD,Haiku,Mac OS X/ iOS/Darwin,DOS,Windows32/64/CE,OS/2,MorphOS,Nintendo GBA,Nintendo DS和 Nintendo Wii。另外,在JVM,MIPS 和 Motorola 68k处理器架构或操作系统中使用的Free Pascal正在研发开发版本。可以说Free Pascal是继Turbo Pascal后比较纯粹的pascal编译器,那些算法网站上都能看到这个身影。

4.3 Delphi/Kylix
Delphi是Borland公司研发的可视化开发工具,可在Windows3.x、Windows95、WindowsNT、WindowsXP、WindowsVista、Windows7、Windows8、Windows8.1、Windows10等环境下使用。
Kylix是一款以Delphi为基础,针对Linux开发而设计的应用程序开发工具。Kylix当时被誉为是Linux下更好的RAD(快速应用程序开发)工具,因为它帮助开发者建立新的Linux应用程序更快和更容易。可惜在Kylix3.0后没有后续版本的跟进,不然跨平台桌面的开发也不是QT一统天下的情况了。
Delphi1还是在win3.x上运行的开发16位应用程序。
![]() delphi1
|
![]() delphi1就有BDE工具了
|
![]() delphi1
|
---|
Delphi2开始正式支持32位应用程序的开发,原来的几个版本分了桌面版和C/S版的,后续版本有分企业版之类的,最成熟的当属2、5、6版本,7版本作为原生版本的最后一个版本,至于8后面,包括后续按年号定义的版本,虽然功能强大了很多,但总感觉缺点什么,这个跟Anders Hejlsberg当年出走,碰到方向性问题不无关系。现在周边还是有不少同事拿Delphi7开发个小东西。
![]() delphi2
|
![]() QuickReport-最常用的报表工具
|
![]() delphi2
|
---|
![]() delphi3
|
![]() delphi3-功能强大的报表工具
|
---|
Borland改名Inprise,结果改名带来的产品也失败,Delphi4应该是比较失败的产品。
![]() delphi4-失败的产品
|
![]() Delphi4
|
---|
Delphi的5、6、7版本确实是比较经典的版本,6增加了Web开发的功能,并对WebService提供了支持,7的数据库访问控件dbexpress的稳定性得到了不少的提升。
![]() delphi5安装界面
|
![]() delphi6
|
![]() delphi7
|
---|
Delphi8记得弄了个for .NET版本,感觉弄的不伦不类的,后续的版本只限于装一下,尝试一下。
Kylix是Borland公司推出的GNU/Linux版的开发环境,相对于Windows下的Delphi以及C++ Builder。通过Kylix,程序员可以在GNU/Linux下使用Object Pascal、C++或者C语言,进行软件开发。在1999年9月28日Inprise/Borland声明要开发一个“支持C、C 和Delphi的高性能Linux应用程序开发环境时,Kylix正式启动,它是第一个基于Linux的高性能RAD工具。可惜出到3.0后再没有后续的发展计划了。

4.4 Lazarus
Lazarus可以说是基于Free Pascal的Delphi开源仿制品,跨平台上比Borland出的Kylix强一点,最新版本能运行于Linux,Win32和Mac OS,而且支持32位和64位的编译。整个界面的外观和操作和Delphi IDE一样,因此,如果你会使用Delphi的话,用起Lazarus IDE来就一定能得心应手了。特别是刚从windows转向linux或者mac平台上的桌面开发,不用太纠结xcode或者qt之类的,直接就用Lazarus上手能省不少时间。


5 结语
也许是当年使用比较多的原因,尽管目前pascal/delphi已经属于不太那么关注的开发工具,但是一旦有桌面的应用,第一时间可能还是会想到使用pascal/delphi/lazarus这类的工具,目前虽然在应用系统的GUI方面使用WEB技术大行其道,而且也不断有所谓的低代码/零代码的工具出现,但对比二十年前的这类技术总觉得差点那么意思,而且就编程语言来讲,虽然现代的编程语言省了不少程序员的一部分工作,但是就编程的逻辑性贺严谨性来讲个人认为pascal应该是程序员的必备入门课程,有了这个基础,任何编程语言都能快速掌握。