第二篇:(2)第一杯咖啡
第三篇:(3)eclipse
第四篇:(4)品味第一杯咖啡
第五篇:(5)java语言基础
第六篇:(6)编写猜数字游戏
归根结底,计算机的发展史可以归纳为“抽象”两个字。应用存储程序的理论,人们从最早的现代计算机抽象出软件(software)和硬件(hardware)两个独立部分。为了让软件各司其职,软件又被抽象成专门与硬件打交道的操作系统(operating system)和建筑在操作系统之上的应用软件(application)。数据处理又是许多应用软件必须的前提,从而抽象出数据库系统(database system)。到了网络时代,为了更好地适应网络软件的开发,应用软件中又抽象出应用服务器(application server)提供各种服务。
编程语言的发展亦复如是。让我们在这回的咖啡馆中看看编程语言的发展简史,从头认识java中的面向对象编程技术。
1946年2月15日,随着第一台现代电子计算机eniac轰鸣着来到这个世界,编写程序也成为三百六十行之外的一个崭新职业。我们称编写程序的工程师为程序员或者开发者。
eniac是一台重达30吨的庞然大物,由19000多个晶体管、1500多个继电器组成。为了给它下达指令,程序员必须通过不同的连接线组合进行编程。要编制运行新的程序,还必须拔掉连线重新来过。整天面对二进制编程的工作相当枯燥乏味,而且是直接对程序地址读写,自然出错频繁。阅读由连线表达的程序更不亚于揣摩天书,维护和改造程序的价格成本居高不下。更要命的是,早期的计算机制造价格相当昂贵,而在程序编制调试完成之前,计算机不得不一直空转,导致软件开发的费用竟然远远超过硬件的投入。
为了解决软件开发的难题,计算机科学家发明了汇编语言,通过一些助记符来减轻二进制编码的开发压力。这的确是行之有效的方法,直到现在,程序员在开发中还常常使用嵌入式汇编来提高软件运行速度,游戏引擎更是如此。然而,汇编语言太依赖程序员的素质,而且无法适应大规模的开发。
黄糖故事 grace murray hopper、bug和debug
由于一次传奇般的投资,mark i计算机把ibm从生产制表机、肉铺磅秤、咖啡碾磨机等乱七八糟玩意的行业,领入了计算机制造业的领地,最终成为如今的蓝色巨人。本系列文章中曾介绍过mark i三个程序员之一的数学家grace hopper是如何创造了“bug”和“debug”这两个计算机史上著名的两个名词的。而这位hopper女士,实在是一个不得了的人物。1952年,hopper觉得用机器码编程是不是比较原始,为什么不能用类自然语言编写程序,然后再用一个工具把它转换成机器码呢?不久,她就开发出世界上第一套编译器a-0,是现代编译技术的原型。1956年她在第一台储存程序的商业电子计算机univac i、ii上开发出b-0,之后叫做flow-matic,它导致了计算机商用语言cobol(common business oriented language)的诞生。虽然hopper有着“电脑之母”的美誉,但是传说她办公室有一个倒着走的钟,以及一面秀着骷髅头的海盗旗。
到了六十年代,fortran (formula translating)、cobol、lisp、algol 60等现代高级语言的出现了。程序员可以用接近自然语言的程序语言编制软件,然后通过编译器转换成机器可执行的代码。由于使用精确的形式语言来定义程序语言本身,并且通过对硬件的抽象使得程序与计算机平台无关,导致高级语言生产效率大大提高,维护费用自然降低不少,计算机软件业终于得以蓬勃发展。
好景不长。随着软件大规模的应用,程序的开发方法和管理手段逐渐无法跟上软件规模的膨胀,从而导致了软件危机的出现。就拿1963~1966年间的ibm 360系统来说,该系统有100万行的代码量,ibm每年动用5000人来维护该系统,但是,每个版本都是从上一个版本找出1000以上个错误而修订的结果,好像越改错误越多,根本没有改善的迹象。有人把ibm 360系统形容为一只逃亡的野兽落到泥潭中做垂死的挣扎,越是挣扎,陷的越深,最后仍然无法逃脱灭顶的灾难。
人们不得不停下脚步思考,到底哪里出了问题。回想自己,每个人做事情,都是列举重点,然后细化并逐个完成。比如制造自行车,肯定是先把自行车按照功能分块,先造车架,然后是两个车轮,接着是踏板等传动装置,最后才是坐垫、车铃等零件。而制造车轮,肯定是要分别制造钢圈、钢丝、轮胎,而轮胎有分内外胎。如果软件开发能够遵循这种从大到小、逐步精确的思想,是不是能够解决这个软件危机呢?
没错,这种结构化的抽象分析方法,导致了结构化程序设计方法的诞生。
Java Asp PHP .Net XML C/C++ CGI VB Jsp J2ee J2se J2me EJB Servlet Tomcat Resin Struts Weblogic Eclipse ANT GUI JMS Web servise IDEA Webphere Hibernate Spring Jboss Applet Swing Socket Javamail Perl Ajax P2P 安全 模式 框架 测试 开源 游戏
Windows XP Windows 2000 Windows 2003 Windows Me Windows 9.x Linux UNIX 注册表 操作系统 服务器 应用服务器