Python程序员:
离下班很早我们就干完了,然后喝咖啡打酱油,直到下班离开公司。[得意]
C++程序员:
还在看他满屏的出错信息,估计连错误在哪都没定位到。[流泪]
但是C++有两大好处:
速度快,然后什么都能做。[奸笑]
C++这种强类型库,对版本一致性要求太高,库用起来麻烦。 不开源的非商业库基本很难用上。 开源的弄一个库用上也得起码半天多则几天。 职业C++开发大残血, 弄个库还是很麻烦。
C++要想解决库之间的依赖问题,相当困难。从源代码编译程序,需要非常熟练才能解决其中碰到的问题。这真的是C++语言设计者要去思考的问题,而且应该向python学习。
关于SUN的那些事儿 (九)
1975 年夏天,从密大获得本科学位后,Bill Joy来到加州大学伯克利分校开始读研究生,在此地,他将度过7年时光。他之所以来UC Berkeley,并不是因为被其政治策源地所吸引(UCB当时是左倾激进主义活动大本营,类似反越战的活动风起云涌),而是发现斯坦福和MIT的机器设备陈旧过时,如果在那里读研究生最终会沦落为计算机理论学家。在他入学的时候,恰逢计算机系刚购买了DEC新推出的PDP 11/70,而AT&T 贝尔实验室的Unix 发明人同时也是UCB 校友 Ken Thompson 被邀请来做访问学者。他主要工作就是为PDP 11/70安装AT&T Unix v6。 AT&T Unix v6 当时在世界各地大学的计算机系非常流行。操作系统课程开始涉及Unix,其中澳洲南威尔士大学教授John Lions,出版了一本有关AT&T Unix v6 源代码的详尽注释说明手册(Lions'Commentaryon UNIX 6th Edition),这无形中帮助了世界上无数程序员阅读理解Unix, 以便他们安装的v6系统进行改进和修正,同时也促进了人们对Unix的兴趣 以及Unix系统的部署。
此时,Bill Joy还未涉及到v6内核方面工作,而是做一些相关工具的开发。刚入校不久的Bill Joy和同学 Chuck Haley (tar 的作者)喜欢一起泡在计算机房里面,Thompson也时常串门。他们成功地改善了 Pascal 的解释器与侦错的能力, 同时还提升了解释与执行的速度。另外换装 ADM-3的终端显示器后,他们觉得Ken Thompson写的ed文本编辑器并不好用,因为它是基于行的编辑器,当人们编辑文本的时候是看不到全文本的,只能依据请求单行显示。Bill于是根据另外一 个相似的 em ,开发了自己觉得满意的文本编辑工具,也就是 ex。第二年来了几台新的终端 ADM-3A ,这种终端支持光标地址显示,Bill Joy研究了新老终端位图技术(他设计了一个接口,用来管理、支持不同的显示设备), 重新开发了基于全屏显示的vi (就是VIsual的意思),当程序员编辑文本的时候能看到全部文本及更改后的结果,做到了所见即所得。他后来将vi的源码交给Ken,后者放入下一版的 Unix中。Bill Joy多次公开地说,他要是知道 vi 会如此受欢迎的话,他宁愿当初没写 vi 。不过 Bill Joy 也说过,当时他原本还想加入Multiple Windows的功能,但在写这部分代码的时候,磁带机坏了,所以只好在没有备份的情况下继续奋战,没想到程序写到一半,他使用的硬盘也跟着挂了。在无法挽救又无备份的情况下,Bill宣布放弃Multiple Windows 功能。事后 Bill 为 vi 写好使用文档后就继续做其它的事了,所以 vi 就长成今天这副模样。
此外,Bill Joy 还对v6中缺省的shell 不满意, 希望shell的脚本语言能够具有C的语法风格,方便开发人员,最后他创建了csh, csh不仅提供类c的语法,还提供了增强交互使用的功能,如作业控制 (job control)、命令历史 ( history) 和别名 ( alias )等。
Bill Joy 并不满足只是编写新的文本编辑器和shell, 他把目光投向v6 的kernel本身。首先他专注于提高内核的性能和速度,于1978年早些时候通过Computer Systems Research Group (CSRG)发布了AT&T Unix的修改版BSD 1.0(Berkeley Software Distribution)。BSD2.0不久之后也很快推出,该版本加入了Bill Joy的vi和csh。前两个releases只是在交付AT&T Unix v6 内核的基础上增加了用户应用程序。