【Hacker News搬运】1983年我的个人计算机软件开发之旅
-
Title: My journey into personal computer software development in 1983
1983年我的个人计算机软件开发之旅
Text:
Url: https://farrs.substack.com/p/my-journey-into-personal-computer
1983年,个人电脑正处于快速发展阶段,尽管许多东海岸程序员将其视为玩具,但已经有一些有趣且具有前景的应用程序被开发出来。作者认为这些设备是未来的趋势,因此决定冒险寻找编写个人电脑软件的工作。 作者得到了当地一家顶尖个人电脑软件开发公司的面试机会,该公司名为“Software Arts”,是创建了原始电子表格“VisiCalc”的公司。在面试过程中,作者实际上遇到了VisiCalc的创作者之一,Bob Frankston。尽管人们警告他Bob Frankston难以交谈且脾气暴躁,但作者发现他实际上是一个真诚愉快的程序员类型。 作者加入公司后,面临的一个任务是改进VisiCalc在IBM PC上的版本。这个程序几乎准备就绪,但无法适应内存限制。Bob Frankston提出了一种“分段”策略来解决这个问题,尽管其他人尝试过但没有取得太大成功。作者接受了这个任务,并成功地在2-3个月内将程序适配到内存限制,并为新功能留下了足够的空间。 完成这个任务后,作者成为了IBM PC VisiCalc团队的一员。然而,程序中还存在一个“几乎”完成的部分,即256K内存限制的问题。 VisiCalc的bug列表超过600项,大多数原始程序员已经转向了“更好的”工作。剩下的程序员Christine S和Joe B,以及作者(因为提前完成了分段问题)一起工作。作者发现解决bug列表中的问题很有趣,他开始以每天5个左右的速度解决bug。 然而,这种效率引起了问题。质量保证团队很高兴,因为他们习惯于程序员试图解释为什么某物不是bug或告诉他们问题很快就会解决。而作者每天宣布这些3-5个bug已经从列表中删除,这让其他人感到不安。尽管如此,作者仍然以每天5个左右的速度解决bug。 VisiCalc的管理层很高兴,但其他管理层不希望太多关注放在这个“旧”程序上。公司吸引了许多高技能的程序员,他们对作者能够轻松解决复杂bug感到非常不满。尽管作者的教育背景和当时的印度人不太被认为是合适的软件材料,但作者仍然以每天5个左右的速度解决bug。 最终,bug列表被清空,VisiCalc管理层被鼓励向VisiCalc添加更多功能。作者为VisiCalc增加了图形功能,Christine S添加了排序功能。产品终于准备好发布。 然而,VisiCorp,VisiCalc的营销组织,对产品的性能不满意。这是因为有一个竞争对手叫做Lotus的1-2-3。尽管1-2-3没有那么多功能(例如,它绘制的是糟糕的线条图而不是填充的饼图),但它运行速度更快,占用内存更少。VisiCalc运行速度慢且占用更多内存,这与一些内部政治有关。内部小团体决定程序必须用Lisp编写,但Lisp在当时的运行速度有限,也是内存消耗大户。作者本可以轻松地用汇编语言重写整个程序,但公司没有人鼓励或要求他这样做。 最终,作者被管理层贴上了“白痴天才”的标签,因为他的工作效率很高。尽管作者在非编程人员中建立了很高的支持水平,但他决定离开这个疯狂的地方,回到了熟悉的工作站、Unix和C编程的世界。
Post by: saloama
Comments:
ralphc: These comments are burying the lede, or burying the (lede).<p>The author said that VisiCalc was written in Lisp and I said "wtf?<p>Then I reread it and said "seriously, wtaf?"<p>I've never heard that before. Was the original Apple ][ version written in Lisp?
ralphc: 这些评论是在埋葬lede,或者埋葬(lede)<p> 作者说VisiCalc是用Lisp写的,我说";wtf<p> 然后我重读了一遍,说“;说真的,wtaf"<p> I-;我以前从未听说过。苹果的原版是用Lisp写的吗?
abraae: Say what you will about MS (and I said a lot when I worked at Lotus on the mainframe port of Lotus 1-2-3) but they knew what was important for success.<p>A spreadsheet on it's own is a thing of technical beauty but for market domination you don't want to keep pouring resources into that one product, you want a suite of complimentary products.<p>You want to be able to embed your spreadsheet into a document, into a slide presentation. You want cutting and pasting to work sensibly between products. You want consistency in the menus and layouts.<p>Bill Gates understood all of this from the beginning, the same as he understood that the strength of a PC operating system is not how reliable, memory safe and performant it is, it's in how flashy it looks and how important the windows paradigm is.
abraae: 随你怎么说MS(我在Lotus 1-2-3的主机端口上工作时说过很多),但他们知道什么对成功很重要<p> 上面的电子表格;s本身是一种技术美,但为了占据市场主导地位;I don’我不想一直把资源投入到那一种产品上,你想要一套免费的产品<p> 您希望能够将电子表格嵌入文档、幻灯片演示中。您希望剪切和粘贴能够在产品之间合理地工作。您希望菜单和布局保持一致<p> 比尔·盖茨从一开始就明白这一切,就像他明白PC操作系统的优势不是它有多可靠、内存安全和性能一样;在于它看起来有多华而不实,以及windows范式有多重要。
dang: Gosh, it's so telling that as early as 1983 (!) the inventors of the spreadsheet thought that spreadsheets were 'done' and they needed to move to more important things. This is like Rickenbacker in 1938 deciding that electric guitars were 'done' and moving to, I don't know, Theremins or something.
dang: 天啊,它;早在1983年,电子表格的发明者就认为电子表格是;done-7;他们需要转向更重要的事情。这就像里肯巴克在1938年决定电吉他是;done-7;然后移动到;I don’我不知道。
smackeyacky: There is a good underlying story here about what makes a "good" programmer.<p>There are plenty of incredibly smart folk out there programming giant, indecipherable messes where somebody like me would write something very boring but did the job. My boring code can always be tizzied up, but you can't always fix an awesomely complex abstraction written in some niche language. What scratches your itch as a "super programmer" is often directly at odds with actually solving a problem.<p>I am kinda tired of inheriting those kinds of messes - the guys that write code that ways inevitably leave when the bug list pile gets too high.
smackeyacky: 这里有一个关于“;好的”;程序员p> 有很多非常聪明的人在那里编程,巨大的,难以理解的混乱,像我这样的人会写一些非常无聊的东西,但却完成了任务。我无聊的代码总是会被打乱,但你可以;我不总是用一些小众语言来解决一个极其复杂的抽象问题。什么东西会把你的痒刮成“;超级程序员";通常与实际解决问题直接不一致<p> 我有点厌倦了继承那些混乱的东西——当bug列表堆得太高时,那些编写代码的人不可避免地会离开。
cmpalmer52: My first professional software development job was circa 1982-83. I was in high school, working part time for my step-brother. He’d just got a luggable PC like the one in the picture and he paid me like $20 to write a MS-BASIC program to calculate payroll withholdings.
cmpalmer52: 我的第一份专业软件开发工作大约在1982-83年。我在上高中,为我的继兄弟做兼职。他刚买了一台像照片中那样的可拖动电脑,他付给我大约20美元,让我写一个MS-BASIC程序来计算工资扣缴。