计算机学科视角中的科学精神与人文精神关系探析摘要:从1946年2月14日,第一台电脑ENIAC在美国宾夕法尼亚大学诞生之日起,世界人民的生活就开始发生天翻地覆的变化,社会从此进入一个崭新的时代。计算机从最初的4位单片机到现在的千兆个人电脑,其功能演进的速度可以用日新月异来形容。计算机学科的发展已逐渐影响着社会经济领域的方方面面,对社会带来了巨大变革的同时,也改变了人们的生活和精神面貌。关键词:计算机科学;计算机学科发展;科学精神;人文精神RelationBetweenScientificspiritandHumanisminComputerSciencePerspectiveAbstract:SinceFebruary14,1946,thedayofthefirstcomputerENIACwasbornattheuniversityofPennsylvaniaintheUnitedStates,thepeople'slifeintheworldhavechangedtremendouslyandthesocietyhasenteredanewera.Fromtheoriginal4bitsingle-chipmicrocomputertotoday'sGigabitPC,thedevelopmentofcomputers'functionhasbeenchangingwitheachpassingday.Thedevelopmentofcomputersciencehasgraduallyaffectedallaspectsofsocialandeconomicfields.Whileithasbroughtgreatsocialchanges,italsohaschangedpeople'slivesandmentaloutlook.Keywords:computerscience;computersciencedevelopment;scientificspirit;humanism计算机科学与技术从诞生之日起,就与人们的需求密切相关。在社会和人们需求的推动下,计算机技术迅速而广泛地发展起来。时至今日,计算机科学与技术不仅被应用到社会经济的各个领域,并在很大程度上推动着市场产业结构的发展和变革,人类社会已经开始迈进信息化时代。一、应运而生的计算机科学从20世纪40年代起,现代科学技术高速发展,一方面,提出了大量复杂的计算问题,原有的计算工具已远远满足不了要求;另一方面,电子学和自动控制技术的成果为研制计算机提出了物质技术基础。在这种情况下,电子计算机应运而生[1]。第二次世界大战期间美国军方要求宾州大学莫奇来博士和他的学生爱克特设计以真空管取代继电器的“电子化电脑”——ENIAC(ElectronicNumericalIntegratorandCalculator,电子数字积分器与计算器),目的是为了解决炮弹弹道的计算问题。这部机器使用了18800多个真空管,长50英尺,宽30英尺,占地1500平方英尺,重达30吨,它每秒可从事5000次的加法运算。此后,计算机的发展突飞猛进。最初的计算机造价十分昂贵,能用得起的单位也很少。而随着电子管、晶体管、集成电路和超大规模集成电路等技术的陆续出现,计算机的制造成本越来越低,性能也越来越强大,计算机已快速进入更多企业和大众的视野中。英特尔创始人之一创始人之一戈登·摩尔(GordonMoore)提出“摩尔定律”[2],预示着国际集成电路的开发生产规律,其内容为:当价格不变时,集成电路上可容纳的晶体管数目,约每隔18个月便会增加一倍,性能也将提升一倍。换言之,每一美元所能买到的电脑性能,将每隔18个月翻两倍以上。这一定律同时也揭示了信息技术进步的速度。随着计算机处理数据等的能力的不断提升和成本的不断降低,计算机早已不再是只局限于军事应用的庞然大物。计算机学科与其他各个学科相结合,各种系统软件和应用软件的开发和更新,使得更多的计算机产品被研发制造,计算机更广泛地被应用于各个领域。二、社会应用驱动下的计算机学科发展计算机的发展是一部社会应用驱动的历史,正是人们在实际应用中不断提出的新需求,才进一步推动计算机技术的不断向前发展。计算机学科中的一系列重大进步都与人们的需求方向密不可分。(一)图形用户界面的人—机—环境三者合一理念现在人们对于图形用户界面(GUI)操作系统已经屡见不鲜了,但是对于最初的计算机而言,却连最基本的操作系统都没有,更不论简便易用的图形用户界面了。最初的计算机只能够通过各种操作按钮来进行手动控制,而随着微型计算机的迅速发展,逐渐产生了DOS操作系统。DOS操作系统即磁盘操作系统(DiskOperationSystem),是一个基于磁盘管理的操作系统,它是命令行形式的,需要依靠输入命令来进行人机对话,并通过命令形式把指令传给计算机,从而让计算机实现操作。这就要求用户必须记忆大量的DOS命令,从而对计算机使用者提出了很高的要求[3]。在1985年11月,Microsoft公司发布了第一代窗口式多任务系统Windows,它使得PC机开始进入了图形用户界面时代。图形用户界面,即GUI,GraphicalUserInterface的简称,又称为人机交互图形化用户界面。GUI是一种结合计算机科学、美学、心理学、行为学、及各商业领域需求分析的人机系统工程,强调人—机—环境三者作为一个系统进行总体设计。这种面向客户的系统工程设计其目的是优化产品的性能,是操作更人性化,减轻使用者的认知负担,使其更适合用户的操作需求,直接提升产品的市场竞争力[4]。与使用命令号界面相比,图形界面对于用户来说更为简便易用。用户在首次接触一个图像用户界面之后就觉得一目了然,不需要经过多少培训就可以方便地上手使用。随着图形用户界面的兴起与逐步发展,用户界面在软件系统中所占的比例也越来越大,有的甚至高达60~70%,尤其是对于网站而言,一个好的网页界面在很大程度上决定着网站的访问量。程序员在进行软件用户界面设计时,应当首先具备这样的思想:在自己所编写的软件应用中,用户才是所有软件处理的中心。一个好的图形用户用户界面应当是由用户来控制应用如何工作,如何响应,而不是由程序员按自己的意愿把操作流程强加给用户。当编写事件驱动程序时,应为每一个动作或事件指定一个且唯一的相应程序。触发这些事件、使这些响应程序执行的源动力不是应用,而是用户[5]。(二)计算机语言发展中的人文因素计算机语言(ComputerLanguage)是指用于人与计算机之间通信的语言。计算机系统的最大特征是指令通过一种语言传达给机器,计算机语言则是一套用以边写计算机程序的数字、字符以及语法规则。计算机语言也被称为计算机程序设计语言,因为其产生的目的就是为编写计算机软件程序而服务的。计算机科学的发展依赖于计算机硬件和软件技术的发展,硬件是计算机的躯体,软件是计算机的灵魂。没有软件,计算机只是一台“裸机”,什么工作都做不了,而软件则是由计算机语言编写而成的。计算机语言的发展是一个不断演化的过程,其根本的推动力就是抽象机制更高的要求,以及对计算机程序设计思想的更好的支持。同时,计算机语言的发展过程也是其功能不断完善、描述问题的方法越来越贴近人类思维方式的过程。具体地说,就是把机器能够理解的语言提升到也能够很好的模仿人类思考问题的形式。计算机语言的演化过程经历了从最开始的机器语言到汇编语言到各种结构化高级语言,最后到支持面向对象技术的面向对象语言的过程。机器语言是计算机诞生和发展初期所使用的语言。计算机发明之初,科学家只能依靠二进制数编制的指令控制计算机的运行。机器语言的每一条计算机指令都是由一组“0”、“1”按照一定的规则排列组成,cpu可以直接识别执行,所以机器语言的执行效率很高。但是计算机若想要执行一项简单的任务,程序员在了解计算机硬件结构的前提下,必须编写大量的由“0”、“1”组成的机器指令,这不仅是一项复杂而又繁琐的工作,而且当程序出错时,很难确定错误所在之处[6]。在20世纪50年代末,出现了汇编语言,它是使用比较容易识别、记忆的助记符来表示每一条机器指令。例如使用ADD来替代加法的二进制指令。汇编语言其实质是符号化的机器语言,但机器并不能直接识别,需要一个专门的程序将其翻译成机器语言。通过助记符,人们能够较容易地读懂程序,调试和维护也更方便。但是汇编语言和机器语言一样,对于硬件有很强的依赖性,可移植性差。与此同时,由于汇编语言的执行效率仍接近于机器语言,因此,汇编语言至今仍是一种常用的软件开发语言。针对汇编语言硬件依赖性强,可移植性性差等缺陷,各种结构化高级语言问世了。结构化高级语言不依赖于计算机型号,通用性较好,并且能够大大的提高程序编写的效率和程序的可读性。结构化高级语言是一种面向过程的语言,它定义了丰富的数据结构类型,从而为程序员提供了极大地方便性与灵活性,同时它特别适应微计算机系统,因此很快大受欢迎并流行起来[7]。结构化高级语言所编制的程序不能直接被计算机识别,必须经过转换才能被执行,按转换方式可将它们分为两类:解释类和编译类。为了是计算机更易于模拟现实世界,1967年挪威计算中心的KistenNygaard和OleJohanDahl开发了Simula67语言,它提供了比子程序更高一级的抽象和封装,引入了数据抽象和类的概念,它被认为是第一个面向对象语言。结构化程序设计方法与语言是面向过程的,其程序的执行是流水线式的,在一个模块被执行完成前,不能干别的事,也无法动态地改变程序的执行方向。这与人们日常认识、处理事物的方式不一致。面向对象语言(Object—OrientedLanguage)是一类以对象作为基本程序结构单位的程序设计语言,每个对象中包含有该对象的成员变量和方法,成员变量描述了该对象所具有的属性,而方法则描述了该对象会有哪些行为。面向对象语言将对象作为程序的基本单元,将程序和数据封装其中,从而不仅符合人们对事物的认识过程,也提高了软件的重用性、灵活性和扩展性。(三)面向对象技术随着面向对象语言的出现,面向对象程序设计方法也应运而生且得到迅速发展,面向对象的思想也不断向其他方面渗透。在现实世界中存在的课题是问题域中的主角,而所为课题是指客观存在的对象实体和主观抽象的概念,它是人们观察问题和解决问题主要目标。例如,对于一个学校学生管理系统来说,无论是简单还是复杂,始终是围绕学生和老师这两个客体实施。在自然界,每个客体都具有一些属性和行为,例如学生有学号、姓名、性别等属性,以及上课、考试、做实验等行为。因此,每个个体都可以用属性和行为来描述。如果说,面向过程的语言仍然反映了计算机的思维方式,那么面向对象的程序设计思想则充分体现了人们看待周围事物所采用的面向对象的观点。这种观点认为:我们周围的世界是由一个个的对象组成的,每个对象都有自己的内部状态和运动规律,不同对象间的相互联系和相互作用构成了各种不同的系统,进而构成整个客观世界。计算机软件主要就是为了模拟现实世界中的不同系统,如物流系统、银行系统、图书管理系统、教学管理系统等。因此,计算机软件可以认为是,现实世界中相互联系的对象所组成的系统,在计算机中的模拟实现。面向对象的技术进一步缩小了人脑与电脑思维方式上的差异,并可以使人们在利用计算机解决问题时,不是将主要精力花在如何描述解决问题的过程上(即编程上),而是花在对要解决问题的分析上。面向对象(OO,ObjectOriented)已经成为当前计算机界关心的重点,面向对象的概念和应用也已超越了程序设计和软件开发,扩展到很宽的范围,如数据库系统、交互式界面、应用结构、应用平台、分布式系统、网络管理结构、CAD技术、人工智能等领域[8]。三、计算机学科发展给社会所带来的影响计算机被称为人类最好的工具,它对整个社会的影响和作用是不言而喻的。计算机科学的发展使得整个社会进入了信息化时代。伴随着计算机技术的发展,光通信、卫星通信、移动通信、多媒体通信等推动通信技术不断发展,特别是当前的数字技术革命正促进电脑、电信、电视、信息内容等方