今天编程用什么?

Author: 朱青 Date: 1997-01-01

#3  为一个电脑使用者,我们每个人都多少学过一些编程语言,不论是最早的BASIC、汇编还是后来的Foxbase、C…。编程语言是电脑程序员亲密的朋友,他们为能写出各种实用精彩的程序感到自豪。电脑技术发展到今天,各种编程语言层出不穷,有时让人感到难以取舍,甚至追赶不及。那么今天编程用什么呢?
  编程语言虽然为数众多,但每种语言总是针对某方面具体应用的。例如FoxPro、Oracle主要针对数据库管理;Java、JavaScript、HTML主要在网络上应用;Fortran适合科学计算;Prolog则用于逻辑编程等。此外,C、C++、Pascal、BASIC等语言适合于编写各种软件,是比较通用的语言。下面我们看看几种目前流行的编程语言。
#1  BASIC语言
  BASIC是“初学者通用符号指令代码”的缩写。它是一种简单易学、适合初学者使用的编程语言。传统的观念认为BASIC的功能较弱,难以编写大型软件。其实这是一种误解。从BASIC开始又相继推出了QBASIC、Quick BASIC、True BASIC等,目前最新的是Microsoft公司推出的Visual BASIC。这是一种功能极强的语言,Visual是“可视”的意思,Visual BASIC就是“可视的BASIC”。
  什么是可视化呢?一个成功的软件必须要有美观的界面和舒适方便的操作,而这往往要耗费编程人员许多精力,而应用这种技术,设计程序的时候就可以直观地看到程序运行时候的人机界面,免去了反复改写运行程序的重复工作。同时,可视编程技术还使你几乎不用编写一行代码就可创建良好的人机界面。
  举例来说,在Visual BASIC中,要设计一个菜单只需启动菜单设计窗口,依据提示输入主菜单和子菜单的名称和对应的快捷按键即可。运行程序,一个和你设计时完全一样的菜单就出现在你的面前。这也就是我们所说“所见即所得”,而这一切都是可视的和无需编程的。
  Visual BASIC的另一特性是使用了事件驱动的编程技术。所谓事件是指在程序运行的过程中产生的信息和需要处理的用户输入,例如用户按下按键、移动鼠标等。使用传统的编程语言,程序的执行顺序和程序代码的顺序是完全一样的。这样在开发现在的菜单驱动、面向窗口的应用程序时就显得力不从心了。因为在程序运行的时候,各种事件的出现是随机的,如果使用传统的编程语言来处理这些复杂的事件,编程者就必须额外地编写大量的代码来完成程序的事件处理,这必将大大地增加编程者的工作量。
  针对这种情况,Visual BASIC自动地为每一个程序附加一个完整的事件处理的代码框架,其中包含了程序中需要处理的所有事件。你只需在框架中编写对应事件的处理代码。
  Visual BASIC同时是一种准面向对象的编程语言。所谓“对象”就是一个或一组数据以及处理这些数据的方法和过程的集合。面向对象的程序设计技术的主要特点是封装性、继承性和多态性。封装性是指把数据和处理这些数据的方法和过程集中到一个相对封闭的集合中,这个集合就成为对象。由于在大型程序中,往往有上千个的数据以及处理过程,这些数据和过程如果没有很好的独立性,就会相互干扰,使程序成为一碗难以理清头绪的“面条”。传统的编程语言使用模块技术把大的程序分成一个个较小的模块。但是这样的模块并不能使数据和过程完全封闭在一个集合中。而面向对象的编程技术使数据及其处理过程彻底地封闭和独立起来,这样一方面使程序结构清晰,模块分明;另一方面使每一个对象成为一个独立和封闭的集合,就像一块块积木一样,可以简单地在其他的程序中使用。
  继承性是指程序可以在已有对象的基础上发展出新的、功能更强的新对象的能力。使用继承,即可以保留原来对象的功能,又可以针对具体的问题对对象的功能加以改进和提高,增强了程序的重用性。
  多态性是指对同一个过程可以在不同的地方、不同的对象等级中使用不同的代码来实现。例如把两个时间加在一起和把两个字符串加在一起的代码肯定是不一样的,但是两个过程我们都可取名为“加”,因为在生活中,我们都是用“加”来表达这两个过程的。在Visual BASIC中,由于不能支持继承性和多态性,因此,Visual BASIC只能算是一种准面向对象的编程语言。
  Visual BASIC的威力还来自于大量的VBX。我们称它为“控件”。这是一种针对Visual BASIC的已经编写好的程序,它们在Visual BASIC中以各种可视的控制对象形式出现,例如按钮、文字编辑框等等,用户根据自己的需要可直接使用,使编程就像使用积木搭建房屋一样简单。
  在Windows中使用Visual BASIC来开发程序,还有一个非常有用的功能是OLE功能。OLE的含义就是对象的链接和嵌入。这里的对象不是面向对象编程中的对象,而是指其它的程序。使用OLE功能可以简单地在程序中使用已有的其它程序完成各种复杂的工作,而无需再编程。例如,在程序中需要绘制一些复杂的统计图表,这时你只需在程序中嵌入Word的MS Graph来进行图表的处理就完成功能。由于Windows下所有程序的使用方法和用户界面都是统一的,所以使用OLE功能可以无缝地链接各种已有的程序,有效地利用现有的各种软件资源。
  Visual BASIC的功能是如此的强大,但是学习起来却是非常容易的。如果你对电脑编程没有任何的经验,那么VB是一个很好的选择。
#1  C/C++语言
  虽然Visual BASIC是一种易学好用,功能强大的编程语言,但是它还是有诸如运行速度慢、功能拓展性不强等许多的缺点。因此,要想在Windows中编写专业软件的程序员还是必须在C/C++语言上进行程序设计。
  C语言被人们称为是近十年来对计算机程序设计最大的贡献之一。它兼有高级语言简单易用的特性,又可以完成汇编语言才能作的许多工作。因此,C语言特别适合用来编写各种软件。如果说BASIC语言是初学者和业余爱好者的编程语言的话,那么C语言就是专业人员的编程语言了。
  提到了C语言,就自然会想到C++语言。++是C语言的一种运算符,表示加1的意思。由此可看,C++语言是基于C语言,而又在C语言的基础上有所发展。C++对C最大的改进就是具有了面向对象的编程能力。在C++引入了一种新的数据类型——类。C++使用类完整地实现了面向对象编程的三大特性:封装性、继承性和多态性。
  如果你准备学习使用C/C++语言编写专业的Windows程序,使用Microsoft公司推出的Visual  C/C++是一种很自然的选择。它提供了Visual Workbench、AppWizard、ClassWizard、App studio等一系列强大的功能帮助用户直观、可视地设计程序的用户界面、可以方便地编写和管理各种类的等级,维护你的程序源代码。其设计目标就是让用户简单而容易地使用C/C++语言编写程序。
  Visual C/C++对编程人员的要求相当高。它首先要求编程者具有丰富的C/C++语言编程经验,同时还必须掌握MFC类库(微软基础类库)。一个具有丰富C/C++经验的编程者也要通过专门地学习才可能达到熟练应用Visual C/C++的程度。
  虽然Visual C/C++语言的学习难度比学习Visual BASIC要大许多,但是这种学习也是相当有趣的。如果Windows是世界上最别致、装配最佳的自行车的话,为了尽量少摔跤而学会骑自行车,那么Visual C/C++就是最理想的训练用自行车了。
#1  FOXPRO语言
  数据库管理软件在编程中占较大的比例,Visual FoxPro是由Microsoft在FoxPro的基础上推出的全新的功能强大、直观好用、面向对象的数据库编程语言。Visual FoxPro源于有“大众数据库”之称的Dbase Ⅲ,并于Xbase系列数据库完全兼容。因此,具有Xbase系列数据库使用经验的人可以非常容易地转到Visual FoxPro中。
  Visual FoxPro全面地支持可视化编程、支持面向对象的编程,提供流行的客户机/服务器编程模式如OLE(对象的链接和嵌入)功能。此外,它通过引入全新的数据容器概念,为用户提供了集中化数据管理功能,方便了用户组织、管理数据库中的表、查询、窗体、报表、菜单等要素。Visual FoxPro全面地支持汉字处理。在Visual FoxPro中,所有的变量、过程、对象都可以以汉字命名。所有的字符串处理函数也支持中文字符串和中英混合字符串。
#1  DELPHI语言
  虽然VB和VC/C++为我们编写Windows程序提供了很多方便,但VB不能真正编译,采用伪编译的处理方法开发出的软件不能独立运行,需要相应的.VBX和.DLL文件,而且运行速度较低。而熟练运行VC/C++则需要有C/C++语言的基础和掌握复杂的MFC,对编程者要求较高。
  一种新的可选择的语言是Borland公司的DELPHI。它只是一种可视的、面向对象的、事件驱动的编程语言。DELPHI的前身是Borland公司的Borland Pascal for Windows 7.0。它是一种编译语言,编译后程序运行的速度和用C/C++编程样快。DELPHI有以下特点:
#2  一、真正的编译
  Delphi采用原代码编译器(native code compiler),产生的执行文件可以直接被中央处理器所执行,并不需要任何中间程序,所以速度相当快,可以独立运行。
#2  二、真正的交叉平台
  Delphi除了可以运行在Windows 3.1外,还可以在Windows for Workgroups 3.11、Windows NT 3.5、OS/2Warp以及Windows 95上运行。用Delphi编写的程序不用修改,就可以在另一个系统上运行,至多只需要在那个系统上重新编译一次。以前的Windows 3.x应用程序,不增删一个字符,就能在Windows 95上运行。
  Delphi 1.0开发16位的应用程序,可以在上述的所有系统上运行;Delphi 2.0开发出的是32位应用程序,必须在Windows 95或更高版本系统上运行。
#2  三、界面设计方便、美观
  Delphi提供了大量的控件(Visual Component)供界面设计使用,而且含有窗体模板图库,这使开发标准应用程序(如MDI、数据库窗体、表格、多重列表框)的工作变得很轻松。
#2  四、强大的数据库功能
  Delphi提供了一组强大的数据库控件,它们具有使用者所需要的大部分工具,有强大的编译效率。用Delphi开发出的数据库软件一点也不亚于FoxPro。Delphi的核心是宝兰数据库机BDE(Borland Database Engine),它内建的驱动程序可以处理Paradox以及dBase的表格和文件,也可以通过外部的驱动程序(add-on driver)来对Oracle、Sybase、InterBase与Informix作处理。
  Delphi数据库的另一大特色是内嵌结构化查询语言SQL(Structured Query Language),允许使用SQL语句对表格进行各种编辑,包括建立、删除、查询、替换、排序、统计等等,功能极其强大。
  此外,DELPHI还有较强的多媒体功能,支持对象链接和内嵌OLE。DELPHI原是古希腊的一个城市的名字,被古希腊人当成世界的中心,PC magazine杂志预测,DELPHI在今后的几年内,将成为可视化程序开发的主流环境。
#1  JAVA语言
  进入90年代,计算机界发展最快的当属网络技术,尤其是现在,Internet正快速推广。在Internet上人们所使用的机型种类不同,操作系统和应用软件互不兼容,要交换信息就需要能解决各种平台的兼容性。由Sun公司推出的JAVA正是这样一种语言,它用JAVA虚拟机JVM巧妙地屏蔽了人们编程所依赖的操作系统,JAVA的口号是“一次编程,到处运行”(Write Once Run Anywhere)。它一经推出,就引起了计算机界的热切关注,美国《时代》杂志还把它评为1995年十大科技产品之一。
  Java吸收了现有的各种语言的优点,简化和继承了C++的基本语法,抛弃了几乎不用或难用而繁杂的东西。例如不支持#define及typedef、不支持struce、union、不支持运算符重载和多继承性。更重要的是Java删除了容易导致安全性问题的指针,对内存访问进行严格的限制。排除了程序访问任意内存而可能产生的隐患。Java内部有一个自动分配和释放内存系统。使开发人员在编程中少犯错误。Java具有众多的新特点:跨平台、结构中立、分布式、健壮、安全、多线程、网络通信。可见Java从设计初始就与Internet紧密结合。
  Java是一种多线程的语言。线程是基于进程的一个概念,一个进程可以由若干个线程组成,线程之间的操作仅通过对存贮器读写即可,它们共享资源,可以并行处理。这样能提高单进程的执行效率,而以前的多任务操作系统是基于多进程而非基于多线程,进程内部仍然是顺序执行,速度难以提高。
  Java是一种分布式的语言,Java有一个复杂的类库来利用Internet的TCP/IP协议簇来进行通信,这些特性使Java操作网络资源就像C++语言操作文件一样方便。使用Java,组成应用程序的各个对象可存放在Internet上的任何地方,我们可以不受计算机硬件的限制使用各种软件,把Internet作为自己计算机的延伸,让网络为自己服务。
  Java程序分为Java Application(应用程序)和Applet(小应用程序,也称Java片)两种,二者都遵循Java的语法。Application是可以独立运行的应用程序,适合编写大型程序软件。而Applet必须由Html语言调用而不能独立运行。经编译的Applet成为一种平台无关的字节代码,可以运行在任意平台,只要该平台具有能够操作Applet的Java虚拟机(Jvm)即可。
  1995年12月,Sun公司和Netscape公司正式合作共同推出了Java的脚本语言Java Script,它可理解为内嵌在超文本HTML中的一种小型的Java语言,它不同于Java。后者是一种完全的编程语言,HTML可以通过一个链接来指向Java生成的代码,而JavaScript嵌入HTML页面,以语句形式出现。这二者之间的关系就像C语言和其它程序内部的C shell一样。
  Java的发展很快,一系列的Java新品不断面世。Java,这个“网上飘香”的“巴西咖啡豆”已经成为大势所趋。
  现在VB、VC、DELPHI和Java都不断推出新版本,功能越来越强,它们之间的角逐也日趋激烈。哪种语言更适合自己,每个人都会有明智的选择。“一切皆变,无物常存”,也许还会有更新更好的语言出现,我们拭目以待!