书店能买到编程书籍吗连锁书店的软件

JavaSE总结程序-------书店管理系统
通过一段时间的学习,掌握了一些基本的java技术和软件开发能力,现在简单的做了一个小型的软件,虽然不能算真正的软件,但是对于初学者来说是一个很好的例子去巩固学习的知识。
项目的联系的目标:
1、应用程序基本分析
2、培养面向对象编程的基本思想
3、Java基本设计模式综合应用
4、掌握分层和接口的基本设计
5、构建合理的Java应用程序包结构
6、综合应用JSE所学习的知识
7、在应用中合理使用集合框架
8、在应用中综合使用swing的常用
9、基本的表现层的实现机制
10、IO流和文件的基本操作
11、培养良好的Java编程习惯
12、培养调试Java程序的能力,培养改错的能力
项目功能需求 :
1、能进行操作用户的注册,修改基本信息,删除和查询。
2、能对的基本信息进行增加、删除、修改和查询操作。
3、能填写进货单,一张进货单带有多条具体的进货信息,进货的书籍必须是图书管理里面已经有的;进货的同时修改库存对 应书籍的存货量。
4、能填写销售单,一张销售单带有多条具体的销售信息,销售的书籍必须是图书管理里面已经有的,而且销售的数量不能超 过当前库存的数量;销售的同时修改库存对应书籍的存货量。
5、可以查看库存的明细,可以按照条件进行查找具体的图书的库存值。
6、权限方面进行简化,做固定的权限控制。把用户按照模块分成不同操作权限的人员,特设一个admin的用户,可以操作全部 的功能。
项目基本设计:
1、架构设计
①、 整体框架、模块划分
②、模块划分:用户、图书、进货、销售和库存5个模块
2、系统功能结构设计
每个功能模块的具体功能子模块
①、用户管理(User.txt)
字段名和顺序:
说明:其中的type为int类型,用来表示操作用户的类型。
1&&表示为admin,可以进行全部操作
2&&表示为能操作图书模块的人员
3&&表示为能操作进货模块的人员
4&&表示为能操作销售模块的人员
5&&表示为能操作库存模块的人员
②、图书管理(Book.txt)
字段名和顺序:
③、进货管理(InMain.txt)
字段名和顺序:
④、进货明细管理(InDetail.txt)
字段名和顺序:
⑤、销售管理(OutMain.txt)
字段名和顺序:
⑥、销售明细管理(OutDetail.txt)
字段名和顺序:
⑦、库存管理(Stock.txt)
字段名和顺序:
第一层:按照模块分-------用户模块(user)、图书(book)、进货(in)、销售(out)、 库存(store)
第二层:按照三层模式分-------表现层(ui)、逻辑层(business) 和 数据层(dao)、通常还要增加一个值对象层(vo)
第三层:按照层内划分去分-------视具体情况而定,如business和dao内还要再采用铁三角的形式建子包,而ui和vo则不需要再划分子包)
项目代码实现:
本项目采用了分层的设计、工程模式、值对象、枚举、界面切换技术等一系列的技术,值得大家学习。由于代码很多,我直接把项目上传到我的博客资源中,下载即可,谢谢。
下载链接:书店管理系统代码实现您所在的位置:
&HY书店管理系统下载
点击查看大图
大小:5.98 MB
语言:简体中文
授权:免费软件
开发商:未知
&&&&适用于各类书店,简单易用,并支持条形码扫描设备。可以自定义图书类别,方便添加新图、管理图书、管理会员,售书操作,图书类别设置,图书存放位置设置,本系统拥有完全独立的数据库系统,数据管理为您提供:图书管理,会员管理。数据查询为您提供:借阅情况,书库查询,会员查询。本系统具有安全的数据库备份方案,简单易用,仿WINDOWS操作方式,可以使您很快上手,打印机设置为您打印提供解决方案根据需要自动设置图书类别和相应的售出时间、售出册数。本系统出售源程序,详情请看下载后看具体说明和联系方式。采用多文档窗体,ADO编程,程序中包含了许多编程技巧。本系统出售源程序,详情请看下载后看具体说明和联系方式。采用多文档窗体,ADO编程,程序中包含了许多编程技巧。
您可能感兴趣的相关软件
桌面数据库不是一款单纯的软件,而是一个高效的数据库管理与制表平台,功能强劲,适用范围广,各行业均可使用。 桌面数据库功能:1、自由创建、修改、管理、操作表:有详细的使用介绍,生手亦可很快入门。数据库管理,是本软件的主要部分。2、简捷易用的表格制作、打印:功能清晰,最傻瓜型操作,不会用Excel的人,也能很快上手。可以编辑当前表数据,亦可编制任意常规表格。设计的表格,可直接打印。3、
Notion是一款将笔记、知识库和任务管理无缝整合的协作平台。它具有无限的层级和相互链接的组织弹性,给笔记间的关系提供了足够自由的组织方式;它排版灵活,能够把笔记里的内容按块(Bl
巴别鸟同步端是巴别鸟开发的文件同步工具,支持多台电脑间,自动实时同步文件,拥有安卓、ios、mac多平台客户端,可以帮助用户轻松管理文件,提升用户工作效率。
Typora中文版是好用极简免费的跨平台Markdown编辑器,支持markdown的标准语法,同时这款软件还支持动态预览功能,一键预览,是一款不可多得的优质markdown编辑器
云骑士装机大师是一款系统重装软件,云骑士装机大师操作简单,兼容性强,一个电脑小白就可以轻轻松松的自己把心爱的电脑系统进行重装,是你维护电脑较好的辅助工具。
橙光文字游戏制作工具是一款制作文字冒险、恋爱养成类游戏的软件。这个工具不需要编程、不需要漫长的学习过程,就能让你做出完全属于你的游戏。橙光文字游戏制作工具依然是追求快速、可视化、人性化、无编码的操作过程,力求让游戏制作的门槛降到低到。橙光文字游戏制作工具特色:1.效率:橙光制作效率非常高2.易学习3.擅长制作的游戏类型:橙光最适合制作【用选项改变游戏走向】的剧情类文字游戏,如《Clannad》、《
天天模拟器是一款可以让安卓应用程序在Windows系统上运行的软件。天天安卓模拟器支持OpenGL硬件加速,是目前性能较好的安卓模拟器,游戏运行效率秒杀BS等主流模拟器。天天模拟器让你在电脑上体验使用安卓手机的畅快感觉,拖拽安装的功能可以让几万款安卓应用轻......
OneLoupe(放大镜工具)一个简单的桌面放大镜,oneLoupe是一个屏幕放大镜是那些有视力障碍或视力弱的人准备的,检查照片,放大细节,图纸和其他任何你想仔细看的内容.该工具允
HiteView是一款在学校等机构展台多媒体投影展台使用教学软件,需要先连接视频设备,连接设备后再打开软件才能启动。
万校微课之星是一款非常便捷的课件制作软件,万校通微课之星支持导入word、ppt、pdf等课件还提供了电子画板和电子白板功能让教师在录制微课时可以边写边将。
OneLoupe(放大镜工具)一个简单的桌面放大镜,oneLoupe是一个屏幕放大镜是那些有视力障碍或视力弱的人准备的,检查照片,放大细节,图纸和其他任何你想仔细看的内容.该工具允
DevManView是一款查看硬件设备信息的软件!可以显示系统中的设备和属性,如果拥有管理员访问权限,DevManView还可以查看自己网络中其它计算机的设备列表。
DevManView是一款查看硬件设备信息的软件!可以显示系统中的设备和属性,如果拥有管理员访问权限,DevManView还可以查看自己网络中其它计算机的设备列表。
HashMyFiles是nirsoft出品的一款用于效验文件md5、sha1值的小软件!可以集成到右键菜单中,可以一次效验一个文件夹下所有文件的md5/sha1值!
ManicTime中文特别版是一款时间管理软件,它很适合来帮你管理你的时间安排。ManicTime会静静地在后台记录下你运行过什么程序,使用了多久,离开电脑电脑多久等等,然后生成直观的图表来帮助你总结和分析到底大部分时间花费在哪些操作或者具体哪个程序上。
HashMyFiles是nirsoft出品的一款用于效验文件md5、sha1值的小软件!可以集成到右键菜单中,可以一次效验一个文件夹下所有文件的md5/sha1值!
百度日本日语输入法“BaiduType(Baidutaipu)”是一款免费的个人电脑日文文字日语输入法软件。百度日语输入法采用了从网页等处的信息作为基础来统计的言语模式,擅长于流行语、口语以及人名等固有名词的输 ..
ePUBee智多星是集电子书制作、编辑、阅读于一体的软件,在电脑端有它,就可以拥有整个电子书世界了。完美支持的电子书格式有EPUB, MOBI, AZW, AZW3, TXT, H
HY书店管理系统下载地址
6844次下载
9378次下载
12124次下载
19743次下载
14568次下载
20895次下载
2726次下载
50283次下载
12354次下载
24263次下载
2711553次下载
316487次下载
293444次下载
285775次下载
245001次下载
244733次下载
238691次下载
213734次下载
202708次下载
199627次下载
热门关键字程序员必备的5大博客平台,你知道几个?程序员必备的5大博客平台,你知道几个?w3cschool百家号没有写博客,程序员一天的工作就是写代码,debug,写代码,debug。有不少程序员在学编程的过程中,发现编程理论很难理解,有些应用并练习很多次,仍然很快遗忘。或者是看书写代码或看视频写代码印象较浅,很容易忘记,其实你大可以用博客加深学习的印象。因为当你开始写博客时,就需要查阅书籍资料、写代码印证、研究背后原理,需要更深入地去思考,勤于动脑学来的编程技能才能在脑袋里生根。同时,写博客利己利人。比如你花一个小时解决的问题,总结得出经验,过了几个月,遇到同样的问题,翻下博客,你可以花更少的时间解决类似的问题。下面w3cschool就为程序员小伙伴们推荐5个写博客的平台:0、GitHubGitHub可以针对单条Issue进行Watch / Unwatch,这是很多成熟的博客系统还不具备的功能。使用GitHub写博客后期,可以利用脚本将issues转换成博客。1、简书不得不说,简书的ui简洁而又不失实用性。你之前写的文章是是markdown格式的,可以直接复制到了简书里面,简单粗暴。2、CSDNCSDN用的stackedit编辑器功能相当丰富,支持mathjax,UML、数学公式、流程图等。3、博客园博客园的页面一直都是非常简洁的,开发css和js权限。你可以按照自己的想法设计自己的博客风格,用markdown写博客简直爽的不要不要的。4、开源中国开源中国是目前中国最大的开源技术社区,交流开源技术的平台。用户体量庞大,你写的博客可以大量的曝光,你可以给更多的人分享自己的编程经验。最后,你是用哪个平台写博客呢?本文仅代表作者观点,不代表百度立场。系作者授权百家号发表,未经许可不得转载。w3cschool百家号最近更新:简介:w3cschool专注于服务程序员作者最新文章相关文章高翔龙 (著) | 电子工业出版社 | 0 | 出版 |
(0人评价)
VIP会员价:¥51.75(7.5折)
(巴西) 卢西亚诺?拉马略(Luciano Ramalho) (著) | 人民邮电出版社 | 7 | 出版 |
(0人评价)
VIP会员价:¥111.20(8折)
陈轶 (著) | 机械工业出版社 | 5 | 出版 |
(0人评价)
VIP会员价:¥69.30(7折)
(美)艾伦A. A.多诺万(Alan A. A. Donovan);(美)布莱恩W.柯尼汉(Brian W. Kernighan) (著) | 机械工业出版社 | 2 | 出版 |
(0人评价)
VIP会员价:¥55.30(7折)
朱志文 (著) | 机械工业出版社 | 3 | 出版 |
(0人评价)
VIP会员价:¥41.30(7折)
(美)弗兰克M.卡拉诺(Frank M. Carrano);(美)蒂莫西M.亨利(Timothy M. Henry) (著) | 机械工业出版社 | 8 | 出版 |
(0人评价)
VIP会员价:¥97.30(7折)
刘光瑞 (著) | 人民邮电出版社 | 3 | 出版 |
(0人评价)
VIP会员价:¥59.25(7.5折)
(美)Trey Grainger(崔.格兰杰) , Timothy Potter(提摩斯.波特) (著) | 电子工业出版社 | 9 | 出版 |
(0人评价)
VIP会员价:¥96.75(7.5折)
黄安埠 (著) | 电子工业出版社 | 0 | 出版 |
(1人评价)
VIP会员价:¥59.25(7.5折)
张开涛 (著) | 电子工业出版社 | 0 | 出版 |
(1人评价)
VIP会员价:¥74.25(7.5折)
[ 日] 水野贵明 (著) | 人民邮电出版社 | 8 | 出版 |
(0人评价)
VIP会员价:¥40.04(7.7折)
[美] 马丁L. 阿伯特(Martin L. Abbott)迈克尔T.费舍尔(Michael T. Fisher) (著) | 机械工业出版社 | 4 | 出版 |
(0人评价)
VIP会员价:¥55.30(7折)
王亚飞;王洪飞 (著) | 清华大学出版社 | 0 | 出版 |
(0人评价)
VIP会员价:¥55.20(8折)
翟永超 (著) | 电子工业出版社 | 1 | 出版 |
(0人评价)
VIP会员价:¥66.75(7.5折)
周立 (著) | 电子工业出版社 | 7 | 出版 |
(0人评价)
VIP会员价:¥51.75(7.5折)
韦玮 (著) | 机械工业出版社 | 5 | 出版 |
(0人评价)
VIP会员价:¥48.30(7折)
阮一峰 (著) | 电子工业出版社 | 6 | 出版 |
(1人评价)
VIP会员价:¥51.75(7.5折)
(美)程润伟(John Cheng) (著) | 机械工业出版社 | 5 | 出版 |
(0人评价)
VIP会员价:¥69.30(7折)
罗丁力 张三 (著) | 电子工业出版社 | 3 | 出版 |
(0人评价)
VIP会员价:¥48.75(7.5折)扫一扫下载手机客户端
扫描我,关注团购信息,享更多优惠
||网络安全
| | | | | | | | | | | | | | | |
||电子电工
汽车交通| | | | | | | | | |
||投资理财
| | | | | | | | | | | | | | | | |
| | | | | | |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
||外语考试
| | | | | | | | |
| 视频教程|
软件故事:谁发明了那些经典的编程语言
跟随《纽约时报》IT记者史蒂夫_洛尔,一起领略软件史上的传奇故事!
定价:¥49.00
校园优惠价:¥44.10 (90折)
促销活动:
此商品暂时缺货(可留下联系方式,到货将第一时间通知您)
如果您急需团购,可点击“团购急调”按钮将此书加入购物车,由客服人员为您协调调货!
电话号码:
*邮箱地址:
原书名:Go To The Story Of The Math Majors, Bridge Players,...Scientists And Iconoclasts Who Were The Hero Programmers Of The Software Revolution
原出版社:
ISBN:9上架时间:出版日期:2014 年7月开本:16开页码:259版次:1-1
所属分类:
  聆听软件行业发展的精彩故事
领悟软件巨擘的深邃思想
放飞想象力,通过编码改变世界
《软件故事:谁发明了那些经典的编程语言》介绍了多种语言和软件的起源以及促进软件行业发展的重大成就,以传记体讲述了埋没于历史洪流却起到了关键作用的编程人员及其贡献,包括“存储式计算”早期出现的女性软件先驱的故事。本书内容主要包括:约翰? 巴克斯发明Fortran 语言、约翰? 麦卡锡设计Lisp语言、“COBOL 之母”葛丽丝? 霍普等人创建COBOL 语言、肯? 汤普森与丹尼斯? 里奇开发Unix 操作系统和C 语言、托马斯? 库尔兹与约翰? 凯默尼开发BASIC 语言、本贾尼? 斯特劳斯特卢普开发C++、“Word 之父”查尔斯? 西蒙尼研发Word、阿兰? 凯伊设计Smalltalk 语言、安迪?赫兹菲尔德等研发Macintosh、钱柏林等创建SQL 语言、詹姆斯?高斯林发明Java,等等。
《软件故事:谁发明了那些经典的编程语言》适合计算机相关从业人员及对软件行业感兴趣的读者参考阅读。
Steve Lohr
《纽约时报》高级作家和技术通讯记者,U .S. v. Microsoft一书合著者,现居住于纽约。
1992年毕业于北京理工大学飞行器工程系固体火箭发动机专业,获得工学学士学位。2001年重回母校管理与经济学院就读,2004年毕业并获工商管理硕士学位。早年他曾从事软件开发,担任IT公司高级管理工作多年。
《软件故事:谁发明了那些经典的编程语言》
第1章 引言:软件和编程艺术的兴起  1
谈起他所取得的成绩,西蒙尼把这一切都归功于软件业的兴起,以及他在编写计算机代码方面的天赋异禀,当然,还有机遇、运气以及资本市场的反复无常。他的职业生涯始于20世纪60年代中期,那时他在匈牙利中央统计局工作,有点像美国青少年电脑黑客。他涉猎广泛,不断充实自己,自学了如何在俄制的Ural II电脑上进行编程。论计算机发展水平,布达佩斯还处于20世纪50年代早期的技术水平,比西方落后了几十年。多年来,软件不断发展,编程人员的视线不再局限于二进制数字或数位――机器语言0和1。但是,西蒙尼尝试用纯粹的机器语言与计算机对话。“那是编程的石器时代,”他回忆道,“我穿越了时间隧道。”
第2章 FORTRAN:早期的“转折点”  11
要把工程或科技问题输入计算机,准备工作既艰难烦琐又枯燥乏味,可能要花好几个星期的时间,而且还需要专门的技能。只有很少一部分人具备这种与机器对话的神奇能力,就像原始社会的大祭司一样。然而,这些祭司里面也有离经叛道之人,年轻的程序员约翰?巴克斯就是其中之一。巴克斯曾在“与机器的较量”中受挫,于是他迫切地希望能加快速度、简化编程。“我猜一定有更好的办法,让编程变得更容易。”将近50年之后,在位于旧金山可以俯瞰金门大桥的家里,巴克斯如此回忆道。
第3章 20世纪60年代的惨痛教训:从繁盛到COBOL和IBM 360计划成为现实  35
人们逐渐意识到软件不同于硬件,编程也开始成为一种独立的职业。但它还处于萌芽阶段,没有标准,没有资质,也没有学校能够传授系统的理论知识。无限乐观甚至无知的早期阶段于20世纪60年代后期结束。这时,人们才痛苦地发现,开发大的软件系统要比预想的更加困难,花费的成本也更大。编程这种职业逐渐成熟,软件开始被看成是一种生意。
第4章 打破巨型计算机的控制:Unix和C  63
当时,汤普森不仅熟悉IBM大型计算机,对以Digital Equipment公司的小型机为代表的新计算设备也不陌生。尽管Digital Equipment还未成气候,但其PDP系列从做出模型开始就开创了另一种计算风格。这些小型机成本更低,体积更小,放置在用玻璃隔离、装有空调的房间,由受过训练的“操作员”使用,与大型计算机代表的文化完全不同。相比较而言,PDP小型计算机更小、更开放、更加诱人,权限不受企业审核和级别的限制。小型机最先被应用于科学研究、工程开发和学术研讨,它降低了那些充满好奇的人们用计算机展开实验的成本和门槛。年轻的研究员和学生也能亲手操作计算机。对他们来说,这些小型计算机可谓应运而生,同时也为黑客提供了接近计算机的途径。当IBM表现出会计账簿似的严苛风格时,小型计算机似乎更多地体现了实验室工作台般的非正式、随意的风格。
第5章 为大众编程:从达特茅斯的BASIC到Visual Basic  84
库尔兹早期编写程序用的是汇编语言,在不同计算机上使用的编程语言也不相同。麻省理工学院计算中心使用的计算机是IBM 704,因此,库尔兹掌握了这台计算机的分享式汇编语言SAP。1957年,FORTRAN问世,但起初人们对所谓的高级语言存有偏见。很多程序员都认为,FORTRAN是为那些技术水平不高的编程练习者设计的,真正的程序员都用汇编语言来编程,而且他们认为这样做也能节省宝贵的上机时间。因此,当需要编写一个涉及大量统计计算的程序时,库尔兹选择了使用SAP汇编语言。但是,经过几个月的尝试,他认输了。他浪费了“一小时宝贵的704机时和自己不那么值钱的大量时间”。放弃汇编语言之后,库尔兹尝试了人们一度不屑使用、效率不高的FORTRAN语言。他回忆说:“结果,大概只用了5分钟的机时。使用高级语言编程能够节省计算机时间,也能节省自己的时间,这次经历对我的触动很大。”
第6章 欧洲的影响力:从Algol到Pascal再到C++  104
作为最重要的软件工具,编程语言的类型和结构多种多样;但从FORTRAN和COBOL到Visual Basic和Java,这些主流编程语言都有一个地理上的共性:诞生在美国。但是,美国绝不是编程语言唯一的发源地,欧洲的发展成就也不容小觑,像Algol、Simula和Pascal这样的编程语言,虽然没有在商业上大获成功,却有重要的学术意义。美国人似乎在设计编程语言时融入了工程学思想,采取折中的方式解决计算机应用方面的实际问题。相比之下,欧洲人在设计语言方面更偏重学术理论,美国人则更重视经济效应。
第7章 属于自己的计算机:PC产业的起步及Word的故事  121
最初,这一创新带来的结果便是20世纪50年代房间大小的计算机被70年代中期面包盒大小的微型计算机的所取代。早期的微型计算机使用方便,和50年代的大怪物计算机一样,使用了相同的编程。对那些早期电子发烧友来说,研发微型计算机的过程是痛苦的,但同样也是令人振奋的。这群电子迷是一个关系密切、互帮互助的小团体,他们在小机器上试运行一些程序,主要是一些简单的游戏程序。这项工作并没有什么赚头,但是,随着芯片功能的日趋强大,这些廉价的机器显然不只是些玩具了。它们能做真正的计算机才可以做的工作,这也就潜在地让普通人拥有了掌握计算机运算的能力。随后的个人计算机革命在很大程度上都应该归功于这种企业家精神和计算机科学的合二为一。
第8章 服务于大众的计算机:从Gooey到Macintosh的漫漫长路  148
Apple II是个人计算机发展的第一道曙光。它的前景远远超出了当时书呆子式的、业余爱好者的机器――主要是装有微处理器的希斯套件;其中大多数具备高中水平工业艺术项目所需要的视觉吸引力。与之相反,Apple II则具有引人注目的塑料外壳,是精益求精的苹果公司创始人之一史蒂夫?乔布斯对计算机美学的早期致敬。而令人惊叹的计算机内部配置――为达最佳性能而精心挑选、排列的芯片――显示出了另一创始人斯蒂芬?沃兹尼亚克的非凡工艺。赫兹菲尔德越深入研究Apple II,越觉得惊叹不已。正如赫兹菲尔德所看到的,Apple II的工程设计拥有个性,是个独立的个体,甚至带有一丝调皮――一种叛逆的精神。他回忆说:“这是一台真正的计算机,但绝不仅限于用来更快地处理数据。”赫兹菲尔德在Apple II的身上看到了他所追求的未来:编写程序,使个人计算机更加普及、实用并能为普通的计算机用户带来乐趣。
第9章 为每一个人编程:让用户自己动手  169
尽管众多软件开发人员一直在努力,但迄今为止,仍然没有任何编程语言能够帮助普通计算机用户跨越与计算机专业人士之间的鸿沟。多年来,从FORTRAN和COBOL到Visual Basic和Java,进步巨大,这使编程向更多的计算机业内人士敞开了大门,但却始终未能实现让普通用户自己编写程序的承诺。其他行业有一些值得借鉴的例子。电话服务刚刚扩展到社区的时候,一通长途电话至少需要经由两名接线员才能接通。全国范围内的电话服务所需要的人数更是无以计数。长途电话的普及看似毫无希望,但是随着信息交换技术的发展和其他科技的进步,出现了直拨电话技术。这使得原先由专业人员操作的劳动密集型工作全部自动化了。实际上,直拨把每个人都变成了接线员。
第10章 Java:杂乱中诞生的新语言  193
  要想真正把事情搞得一塌糊涂,还得依靠计算机。
  这是我真正见到计算机之前看到的一句话。
  后来,我学习了BASIC、FORTRAN、C和其他一些语言,也写过一些大大小小的程序。我曾为调试程序苦思冥想,也曾为自己的“作品”沾沾自喜,却从未认真想过这些编写程序的程序从何而来。那些创造出如此美妙东西的,该是怎样神奇的人?
  所以,当我看到这本介绍软件发展史的书时,它立刻就引起了我的兴趣。
  本书不但详细介绍了计算机各个发展阶段中主流软件的产生过程,而且讲述了很多鲜为人知的故事。特别值得一提的是,书中讲述了众多人物的故事,其中不乏一些大名鼎鼎的业界传奇人物,当然也有不少不为人知的“无名小卒”。但他们都是创造了软件历史的人,都是值得我们尊重的人。
  作者史蒂夫·洛尔曾是《纽约时报》的技术、商业和经济专栏作家。为撰写本书,他进行了大量调查、研究和走访。本书英文版于2001年由Basic Books首次出版。
  由于译者水平有限,书中难免有错误和疏漏之处,欢迎读者批评指正。我的邮箱:.cn。
  “本书语言流畅细腻,读起来如沐春风。它犹如一部波澜壮阔的计算机史诗,讲述了软件革命的恢弘历史,以及中流砥柱们的光辉事迹。故事并不是断断续续的,因为作者采用了微型传记的形式……他把历史写成了优美的散文,生动迷人又严谨有度。”
  ――David Gelernter,《纽约时报》
  “这是一本给人启迪的著作,完美地展现了想象力的巨大力量。如果你想象得到,并把它编成代码,那么一定能够改变世界!”
  ――Boston Sunday Globe
  “本书把难懂的技术概念讲解得通俗易懂。对于那些对计算机内在结构好奇的人,这是一本能让其豁然开朗的好书。计算机科学界的前辈John McCarthy曾向作者抱怨过新闻记者的无知,本书就是作者对此作出的回应……与计算机行业相关的所有新闻记者都应该读一读这本书。”
  ――《纽约时报书评》
  “这不是一本通常意义上的书,而是一部史诗。它讲述的不是技术,而是那些设计编程语言和计算机软件的名人的故事……本书内容清晰易懂,简明扼要。软件工程让程序员不需要材料和工具也能有所创造,他们为此兴奋不已。他们能够凭空创造新的事物,唯一的限制就是自己的想象力。”
  ――《国际先驱论坛报》
  “如果本书作者是一名程序员,那么他写的代码一定清晰有序,不需要复杂的结构或者奇怪的快捷方式就能跳转到正确的子程序上;他的写作风格也是如此。本书化繁为简,让读者与数学专家、桥牌高手、象棋大师、特立独行的科学家、批判传统观念的人,以及掀起软件革命的程序员们进行了一次愉悦的会面。”
  ――《新闻周刊》
  “本书展现了技术缔造者们面对的挑战,是本旷世杰作。”
  ――《自然》周刊
  引言:软件和编程艺术的兴起
  秋高气爽的黄昏,凭窗远眺,华盛顿湖碧波荡漾,一叶孤舟划过,泛起层层涟漪。远处的地平线上,依稀可见西雅图市的轮廓。这就是从查尔斯?西蒙尼位于华盛顿湖畔的家中看到的景象。1966年,这位年仅17岁的电脑编程奇才离开了匈牙利首都布达佩斯,远走他乡,从此开始了非凡的人生历程。他这幢房子依山傍水,占地1800多平方米,配有图书馆、计算机实验室、健身中心和游泳池。不过,从公路上几乎完全看不到。整套房子从内到外都由玻璃、木头和钢材建造而成,堪称现代主义的典范。黑色的磨光石地板闪闪发光,访客需要换鞋方可进入。墙上仅挂了几幅洛伊?李奇登斯坦、贾斯培?琼斯和维克托?瓦萨雷里的现代主义画作。除了这些艺术品,西蒙尼还收藏喷气式飞机。他收藏了两架飞机,其中包括他驾驶过的一架已经退役的北约战斗机。此外,他慷慨大方,曾捐赠数百万美元支持高校科研,牛津大学因此设立了一个以他的名字命名的教授席位,普林斯顿高级研究院还将他的名字刻在了数学系大楼上。年少的西蒙尼逃离匈牙利时一无所有,但是现在,已是亿万富翁的他却视金钱为无物。他说:“我现在已经不再为了逐利而做事。”[1]
  谈起他所取得的成绩,西蒙尼把这一切都归功于软件业的兴起,以及他在编写计算机代码方面的天赋异禀,当然,还有机遇、运气以及资本市场的反复无常。他的职业生涯始于20世纪60年代中期,那时他在匈牙利中央统计局工作,有点像美国青少年电脑黑客。他涉猎广泛,不断充实自己,自学了如何在俄制的Ural II电脑上进行编程。论计算机发展水平,布达佩斯还处于20世纪50年代早期的技术水平,比西方落后了几十年。多年来,软件不断发展,编程人员的视线不再局限于二进制数字或数位――机器语言0和1。但是,西蒙尼尝试用纯粹的机器语言与计算机对话。“那是编程的石器时代,”他回忆道,“我穿越了时间隧道。”
  移民美国后,西蒙尼就把他的名字卡罗利改为了查尔斯。他先后进入加州大学伯克利分校和斯坦福大学学习,毕业后就职于施乐公司帕洛阿尔托研究中心(Xerox PARC)。那时正值20世纪70年代的黄金时期,他们的团队进行了大量的研究和开发工作,正是这些工作使人们使用个人电脑的方式初具雏形。在施乐帕洛阿尔托研究中心,西蒙尼是Bravo最重要的开发者。Bravo是一种全新的书写和文本编辑程序,可以在电脑屏幕上显示单词,就像熟练的排字工捡字那样。这就是后来广为人知的“所见即所得”(WYSIWYG,What You See Is What You Get)功能,它开启了桌面出版(desktop publishing)的大门,个人电脑从而成为提高个体创造力的工具。
  但是,施乐公司并没有真正意识到帕洛阿尔托实验室工作的重要性。西蒙尼看透了这一点,并开始另谋高就。1980年夏季,他低调地拜访了西雅图城外一家在个人电脑行业初出茅庐的小公司――微软。虽然公司刚刚起步,仅有40名员工,但在这里,西蒙尼看到了希望。他和比尔?盖茨一见如故,于是加入了微软。
  微软的Word文本编辑器如今已是世界上使用最广泛的软件程序之一,它是Bravo的商业化产物,西蒙尼则是当之无愧的“Word之父”。在他看来,个人电脑只是软件的传递载体,给用户很大帮助,并使编程人员如虎添翼。“写下几行代码,瞬间就能改变亿万人的生活,”他说,“这就是软件。”[2]
  从微软退休前的最后几年中,西蒙尼一直致力于一个重要的研发项目,旨在大大提高计算机编程人员的生产力。他认为编程人员目前使用的工具和方法依然过于原始,限制了人类智力在软件开发过程中的发挥,从而阻碍了软件业的发展。尽管如此,西蒙尼还是对软件的兴起赞叹不已:“这表明软件的力量强大无比。即使用现有的简单工具,软件也能做那么多事,这太神奇了!”
  战后,软件业作为一个探索领域、一个行业以及通信与商业之间的媒介,取得了令人瞩目的迅速发展,而这一切几乎都发生得悄无声息。计算机编程的起源至少可追溯到19世纪。当时英国数学家查尔斯?巴贝奇正致力于解决分析机的计算问题;分析机是现代计算机概念化的雏形。今天,我们可以将其所做的事情称为编程。编程中最基本的概念是算法,即执行某种操作的一组指令,或者说是计算的方法。追根溯源的话,算法(algorithm)最早出现在巴比伦[3],而algorithm这个词则是对波斯学者Muhammad ibn Musa al-Khwarizmi[4]姓氏的讹传,他写过一篇关于代数方法的专著。
  但是,在第二次世界大战之前,电子技术还不够先进,人们尚未开发出有用的计算机。早期的编程只是后期任务的附属工作,更像是技术人员烦琐的劳动,通常被认为是机器的“设置”或“编码”。真正吸引人的是硬件,因为它被认为是真正的科学和工程。人们普遍认为,电子数字集成器和计算器,即ENIAC(Electronic Numerical Integrator and Computer),才是开启数字电子计算时代的关键所在。其实,这台存放于宾夕法尼亚大学的机器只是一台裸机。操作人员必须对这台机器进行手动设置,插拔那些让人眼花缭乱的线缆,并把一排一排的开关放到正确的位置。每解决一个新问题似乎都要重建机器,因为它采用的是硬接线方式。为此,当局雇用了一些具备数学技能的年轻女士,并对她们进行了培训。这些女性程序员称为“计算员”(computer),这个词可追溯至18世纪,专门指那些为绘制地图或航海图而编制统计表的计算者。
  对ENIAC进行编程,使其计算出火炮的弹道轨迹,这是一项艰难的工作,但却是美国国防部指定的任务。为此,这些女程序员想出了一些技巧来简化流程。她们先在纸上画出详尽的图表,并标出在这台机器上可以解决问题的最有效方法。然后,她们再对机器进行手动设置。珍?巴蒂克这样回忆道[5]:“我们清楚地知道如何设置每一条线和每一个开关。”这种操作可能会花费好几个星期的时间。不过,正是由于她们的努力,ENIAC的公开演示才获得了巨大成功:一条炮弹轨迹用很短的时间就能计算出来,比炮弹本身的飞行速度还快。巴蒂克回忆道:“那简直棒极了,是我一生中最激动的一天。”[6]当时已是战后,1946年的春天。
  对于新兴职业的从业者来说,他们的职业称谓变化很快。人工的“计算员”(computer)变成了“编码员”(coder),然后,这个平淡无奇的称谓又被“程序员”(programmer)势不可当地取代了。事实上,这是英国从业者的贡献。很明显,新称谓听起来更有身份,也更具文学气息。葛丽丝?霍普是软件方面的领军人物,于1944年开始在哈佛Mark I上从事战备方程式的计算。她一直认为,用“编程”(programming)这个词来形容初期的工作过于高尚。“直到从英国传过来,‘程序员’这个词才开始广泛使用。”她回忆道,“事实上,我认为,书写机器代码的过程就是编码,我们应该留着‘编程’这个词来描述更高一级的工作。但是,它是从英国传过来的,而且比编码员要好听得多,于是每个人都想被称为程序员。”[7]
  由于计算机设计上的突破,更高一级的编程很快就成为现实。这个想法最初源于ENIAC工作团队,随后,1945年6月发表的由约翰?冯?诺依曼撰写的文章“关于EDVAC的报告初稿”(A First Draft of a Report on the EDVAC)对其进行了详尽的阐述。作为著名的数学家和博弈理论家,冯?诺依曼受聘担任原子弹开发项目“曼哈顿计划”的顾问。原子弹的设计需要成千上万次的计算,当时主要是由大量计算员借助台式计算机来完成的。计算机的潜力引起了冯?诺依曼的兴趣,于是他在1944年成为了ENIAC项目的顾问。后来,在ENIAC的基础之上,经过改进,又有了EDVAC(Electronic Discrete Variable Automatic Computer),即电子离散型变量自动计算机。除了冯?诺依曼,还有很多人参与设计了EDVAC,其中最为著名的便是ENIAC项目负责人J. 普雷斯普尔?埃克特和约翰?莫克利,但由于最终负责撰写报告的是冯?诺依曼,因此他获得了设计“存储程序式计算机”的殊荣。这种设计思路就是后来广为人知的冯?诺依曼架构。事实上,现在所有的计算机使用的都是冯?诺依曼架构。
  第二次世界大战后,早期的存储程序式计算机才真正开始出现。存储程序的理念在于,不仅计算机的数据――当时用于计算的主要是数字――而且程序指令也会存储在机器中。从某种程度上来说,这无疑能够提高效率,并能实现计算自动化。由于程序指令可以设置到打孔卡片或纸带上,与将要处理的数据一起存入计算机中,所以,再也不用手动设置开关和线缆了。
  然而,存储程序这个概念还有更深刻的含义。用计算机科学家巴特勒?兰普森的话来说,它使软件构建成为了一门“独特的自引用”[8]工程学科,因为所有的计算机制都可以应用在自身中。也就是说,存储程序式计算机可使程序修改其他程序或创建新的程序。正是有了这种以计算机为中介的编程交互方式,如今的计算机编程语言才远远超越二进制0和1的组合,更易于人类理解。这种编程交互方式相当于计算机内部的数字生态环境:一段代码迅速跳到进程外去修改其他代码,而后者又会循环回来与其他代码混合。无论是电脑游戏、互联网,还是人工智能,所有这一切都源于代码的这种组合、重组以及持续地自我修正的能力。
  早期存储程序式计算机的开发人员最早体会到了编程的复杂性,而且这种复杂性常常是无法预料的。剑桥大学的莫里斯?威尔克斯率领的团队制造了第一台存储程序式计算机,并投入运行。这台机器称为EDSAC(Electronic Delay Storage Automatic Calculator,电子延时存储自动计算器)。在回忆录中,威尔克斯还清楚地回忆起第一次认识到bug注定是程序员的克星时的情景。他这样写道:“到了1949年6月,人们已经意识到,要得到正确无误的程序并不像看起来那么容易。”[9]当时,威尔克斯正在研究他的第一个“重大项目”,而当他在剑桥大学的事业更上一层楼时,他回忆道:“我突然强烈地意识到,我接下来的时间都要花费在寻找程序的bug上了。”
同类热销商品¥39.00¥27.30
订单处理配送
北京奥维博世图书发行有限公司 china-pub,All Rights Reserved

我要回帖

更多关于 南京的连锁书店有哪些 的文章

 

随机推荐