徐品
(中国传媒大学信息工程学院数字媒体技术系)
摘要:非计算机专业的研究生软件开发基础各异,需要选择不同的开发工具。面对林林总总的开发工具,究竟选择什么样的开发工具,如何学好开发语言是本文讨论的核心。本文首先介绍了各种语言和开发工具的特点,然后提出了非计算机专业学生学习语言的几条路径,最后给出了计算机语言和编程中几个值得注意的问题。
关键词:软件开发能力培养、计算机语言教学
一、引言
对于与信息技术有关的工科研究生,虽然有很多不同的专业和方向,但要完成其研究课题基本上都离不开软件开发。从这个意义上说,软件开发能力应该是大部分工科研究生必备的技能之一。但由于现行的研究生入学考核制度并没有要求非计算机专业的工科研究生考生必须具备某些软件开发能力,这就导致很多研究生入学以后,虽然具备必要的专业知识,但却缺乏软件开发的能力,这往往使其完成导师的研发任务有一定的困难,而且也影响到研究生应聘一些从事软件开发工作的岗位。
一般研究生入学后就有专门的软件开发的课程,但软件开发能力并非一门课程所能培养出来的。计算机专业学生关于软件开发的课程除计算机组成和语言之外,还有“编译原理”、“数据结构”、“数据库原理”、“软件工程”等。而非计算机专业的学生,普遍不具备这些课程方面的知识。如何在短时间内掌握软件开发能力,则是非计算机专业研究生面临的难题。
二、软件开发工具的种类及发展
软件开发语言经过半个多世纪的发展,从最初的记录计算机指令的穿孔纸带,到现在的基于因特网的网构软件,形成了名目繁多、特点各异的软件开发语言和开发工具。
作为非计算机专业的学生,使用最多的是应用软件。应用软件有大有小,从最简单的如Microsoft公司的“画图”软件到功能复杂的如Adobe公司的“Premiere”后期编辑软件,面向各种不同的应用领域,具备各种不同的功能。其中,适合于应用软件开发的语言也有多种。
在应用软件发展的历史长河中,各种计算机语言相继登场,在不同的历史时期扮演着不同的角色。汇编语言最先亮相。由于采用与CPU指令直接对应的助记符,所以汇编语言最接近硬件,其执行效率最高,在DOS时代曾经流行一时。在计算机运算能力很差的时代,汇编语言由于效率高而被普遍用于应用软件的开发之中。因UNIX系统的成功而名扬天下的C语言是DOS时代流行的高级语言。汇编语言运行效率高但依赖于硬件,而C语言虽然效率差一些,但不依赖硬件,易于维护。所以DOS时代经常使用两者混合编程,在讲究效率的地方用汇编语言(比如图形创作和渲染、视频显示等),其他地方则用C语言。C语言在20世纪80年代风靡一时,几乎击败了所有高级语言,而成为程序员的首选语言。
但是由于20世纪90年代Windows多任务操作系统的兴起,C语言终因无法适应多窗口程序开发而逐步退出应用程序开发工具的舞台,让位于C++语言。C++语言本身是不能直接开发多窗口程序的,它需要借助于C++语言的开发工具来实现应用程序的开发。比较著名的C++语言开发工具是Microsoft公司的Visual C++(简称VC)和Borland公司的C++Builder。前者被市场普遍采用,成为市场的主流开发工具。
VC被认为是最难掌握的开发工具。要学习VC,首先要有C语言的基础,而学好C语言需要有一定的汇编语言的知识。在学好C语言的基础上,才可以学习C++语言;学会了C++语言,还要学习MFC(VC中窗口开发工具)。为了开发多媒体程序,还需要学习Open GL、Direct X等程序开发技术。
鉴于C++语言的复杂难学,自然就有一些简单易用的软件开发工具,比如Microsoft公司的Visual Basic(简称VB)。VB被称为快速应用程序(RAP),该开发工具不需要任何程序基础,可以依据控件基础快速构造应用程序。当然,其功能受到一定限制。
特别是在开发大型软件系统和需要与低层接口开发方面,VB显得力不从心。在比较底层的操作,如位运算、数据块快速拷贝、直接写屏等方面VB更是无法胜任,除非有控件支持。因此,VB比较适合初学者和规模不大的应用程序开发。
Delphi语言是Borland公司开发的类似VB的语言。它与VB一样具有快速构造应用程序的特点(RAP),并且引进了面向对象的思想,在大型程序的开发上比VB略胜一筹。尤其值得称道的是Delphi语言的网络数据库访问功能,颇受业界好评。可以说在难度和功能上,Delphi语言是介于VB和VC的一种语言。
进入21世纪以来,由于网络的发展,由SUN公司推出的新一代网络语言JAVA语言开始攻城略地,不断侵占C++语言的领地,也引发了C++语言会不会被JAVA语言取代的大讨论。JAVA语言的产生是对C++语言的批判和反思的结果。JAVA语言大胆地删除了C++语言中难以理解的指针、运算符重载、多重继承、流式输入输出等概念,去除了头文件和程序文件的结构,简化了语言,提高了程序的安全性。JAVA语言有句革命性的口号,叫做“一次编写,到处运行”,使其非常适合网络软件的编程。
Microsoft公司积极应对网络时代对开发工具的需求,推出了非常类似JAVA语言的C#语言。C#语言对JAVA语言作了一些修订(在这之前曾推出了J++语言),并作为.NET战略的一个重要部分进行推广。
根据Evans Data调查公司的最近关于北美地区程序开发的调查报告显示,JAVA语言在市场占有率上处于领先地位,占45%;紧随其后的是C/C++语言和C#语言,占有率分别是40%和32%。从调查中可以看出,经过10多年的发展,JAVA语言虽然取得了决定性的胜利,但并没有使C++语言退出历史舞台,VC语言仍然具有顽强的生命力。
另外,作为.NET战略的代表C#语言近年来发展神速,有望成为JAVA语言强有力的竞争者。
关于动态网页开发技术目前主要是三种:ASP、JSP和PHP。动态网页离不开数据库语言,常用的数据库语言有MySQL、Oracle、SQL Server等。目前在国内,PHP与ASP应用最为广泛。而JSP由于是一种较新的技术,国内采用的较少。但在国外,JSP已经是比较流行的一种技术,尤其是电子商务类的网站多采用JSP。采用PHP的网站如新浪网(sina)、中国人(China Ren)等,但由于PHP本身存在的一些缺点,使得它不适合应用于大型电子商务站点,而更适合一些小型的商业站点,ASP和JSP则没有这些缺陷。
世界上一些大的电子商务解决方案提供商都采用JSP/Servlet。比较著名的如IBM的E-business,它的核心是采用JSP/Servlet的Web Sphere。