<一>
你不会有那美丽的相逢,除非之前,你能忍受等待的孤独.
你不会有那明朗的清晨,除非之前,你的睡梦能忍受黑夜的迷雾。
你也不会赢得任何东西,除非你敢于投下赌注.
赌注,生命的赌注,就是你的脚步!
但是你不会找到路,除非你敢于迷路.
因为,只有让你迷路的地方,才是你真正的出路!
<二>
有多少次此刻的离别,就有多少次彼时的相逢.
有多少次此刻的酒醉,就有多少次彼时的痛醒.
...
[阅读全文]
已有 0 人发表留言,猛击->>这里<<-参与讨论
JavaEye推荐
posted @
2008-04-27 08:07 justjavac(迷渡) 阅读(73) |
评论 (0) |
编辑 收藏
一、引子
话说十年前,有一个暴发户,他家有三辆汽车——Benz奔驰、Bmw宝马、Audi奥迪,还雇了司机为他开车。不过,暴发户坐车时总是怪怪的:上Benz 车后跟司机说“开奔驰车!”,坐上Bmw后他说“开宝马车!”,坐上Audi说“开奥迪车!”。你一定说:这人有病!直接说开车不就行了?!
而当把这个暴发户的行为放到我们程序设计中来时,会发现这是一个普遍存在的现象。幸运的是,这种有病的现象在OO(面向对象)语言中可以避免了。下面就以 Java语言为基础来引入我们本 ...
[阅读全文]
已有 3 人发表留言,猛击->>这里<<-参与讨论
JavaEye推荐
posted @
2008-04-09 20:43 justjavac(迷渡) 阅读(65) |
评论 (0) |
编辑 收藏
写道 一只壁虎迷了路,这时正好有一条大鳄鱼远远地爬了过来,准备要一口吃掉它,情急之下,小壁虎上前一把抱住了鳄鱼的腿,大声喊:"妈妈!"大鳄鱼一愣,立即老泪纵横:"儿啊,才做半个月程序员,咋就瘦成这样了........
[阅读全文]
已有 3 人发表留言,猛击->>这里<<-参与讨论
JavaEye推荐
posted @
2008-04-05 07:27 justjavac(迷渡) 阅读(48) |
评论 (0) |
编辑 收藏
网站:
JavaEye
作者:
justjavac
链接:
http://justjavac.javaeye.com/blog/169718
发表时间: 2008年03月10日
声明:本文系JavaEye网站发布的原创博客文章,未经作者书面许可,严禁任何网站转载本文,否则必将追究法律责任!
菲利普·卡兹 2000年4月14日,在美国威斯康星州密尔沃基的一家汽车旅馆里,人们发现了一具年轻人的尸体,检查得知这个人的死因是酗酒、饮酒过量导致的死亡。死者被发现的时候,手中还握着一个空酒瓶,房间中还有五个空酒瓶。这样一个酒徒的死也许在平时只是地方小报上的一条不起眼的新闻,但这个人的死却在互联网上掀起了轩然大波。无数人在网上发表评论与文章,纪念他的离开,寄托人们的哀思,因为他不是一个普通人,他叫菲利普·卡兹(Philip Katz),几乎全世界的每一台个人电脑上都有用他创造的压缩算法生成的文档,这种文档的后缀是“.zip”,这些文档的的开头都嵌有他姓名的字头缩写字母‘PK’。这位在全世界的电脑中留下痕迹的天才程序员终年仅37岁。
在DOS时代就开始使用电脑的玩家可能都会记得,那时候的处理器速度与存储介质的容量与现在相比简直不可同日而语,为了COPY(拷贝)一个游戏我们常常要更换数张软盘。从那个时候起,我们认识了ZIP文件,在没有Windows的年代,使用字符界面和命令行方式压缩的程序主要有PKZIP和ARJ两种,直到过渡到Windows时代,WinZip的出现才使压缩软件的规格得到了统一。互联网上无数的文件都以“.zip”的格式进行存储,压缩文件使用户能在最短的时间里将文件从网上下载回自己的硬盘中,在没有宽带,连MODEM都仅仅是14.4K的速率的那个年代,ZIP文件为我们节省了大量的宝贵时间与金钱。但很少有人知道ZIP文件的由来,很少知道它的创造者菲利普·卡兹。
在14年前,也就是公元1988年,那时候互联网还刚刚开始有了雏形,而最流行的是一种使用电话线拨号登陆别人在家里搭建的服务平台——交换信息的电子公告牌(BBS)系统。这种系统有些类似现在的论坛和新闻组,由于站长之间互相转信也成为了一个庞大的信息网络(惠多网)。老一点的玩家可能都有印象,在没有Internet的年代,中国大地上也曾有几十个这样的BBS存在,著名的字处理软件WPS的作者求伯君和CCED的作者朱崇君当年都是非常有名的个人站长。这种方式不但可以传递文本信息,也可以由用户上传文件到站点的计算机以供其他用户下载。由于电话线的接入速度慢的可怜,通过BBS传输较大文件实在是叫人痛苦的一件事。于是,使用文件压缩技术减小文件的体积并将多个文件压缩到一个封包中就成为了BBS用户的一项必须掌握的技巧。当时的美国BBS 上,比较流行的是一种叫做ARC的压缩技术,由于它是一家商业公司开发的压缩技术,使用这种软件进行工作是需要付费的。那时候的菲利普·卡兹是一个沉迷于 BBS上的毛头小伙,由于经常混迹于BBS上,对于ARC的收费非常不满的他自己开发了一个程序叫PKARC,这个程序于ARC完全兼容,可以压缩和解压缩ARC文件。这样一来,大批的ARC用户自然转而使用菲利普·卡兹的免费软件。ARC的制作公司一怒之下将菲利普·卡兹告上了法庭,法庭自然判决菲利普 ·卡兹禁止继续开发和传播PKARC。这种判决并没有磨灭菲利普·卡兹的斗志,而是激起了他要与ARC斗争到底的决心。在虚拟的世界中,自由、平等永远是真正的程序员永久的追求。他放弃了PKARC的开发,发誓要写出一款比ARC更好的压缩软件来打败ARC。这一场官司造就了一名编程天才的横空出世,也造就了一个后来在互联网时代的文件标准。几周以后,后来统治整个BBS世界乃至Internet世界的ZIP在菲利普·卡兹手中发出了第一声响亮的啼哭!
不名则已,一鸣惊人,这种名为PKZIP的程序可以将一个或多个文件压缩到一个后缀为“.zip”的文件中,无论从压缩比、压缩速度方面都超过了商业软件 ARC。卡兹将PKZIP作为自由软件免费发放,使其如同草原上的星星之火般在全美的各大BBS上蔓延开来,用户以几何级数的增长,各大BBS的站长自发将原来使用ARC格式压缩的文件转换成ZIP格式,卡兹用他天才的头脑和顽强的毅力堂堂正正的击败了ARC,ARC的制作公司在PKZIP的强大攻势下很快就消声匿迹了。用自由软件打败商业公司的传奇故事很快传遍了整个BBS世界,疾恶如仇而又身手不凡的菲利普·卡兹如同数字世界的大侠般仗剑江湖,劫富济贫,以一人之力擎起了压缩软件的大旗。这段被人们津津乐道的传奇故事使菲利普·卡兹成为了很多热衷于编程的年轻人心中的偶像。此后卡兹一直继续着对 PKZIP的开发和维护工作,PKZIP建立和统治了DOS时代的压缩标准。直到Windows的诞生,使用卡兹创造的压缩算法的软件Winzip的出现更使ZIP格式成为Internet的传输标准,ZIP压缩格式也成为压缩文档的事实标准。试问当今的电脑用户,谁敢说自己的电脑中没有ZIP文件?
可惜,这位天才程序员却从未在ZIP身上得到半点好处,坚持信念的结果往往是潦倒的生活,糟糕的个人生活和长期编写软件的巨大压力使卡兹染上了酗酒的恶习,最终断送了他那年轻的生命。他为世界贡献了一个伟大的免费软件,更为重要的是他缔造了一种大众化的压缩格式,然而却过早地离开了这个世界。他的名字也许多年后会被人们忘怀,但他创造的ZIP将在网上生生不息的流传,他的名字缩写嵌在了全世界数以千万的电脑中,他的传奇故事将永远流传……
本文的讨论也很精彩,浏览讨论>>
JavaEye推荐
中国领先的电子商务网站-淘宝网招贤纳士,诚聘Java工程师
文章来源:
http://justjavac.javaeye.com/blog/169718
posted @
2008-03-15 10:04 justjavac(迷渡) 阅读(757) |
评论 (0) |
编辑 收藏
网站:
JavaEye
作者:
justjavac
链接:
http://justjavac.javaeye.com/blog/169737
发表时间: 2008年03月10日
声明:本文系JavaEye网站发布的原创博客文章,未经作者书面许可,严禁任何网站转载本文,否则必将追究法律责任!
1.公元1998年在我讀高二那年,那还是我用Windows 98的时候有次我系统崩溃了,
因为我那时还是个电脑白痴,我同学帮我介绍了一个电脑高手来帮我修电脑。
他看了一下电脑,问我有没有Windows 98 的光盘?,我说没有。
他想了一下,叫我把家里电话拿给他,我心里想说修电脑要电话干什么?
但人家是电脑高手,我也不好意思说什么,就把电话拔下来给他了。
他把 电话线空着的一头接在主机版的一个插孔内 ,然后进入了 DOS ,
然后就开始在电话上不停的按着键,他按键的速度非常快,但是他都只按电话的0,1两个键。
我搞不懂这有什么用?但也不敢问,看了半个多小时,他还是不停的按这两个键,
我渐渐的有些困,我问他这东西要搞多久?他说还要几个小时,我给他倒了杯咖啡,
就一个人去隔壁书房睡觉了。
醒来的时候,一看已经过了5个多小时,我起身到隔壁,看见他正在 Windows 98 里面调试,
过了一会儿,他说,你试试,我坐上椅子用了一下,真的好了,我当时也不懂电脑,
谢过人家就走了。
后来我慢慢对电脑有了一些概念才了解到,
原来当时那位电脑高手是使用机器语言 编了一个Windows 98系统
从我给他的电话直接输入到硬盘,
我后来问我同学那位高手的下落,我同学说前几年去了 美国 之后,杳无音讯....
2.公元2000年在我讀大一那年,那还是我用Windows Me的时候有次我系统崩溃了,
因为我那时还是个电脑入门,我朋友帮我介绍了一个电脑高手来帮我修电脑。
他看了一下电脑,问我有没有Windows Me 的安装盘?我说没有。
他想了一下,叫我把一张 空的DVD刻录盘和一根奈米细针 拿给他,
我心里想说修电脑要刻录盘和奈米细针干什么?但人家是电脑高手,我也不好意思说什么,
於是我就把DVD刻录盘拿一张来给他了。
他把奈米细针头对着刻录盘戳,他戳的速度非常快,但是只戳深或浅,
我搞不懂这有什么用?但也不敢问,看了半个多小时,他还是不停的戳着DVD刻录盘,
我渐渐的有些困,我问他这东西要搞多久?他说要几个小时,我给他倒了杯 葡萄酒 ,
就一个人去隔壁客厅沙发上睡觉了。
醒来的时候,一看已经过了6个多小时,我起身到隔壁,看见他正在 Windows Me 里面调试,
还装上了 Office、Photoshop、迅雷、魔兽世界 等软件……过了一会儿他说,
你试试,我坐上椅子用了一下,真的好了,我当时也不懂电脑,谢过人家就走了。
后来我慢慢对电脑有了一些基础,终于明白了,
原来当时那位电脑高手是用 奈米细针头刻了一个单面双层的DVD ,在里面刻上了Windows Me、Office、
Photoshop、魔兽世界的安装程序 ,我后来问我朋友那位高手的下落,
我朋友说前几年去了 法国 之后,杳无音讯....
3.公元2001年在我讀大二那年,那还是我用Windows XP的时候有次我不小心把D盘格式化了,
因为我那时还是个电脑新手,我亲戚帮我介绍了一个电脑高手来帮我的电脑D盘恢复数据。
他看了一下电脑,问我有没有Windows XP备份过的Ghost? 我说没有。
他想了一下, 叫我把一块奈米强力磁铁棒拿给他,还问我D盘里有什么东西?
我心里想说修电脑要奈米强力磁铁棒干什么?
但人家是电脑高手,我也不好意思说什么,就把奈米强力磁铁棒给他了,
还告诉他我的D盘里面全是火影忍者的动画。
他把整颗硬盘拆了,用奈米强力磁铁棒在盘子上面画圈圈,他画圈圈的速度非常快,
但是他的奈米强力磁铁棒好像有碰到又好像没有碰到,我搞不懂这有什么用?但也不敢问,
看了半个多小时,他还是不停的在硬盘上画着圈,我渐渐的有些困,
我问他这东西要搞多久?他说要几个小时,我给他倒了杯 蘇格蘭威士忌 ,
就一个人去隔壁房间睡觉了。
醒来的时候,一看已经过了7个多小时,我起身到隔壁,看见他正在D盘里面调试,
里面全是 火影忍者的动画片 ,过了一会儿,他说,
你试试,我坐上椅子用了一下,真的好了,我当时也不懂电脑,谢过人家就走了。
后来我慢慢对电脑有了一些体会,终于体悟到,
原来当时那位电脑高手是 用奈米强力磁铁棒直接在硬盘上写数据 ,
他凭着惊人的记忆力将他曾经看过的火影忍者动画片数据都写入了硬盘,我后来问我亲戚那位电脑高手的下落,
我亲戚说他前几年去了 英国 之后,杳无音讯....
4.就在最近,我刚装上的Vista突然自己崩溃了
就在最近,我刚装上的Vista突然自己崩溃了,虽然我会写很多程序,但是Vista崩溃了我也没
有办法,我朋友给我介绍了一个高手来帮我修电脑。
他看了一下电脑,问我有没有Vista的安装盘 ,我说没有。
他想了一下,叫我拿一根没用的网线和一把剪刀,我想修电脑要网线和剪刀干什么,但人家
是高手,我也不好说什么,就拿了一根没用的网线和一把剪刀 给他。
他把网线一头戳到网卡上,剪断另外一头,然后就在哪里不停的拨弄那八根线。他拨弄的速
度非常快,但是拨弄得线总是不一样,我搞不懂这有什么用,但也不敢问,看了半个多小
时,他还是不停的拨弄着网线。我渐渐的有些困,我问他这东西要搞多久,他说要几个小
时,我给他倒了杯 茶 ,就一个人去隔壁睡觉了。
醒来的时候,一看已经过了4个多小时,我起身到隔壁,看见他正在 Vista 里面调试,还装给
装好了 Visual Studio 2005 Team Suit、Ms SqlServer 2005 Enterprise Edition、BT ,还边
下载边看 American片 ……过了一会儿,他惊觉我站在后面,不好意思地对我说,你试试。我
坐上椅子用了一下,真的好了,我当时太震惊了,整个人傻在哪里,谢过人家就走了。
后来我读到了前面那两篇文章,终于醒悟,原来当时那位高手是 用网线模拟网络启动,下载
了整个Vista,还有 Visual Studio 2005 Team Suit、Ms SqlServer 2005 Enterprise Edition、
BT,以及他正在看的 American片 ,我后来问我朋友那位高手的下落,我朋友说前几年去了
美国 之后,杳无音讯了十几年,期间也回过中国两次,最近这一次回来说,干这个太没意思
了,回来收拾收拾准备去 阿尔法半人马座 ,他说他也听不懂那高手说什么,只是最近传闻 微
软的Vista 全世界都无法激活,估计跟他的离去有关,当然了,这几天也是杳无音讯....
本文的讨论也很精彩,浏览讨论>>
JavaEye推荐
中国领先的电子商务网站-淘宝网招贤纳士,诚聘Java工程师
文章来源:
http://justjavac.javaeye.com/blog/169737
posted @
2008-03-15 10:04 justjavac(迷渡) 阅读(98) |
评论 (0) |
编辑 收藏
网站:
JavaEye
作者:
justjavac
链接:
http://justjavac.javaeye.com/blog/170045
发表时间: 2008年03月11日
声明:本文系JavaEye网站发布的原创博客文章,未经作者书面许可,严禁任何网站转载本文,否则必将追究法律责任!
在一家又一家注定要倒闭的dot-com公司工作过之后,一位名叫Bram Cohen的年轻程序员最终厌倦了这种失败的生活。
“最终我认为我想做一些人们会实际用到的、有用的并且有趣的项目。”他回忆到。
3年后,28岁的Cohen成为了下一波互联网文件共享风潮的掌门人。如果说Napster是文件交换的第一浪,像Kazaa这样的文件交换网络则代表了第二浪。那么,由Cohen开发的BitTorrent将会引领文件交换的第三浪——目前BitTorrent实际的用户难以估量,但是BitTorrent这个软件至少被下载了超过1000万次。
在早期形式的文件交换网络被唱片业穷追猛打以致步向衰落的同时,像BitTorrent这样的新技术的出现,使得用于视频的大文件的共享和分发变得更加容易。例如,光是suprnova.org这样的一个网站,就能提供上百套电视节目、最新电影以及版权软件。这甚至令到一向在打击互联网文件交换中不太积极的电影工业也开始提高警惕。
然而,Cohen对他所创造的这个系统早已经失去了控制。他表示,当他开发这个系统的时候,大规模的侵犯版权问题是他没有想到的。相反,他开发这个系统的初衷,是为了使人们在购买合法在线音乐时,不需要再经历那漫长的等待。“很明显,他们的问题在于没有足够的带宽来满足人们的需要。”Cohen在接受采访时称,“我很清楚,实际上有很多的带宽摆在那里,但是它没有被恰当的使用。还有许多上传容量是人们没用到的。”
这就是BitTorrent背后的本质。在像Napster和Kazaa这样旧有的文件共享系统下,实际上只有一小部分人把文件向世人分享,大部分用户都只是简单地下载。然而BitTorrent则使用了所谓的Golden Rule原理:你上传的速度越快,你下载的速度就越快。BitTorrent把文件分割成许多小块,当一个用户下载了某一小块时,它就会立即把这一小块上传给其它用户。因此,所有的用户在下载的同时,也在把自己已下载部分上传给他人。BitTorrent的这种工作原理,使得做“种子”的用户只需少许带宽,就可以把大文件共享给大量的下载者。
BitTorrent对于Cohen来说,一直是一种脑力训练而不是一种赚钱的途径。不像其它文件交换程序,BitTorrent不但是免费的,而且还是开源的。这意味着只要有足够能力,你完全可以把BitTorrent融入到你自己的程序里面。
BitTorrent的第一个可用版本出现在2002年10月,不过这个版本还有许多要改进的地方。然而,Cohen此时却在为生计发愁。幸运的是,BitTorrent引起了著名免费软件企业家John Gilmore的注意。Gilmore帮助Cohen解决了部分的生活费用,使得BitTorrent免遭夭折。
BitTorrent真正流行起来是在2003年初,它被用来发布一个新版的Linux。与此同时,还有一些日本卡通的fans凭籍它来共享动画片。
很难衡量BitTorrent的总体使用情况。但是Internet2主干网基础构造的主管Steven C. Corbato表示,他在去年5月份开始就注意到,BitTorrent的流量开始激增。从10月份开始,BitTorrent的流量更是超过了这个超高速网络总体流量的10%。与之对比,其它的文件交换系统的流量没有一个能超过Internet2总体流量的1%。Internet2又称Abilene主干,它连接起了美国200多所规模最大的大学,速度比现时的ADSL要快3500多倍。
尽管BitTorrent获得了如此巨大的成功,然而直到几个月前,它并没有为Cohen带来过一分钱。“去年9月份我没有一丁点钱,”Cohen回忆到,他当时只好利用这张信用卡的免息期来透支,填补另一张信用卡的帐单来过活。
Cohen那时并不知道,BitTorrent会为他带来一份工作。某天,他的事情为Valve软件公司的常务董事Gabe Newell所获悉。尽管Valve正在开发令游戏玩家望眼欲穿的Half-Life 2,但是它同时也在建立一个名为Steam的在线分发网络。由于Cohen掌握这个领域的专门技术,所以Valve为他提供了一个职位。Cohen从十月份起搬到西雅图,开始了他的工作。
一直以来,Cohen都有通过他的网站bitconjurer.org来接受BitTorrent用户的捐款,但是这笔金额一直很少。然而从10月份开始,Cohen父亲鼓励他请求的更直接一点。如今,Cohen称,他每天都能收到上百美元的捐款。
“在过去的几个月,我的生活方式发生了相当戏剧性的变化,获得工作还有捐款的到来,”Cohen说,“这好极了。”
根据Pew Internet和American Life Project的调查数据显示,文件交换正在衰落,这显然是唱片业起诉运动的结果。在去年5月,29%美国的成年互联网用户表示他们参与了文件交换。而到了11月和12月份,这个数字已经跌到了14%。但是,BitTorrent的忠实用户——无论是卡通狂热爱好者、Linux用户、盗版电影的观赏者——似乎在不断增加。
BitTorrent的用户中有不少人对Cohen心怀感激,但是毫不奇怪,电影工业的圈内人不在此列。“BitTorrent决对是处在我们的雷达防线以内。”美国电影协会的主管Tom Temple在一次电话访问中表示。BitTorrent的迅猛普及,促使该协会开始向BitTorrent站点的管理人发出了侵权通知。
“我们正在调查大量的BitTorrent链接网站,在不久的将来我们可能会向某些站点提出民事或刑事起诉。”Temple称。
对此,Cohen指出,BitTorrent的用户是非匿名的,他们的互联网IP地址很容易就能被看到。“这令我很吃惊,像Suprnova这样的网站竟然能够继续生存,因为他们很容易就会被起诉。”Cohen称。Cohen还补充说,使用BitTorrent来进行非法交易,是“很愚蠢的,因为它不是匿名的。而且由于基层结构的关系,它也不能被改成匿名的。
这就是说,Cohen并不支持许多BitTorrent站点的做法。
“我不打算拿出傲慢的态度,告诉其它人不该怎么做,因为斥责他人的事情与我无关。”他说,“我是以那种找乐子的心态来看待这件事的。”
本文的讨论也很精彩,浏览讨论>>
JavaEye推荐
中国领先的电子商务网站-淘宝网招贤纳士,诚聘Java工程师
文章来源:
http://justjavac.javaeye.com/blog/170045
posted @
2008-03-15 10:04 justjavac(迷渡) 阅读(76) |
评论 (0) |
编辑 收藏
网站:
JavaEye
作者:
justjavac
链接:
http://justjavac.javaeye.com/blog/170048
发表时间: 2008年03月11日
声明:本文系JavaEye网站发布的原创博客文章,未经作者书面许可,严禁任何网站转载本文,否则必将追究法律责任!
Anders Hejlsberg,丹麦人,曾在丹麦科技大学学习工程学。Anders Hejlsberg第一次登上软件界历史舞台是在80年代早期,因为他为MS-DOS和CP/M设计了一个Pascal编译器。当时,还是一个小公司的Borland很快雇用了他,并买下了他的编译器,改称Turbo Pascal。在Borland,Hejlsberg继续开发Turbo Pascal,并最终带领他的小组设计了Turbo Pascal的替代品、开发工具史上的奇迹:Delphi语言。
1996年,Anders Hejlsberg在Delphi3发布前离开Borland去了MS。
在此之前,MS曾多次企图挖走Anders, 但都没有成功。据信anders去MS(主要)不是钱的问题,虽然MS的开价也相当有吸引力: 130万美元年薪外加股票期权和分红,总计超过300万美元。更主要的原因是Anders和Delphi开发组的其他成员在修改编译器的问题上发生了争执;还有,据Borland内部人讲,Anders认为自己不再是“不可缺少的人”。
Anders在Delphi3中几乎没有做什么工作,Chuck Jazdzewski扮演了一个更重要的角色。(--Anders Ohlsson) Anders在Borland时把所有精力都放在了Pascal产品上,也需要新的挑战,这时Bill Gates的亲自邀请,许诺给与挑战的机会,Anders加入了Microsoft就势在必行。
Microsoft 用丰厚的薪水、股票认购权和巨额的加盟奖金雇请了 Hejlsberg 之后,Borland 曾提出通过不正当手段吸收新成员的控告。Borland 还曾声称 — 提供了很少的细节来支持指控 — Hejlsberg 正在开发“Delphi for Java”。这场诉讼虽然最终以 Borland 的胜利而收场;但Anders 已经在为Microsoft工作了。
本文的讨论也很精彩,浏览讨论>>
JavaEye推荐
中国领先的电子商务网站-淘宝网招贤纳士,诚聘Java工程师
文章来源:
http://justjavac.javaeye.com/blog/170048
posted @
2008-03-15 10:04 justjavac(迷渡) 阅读(124) |
评论 (0) |
编辑 收藏
网站:
JavaEye
作者:
justjavac
链接:
http://justjavac.javaeye.com/blog/170051
发表时间: 2008年03月11日
声明:本文系JavaEye网站发布的原创博客文章,未经作者书面许可,严禁任何网站转载本文,否则必将追究法律责任!
40年前,一个寒冷的冬天,在加拿大一个村庄里,Gosling家的第一个男孩哇哇落地了。家人给他起了名字,叫James。谁也没有想到的是,长大之后,他成为了一个改变计算机语言的天才。
James Gosling从小就喜欢技术,爱鼓捣东西。12岁的时候,他用报废的电话机和电视机中的部件做了一台电子游戏机。附近农民的康拜因(联合收割机)出了问题也常常找他修理。14岁的时候,中学组织到附近大学参观,他记住了大学计算中心的门锁密码,从此开始偷偷地溜进计算中心,学习计算机编程。一年后,大学的天文系招他当了一名临时编程员,编写计算机程序来分析卫星天文数据。
80年代初,James Gosling获得博士学位后到IBM工作,设计IBM第一代工作站。当时,IBM的领导层并不看重工作站项目。失望之余,James Gosling跳槽到了Sun公司。他花了五年功夫领导开发的和OS2很类似的Sun NeWs窗口系统,尽管得到技术界的好评,却未能变成流行的产品。当时他还第一个用C实现的EMACS的所见即所得文本编辑器COSMACS。
在当今这个竞争激烈的软件开发时代,软件设计师一直在试图预测未来软件或者技术的发展趋势。在1990年,Sun公司成立了一个软件设计团队,其中除了James Gosling,还有Patrick Naughton和Mike Sheridan等人,他们合作的项目称为“绿色计划”。他们认为计算机技术发展的一个趋势是数字家电之间的通讯。James开始负责为设备和用户之间的交流创建一种能够实现网络交互的语言。随着大量的时间和金钱投入到“绿色计划”,他们创建了一种语言。这种语言一开始被叫做“Oak”,这个名字得自于Gosling想名字时看到了窗外的一棵橡树。但后来被改为了“Java”。并于1992年9月3日开始应用于Sun工作站的远程遥控。
1994年底,James Gosling参加了在硅谷召开的“技术、教育和设计大会”。他报着试一试的心情向与会者演示了Java的功能。他点击了网页上的一个静止的分子结构图标,一条命令通过互联网送到了几百英里外的网站,下载了一段Java小程序,在本地工作站上开始执行。在几秒钟时间里,原本静止的网页上,一个分子图像以三维动画的方式转了起来。
“哇!”James Gosling听到了全场观众的赞叹声。
不久后,硅谷最大的报纸《圣荷西信使报》在头版刊登了一篇专文,“为什么Sun认为一杯热咖啡能让你鼓足精神”。从文章见报开始,负责Java市场人员的电话响个不停。不久,全美的主要报刊杂志都刊登了Java的报道。
Java出名了!
到了2000年,Java已经成为世界上最流行的电脑语言。绿色小组当初设计Java是为了面向数字家庭,支持各种家电设备。他们没有想到的是,Java支持的计算模式,实际上就是互联网的模式。
对于Java语言的巨大成功,没有人比James Gosling 更加谦逊:“我从来没有想到Java技术将会这么火。当我的老板问我它将达到多少次下载时,我说 10,000 次。而他认为我太过乐观了。”
James Gosling现在是Sun公司的副总裁和合伙人。
本文的讨论也很精彩,浏览讨论>>
JavaEye推荐
中国领先的电子商务网站-淘宝网招贤纳士,诚聘Java工程师
文章来源:
http://justjavac.javaeye.com/blog/170051
posted @
2008-03-15 10:04 justjavac(迷渡) 阅读(88) |
评论 (0) |
编辑 收藏
网站:
JavaEye
作者:
justjavac
链接:
http://justjavac.javaeye.com/blog/170052
发表时间: 2008年03月11日
声明:本文系JavaEye网站发布的原创博客文章,未经作者书面许可,严禁任何网站转载本文,否则必将追究法律责任!
凡是学过一点计算机知识的人大概都知道“数据结构十算法= 程序”这一著名公式。提出这一公式并以此作为其一本专著的书名的瑞士计算机科学家尼克劳斯·沃思(Niklaus Wirth)由于发明了多种影响深远的程序设计语言,并提出结构化程序设计这一革命性概念而获得了1984年的图灵奖。他是至今惟一获此殊荣的瑞士学者。
沃思1934年2月15日生于瑞士北部离苏黎世不远的温特图尔(Winterthur),其父瓦尔特是一位地理学教授。沃思小时就喜欢动手动脑,组装飞机模型是他的最大爱好。中学毕业以后,沃思进入在欧洲甚至全世界都很有名气的苏黎世工学院(ETH),1958年取得学士学位。之后他远渡大西洋到加拿大的莱维大学深造(Laval是和加拿大名城魁北克隔圣劳伦斯河相望的一座城市),于1960年取得硕士学位。之后他又一次迁移,到美国加利福尼亚,进入加州大学伯克利分校,于1963年获得博士学位。
学成以后,沃思受聘到斯坦福大学刚刚成立的计算机科学系工作。著名的斯坦福大学门槛极高,怎么会看中了这个来自欧洲小国的毛头小伙子呢?原来在20世纪50年代末、60年代初的情况下,沃思的计算机经验和成就相当引人注目:在苏黎世工学院时,他曾听过瑞士的计算机先驱斯帕塞(A.P.Speiser,他曾出任IFIP的主席)的课,用过由斯帕塞开发的计算机ERMETH(虽然作为学生,机会并不多);在莱维大学时,沃思学了数值分析,用过 Alvac III E计算机(虽然这台计算机经常出故障而不能开机);在伯克利时,沃思先是有一台Bendix G-15计算机可用,后来又参加了为IBM 704开发 NELIAC语言编译程序器的科研小组。 NELIAC的全称是 Navy Electronics Laboratory International Algol Compiler,即美国海军电子学实验室国际 Algol编译程序语言,该语言用于数值计算和一些逻辑处理,其特点是用自己的语言写自己的编译程序,然后进行自编译,是一个类似于 Aled 58但具有开创性意义的语言。沃思在撰写博士论文时,Algol 60报告已经发表。 这是第一个清晰定义的语言,其语法是用严格公式化的方法说明的。当时已有一些学者认识到,清晰的规格说明对于可靠而有效的实现是必需的,但是并不充分:Aled 60报告中还存在一些缺陷和不足。
沃思在和 Algol的设计者之一、荷兰人范·维京格尔藤(Andrian van Wijingaarden,他曾任阿姆斯特丹数学中心计算部主任,在开发Algol 68中提出了二级文法,又叫w文法以解决上下文有关这一难题。他曾启发1972年图灵奖获得者狄克斯特拉走上计算机科学之路)多次接触和讨论以后,决定对 Algol 60作进一步改进,并以此作为自己的博士论文课题。这就诞生了由沃思所设计的第一个语言——Euler。Euler虽然在实用性上考虑并不十分周到,但在学术上却非常优美,为编译器的系统设计创造了一个很好的基础。此外,它还对 Algo 60进行了若干扩充,主要是增加了表处理能力。正是由于以上原因,斯坦福大学看中了沃思。与此同时,IFIP也注意到了Euler语言,决定吸收沃思参加对Algol语言进行完善与扩充的工作小组。当时,这个小组中有两派,一派主张设计一个新语言,以便树立一个新的里程碑;另一派则觉得时间太紧,主张对 Algo 60进行适当扩充。沃思参加进去以后,自称同时属于这两派,并提交了一份建议书。这份建议书经过霍尔(Tony Hoars)等人的修改、完善以后获得通过,这就是Aigol W(W是沃思名字的首字母)。
第二年,也就是1966年,Algol W在斯坦福大学的第一台 IBM 360上成功实现并正式应用。这中间还有一个小插曲:IBM 360当时只提供汇编语言和 FORTRAN语言,但沃思和他的学生都觉得这两者并不适宜于作为设计编译器的工具。于是,沃思用了两个星期时间写出了一个用来描写Algol编译器的新的语言的定义,然后用了4个月时间在宝来公司的B-5000计算机上完成了交叉编译程序,而沃思的一个学生则把这个交叉编译程序移植到 IBM 360上去。这些额外的工作极大地加快了 Algol W编译器的开发,同时催生了一个新的语言 PL 360。 PL 360虽然是作为辅助工具而设计、开发的,但后来却在许多地方获得应用,取得了意想不到的成功。
Algol W及 PL 360奠定了沃思作为世界级程序设计语言大师的地位,一举成名。但沃思是一个具有强烈爱国心的人,成名后的他谢绝了斯坦福大学的挽留,于1967年回到祖国,先在苏黎世大学任职,但第二年就回到他的母校苏黎世工学院。在这里,他首先设计与实现了 PASCAL语言(Philips Automatic Sequence CAlculator Language的缩写),这是在 CDC 6600上开发成功的。 PASCAL在数据结构和过程控制结构方面都有很多创造。对于前者,除一般的整型、实型、布尔型数据外,PASCAL还增加了字符型、子域类型、记录结构类型、文件类型、集合类型和指针类型;对于后者,除保留了无条件转移的GOTO语句外,又增加了if-then-else、case、while、repeat和for等多种控制结构,还允许复合语句和处理记录变量的分量使用with语句这种编写形式。可以说,现代程序设计语言中常用的数据结构和控制结构绝大多数都是由PASCAL语言奠定基础的,因此它在程序设计语言的发展史上具有承上启下的重要里程碑意义。
说来有趣,沃思开发PASCAL的初衷是为了有一个适合于教学的语言,并没有想到商业应用。但一经推出,由于它的简洁明了,它所提供的丰富的数据结构和控制结构为程序员提供了极大的方便与灵活性,也由于它特别适合于由微处理器所组成的计算机系统,竟然大受欢迎,广泛地流传开来。在C语言问世以前,PASCAL是风靡全球、最受欢迎的语言之一,创下了发行拷贝数最多的世界记录。单是沃思的一个学生菲力浦·凯恩(Phillipe Kahn),从 ETH毕业以后,在美国加利福尼亚州办了一个软件公司,就卖出了100多万个PASCAL拷贝,成为百万富翁。
1971年,沃思基于其开发程序设计语言和编程的实践经验,在4月份的 Communications of ACM上发表了论文“通过逐步求精方式开发程序’(Program Development by Stepwise Refinement),首次提出了“结构化程序设计”(structure programming)的概念。这个概念的要点是:不要求一步就编制成可执行的程序,而是分若干步进行,逐步求精。第一步编出的程序抽象度最高,第二步编出的程序抽象度有所降低…… 最后一步编出的程序即为可执行的程序。用这种方法编程,似乎复杂,实际上优点很多,可使程序易读、易写、易调试、易维护、易保证其正确性及验证其正确性。结构化程序设计方法又称为“自顶向下”或“逐步求精”法,在程序设计领域引发了一场革命,成为程序开发的一个标准方法,尤其是在后来发展起来的软件工程中获得广泛应用。有人评价说沃思的结构化程序设计概念“完全改变了人们对程序设计的思维方式”,这是一点也不夸张的。1983年1月,ACM在纪念 Communications of ACM创刊 25周年时,从其 1/4个世纪发表的大量论文中评选出有“里程碑意义的研究论文” 25篇,每年1篇,沃思的这篇论文就是其中之一。
PASCAL的成功也罢,结构化程序设计思想的巨大影响也罢,都没有停止沃思继续创造性的研究与开发工作。20世纪70年代中期,为适应并发程序设计的需要,沃思又成功开发了一个获得广泛应用的语言Modula。M0dula除了提供并发程序设计功能之外,另外一个重要特征是引进了模块概念(这也是这个语言叫做Modula的原因)。此外,它还引进了“进程”(process)这一和并发程序相联系而产生的重要概念。Modula语言还特别适合于书写系统程序。但是,比Modula具有更加重大得多意义的却是它的第二个版本Modula.2。这是 1976年,沃思再次赴美国,到 Xerox公司的 Palo Alto研究中心参与Alto计算机的设计与开发工作。Alto是世界上第一个具有图形用户界面的个人计算机系统(可惜Xerox公司没有把它商品化,而由Apple公司学去了它的技术而推出 Macintosh)。
沃思回到瑞士以后,参考Alto的经验,设计、开发Lilith个人计算机系统。为了和Lilith的体系结构相配合,沃思决定在Modula的基础上开发新版本,作为整个系统的开发语言。Modula-2与Modula相比,语法更加简洁,更加强调界面设计,模块的可重用性更好。它共有3个编译单元,即程序模块、定义模块和实规模块。在定义模块(definition module)中,只给出那些和模块外部交往所必需的信息。例如,对模块内部的子程序说明而言,在定义模块中只给出子程序名、参数名及其类型等,而不给出子程序体本身,也就是说,在定义模块中只给出模块外部可见的信息。在实规模块(implementation module)中,则给出那些在模块外部不可见的信息,例如,在模块内部定义的子程序说明的子程序体。这样的安排既提高了可读性,又有助于分别编译。M0dula-2在优美性(elegance)和简洁性(simplicity)两方面都比Modula更进一步。
Lilith的操作系统、图形软件包、数据库系统、网络协议套件、文件服务器等基本系统和大量应用模块全都是用M0dula-2开发的。目前世界上已经开发了近百个Modula-2的编译系统,北美和欧洲的许多大学已经用Modula-2代替PASCAL作为计算机系本科生的第一门程序设计课程。Modula-2的标准化工作则早在1984年就已由英国开始进行,ISO则于1987年对它进行标准化,并采用由IBM的维也纳实验室提出的VDM-SL和经过沃思本人加以扩充的BNF(即EBNF,见下)表达语言的语法与语义,在形式化方面达到了一个新的水平。在Lilith项目中,沃思坚持将计算机体系结构、语言、操作环境这三者统一起来考虑,实行集成化、一体化设计的成功经验是具有革命性的创举,从而使这个项目在计算机科学史上占有重要地位。
近年来沃思致力于一个新的计划,即Oberon计划。Oberon是将程序设计语言和操作系统结合在一起的、面向单用户的个人工作站的一个系统。因为沃思认为,在因特网日益普及的情况下,今后联网的计算机主要将是个人工作站,因此如何使个人工作站功能更加强大、更加方便使用是一个十分重大的课题。沃思把这个计划取名为Oberon是寓意深长的,因为Oberon是希腊神话中的仙境之王和女神Titania的丈夫。沃思的目标是要使Oberon语言超越PASCAL和Modula,设计出的操作系统和编译器功能更加强劲。1992年他写了两本书向读者推荐Oberon(见后),可见其对这个计划的重视。
本文的讨论也很精彩,浏览讨论>>
JavaEye推荐
中国领先的电子商务网站-淘宝网招贤纳士,诚聘Java工程师
文章来源:
http://justjavac.javaeye.com/blog/170052
posted @
2008-03-15 10:04 justjavac(迷渡) 阅读(105) |
评论 (0) |
编辑 收藏
网站:
JavaEye
作者:
justjavac
链接:
http://justjavac.javaeye.com/blog/170054
发表时间: 2008年03月11日
声明:本文系JavaEye网站发布的原创博客文章,未经作者书面许可,严禁任何网站转载本文,否则必将追究法律责任!
除了程序设计语言之外,沃思在其他方面也有许多创造。为了定义和描述语言,沃思对著名的“巴科斯-诺尔范式”BNF进行了扩充,成为EBNF(Extended BNF)。我们目前所看到的许多语言的 BNF实际上是EBNF,不过人们往往忽略掉这个E字。和BNF一起出现的,还常常有一些看上去像铁路图那样的图形,称作“语法图”(syntax chart或 syntax diagram)或“铁路图”(railroad diagram),这也是由沃思所设计与发明的,这种图形标记法的描述能力等价于BNF,但当然更易于阅读与理解,更加直观。在语法图中,用圆圈表示终结符,用方框表示非终结符,用有向弧表示走向,图上一条通路就表示该语法结构的一种正确定义方法。语法图的4种基本构造方法如下。
(1) 若产生式为W→W1W2W3,则语法图如图1。
(2) 若产生式为W→W1W2|W3a|bcW4 ,则语法图如图2。
(3) 若产生式为W→abW,则语法图如图3。
(4) 若产生式为W→ab|abW,则语法图如图4。
对于较复杂的产生式,其语法图一般可通过上述4种语法图进行组合而得。
在对上下文无关文法的研究中,一个很重要的问题是如何确定两个符号之间的优先关系。现在一般采用的办法也是由沃思和他的同事韦伯提出来的,就叫沃思-韦伯优先关系(Wirth- Weber precedence relation),或叫简单优先关系。它规定上下文无关文法 G中任意两个符号的优先关系如下。
(1)X<Y,当且仅当有产生式 A→αXBβ,且有推导B+→Yr。
(2)X=Y,当且仅当有产生式A→αXYβ。
(3)X> Y,当且仅当有产生式 A→αBYβ,且有推导B+→rX及Y →*aδ。
其中A、B为非终结符,X、Y为待定优先关系的两个任意符号,α、β、Υ和δ为由终结符和非终结符组成的任意符号串,可以是空串。a是终结符。
沃思的学术著作很多,主要有如下几种,其中一些原版是用德文写的,翻译成了英文。
《系统程序设计导论》( Systematic Programming: An Introduction,Prentice- Hall,1973。其德文版已出至第 5版)
《算法十数据结构=程序》(Algorithms+ Data Structures= Programs,Prentice-Hall,1976)
《算法和数据结构》(Algorithms and Data Structures, Prentice - Hall ,1986)
《Modula-2程序设计》(Programming in M0dula-2,Spring6r,1988,第4版)
《PASCAL用户手册和报告: ISO PASCAL标准》 (PASCAL UserManual and Report: ISO PASCAL Standard, Sprillger, 1991)
《Oberon计划:操作系统和编译器的设计》( Project Oberon:the Design of an Operating System and Compiler,ACM Pr.,1992)
《Oberon程序设计:超越Pascal和Modula》(Programming in Oberon: Steps beyond Pascal and Modula, ACM Pr,1992)
《数字电路设计教材》(Digital Circuit Design for Computer Science Students:An Introductory Textbook, Spnnger, 1995)
《编译器构造的原理和技术》(Theory and Techniques of Compiler Construction,Addison- Wesley,1996)
ACM除了1984年授予沃思图灵奖外,1987年又授予他“计算机科学教育杰出贡献奖”。另一重要的国际学术组织IEEE也授予过沃思两个奖项: 1983年的 Emanual Piore奖和 1988年的计算机先驱奖(Computer Pioneer Award)。1992年,加州大学伯利分校命名沃思为“杰出校友”。
沃思是在1984年10月于旧金山举行的ACM年会上接受图灵奖的。沃思发表了题为“从程序设计语言设计到计算机建造”(From Programming Language Design to Computer Construction)的图灵奖演说,回顾了自己在计算机领域所做的工作。演说全文刊载于Communications of ACM,1985年 2月,159- 164页,也可见《前 20年的 ACM图灵奖演说集》(ACM Turing Award Lectures——The First 20 Years:1966-1985,ACM Pr.),179-196页。沃思在演说中强调了程序设计语言简 性的重要意义,也讨论了它所需的硬件和软件环境(因为沃思一直很重视语言的实现问题)。他介绍了在设计Modula-2和Lilith中的经验,指出第一手经验和选择良好开发工具的无比价值。
沃思现仍在苏黎世工学院任教,他的电子箱为:wirth @ inf.ethz.ch
本文的讨论也很精彩,浏览讨论>>
JavaEye推荐
中国领先的电子商务网站-淘宝网招贤纳士,诚聘Java工程师
文章来源:
http://justjavac.javaeye.com/blog/170054
posted @
2008-03-15 10:04 justjavac(迷渡) 阅读(147) |
评论 (0) |
编辑 收藏