Alan Kay: Software Engineeringvs. Computer Science


【注】转自网络 

 

Much of whatis wrong about our field is that many of the ideas that happened before 1975are still the current paradigm.He has a strong feeling that our field has been mired for some time,but because of Moore’s law, there are plenty of things to work on. Thecommercialization of personal computing was a tremendous distraction to ourfield and we haven’t, and may not, recover from it.

 

Almost nothing exciting aboutcomputing today has to do with data structures and algorithms

 

One of Alan’s undergraduate degrees is in molecular biology. Hecan’t understand it anymore despite having tried to review new developmentsevery few years.That’s not true incomputer science.The basics are still mostly the same. If yougo to most campuses, there is a single computer science department and thefirst course in computer science is almost indistinguishable from the firstcourse in 1960. They’re about data structures and algorithms despite the factthat almost nothing exciting about computing today has to do with datastructures and algorithms.

 

The Internet is like the human body. It’s replaced all of its atoms and bits at least twice since it started even thoughthe Internet has never stopped working. Attacks on the Net aren’t reallyattacks on the Net, they’re attacks on machines on the Net. Very few software systems, maybe none, are built in ways that sustain operation in spite of being continually rebuilt and continually growing.


The future five years out is easy to predictbecause all of the forces acting on computer science are trying to keep it the same as it is now.Likely, the future will be more of what we havenow.Are computer science, software engineering, OOP, etc. oxymorons? Alanreminisce about Bob Barton, an early Utah professor. Bob said that “systems programmersare the high priests of a low cult”  and  “there are few things know about systemsdesign, but the basic principle of recursive design is: make the parts of the same power as the whole”. Bob Barton hasa classic paper that contains seven of the most important things that peopleknow about software today. Another quote: “My job is to disabuse you of anyfirmly held notion you held when you came into this classroom.” The best way toget people to think is to destroy their current thinking. (note: ie. theBest Way to Predict the Future to {Invent,Prevent} It)Preconceivednotions are largely reactions to what vendors are saying. Alan says that hiscourse from Barton was the most valuable one he took in college because Bartongarbage collected their minds.


Engineers should read a book about 《 howthe Empire State building was done 》. Includingthe demolition of the building on the site before, the Empire State building was built in 11 months by 3000 people. We don’t know how to do this incomputing. Whatever we think engineering is, it can’t mean the modern use ofthe term. I don’t know of a single computing system that is attached to youthat if it fails it will almost certainly kill you. That’s what happens withjet engines. That’s engineering.


Hurricane Katrina is Alan’s new favorite story. When the city started flooding only fourpumps kept pumping until the levee actually broke. The youngest pump that keptgoing was made in 1929. The newer pumps all stopped well before that. Try toimagine a computing system that will be working 90 years from now? It’simpossible to imagine.


“American’shave no past and no future, they live in an extended present.” This describesthe state of computing. We live in the 80’s extended into the 21st century.The only thing that’s changed is the size. Windows XP has 70 million lines of code.It’simpossible for Alan to believe that it has 70 million lines of content.Microsoft engineers don’t dare prune it because they don’t know what it alldoes. Cathedrals have 1 millionth the mass of pyramids. The difference was thearch. Architecture demands arches.


Computers are artifacts. in order tohave a science of computing, we have to make them. This isn’t unheard of.To have ascience of bridge building, people had to start building them so they could bestudied.He shows a clip of the Tacoma Narrows bridge. After studying thefailure, the bridge was rebuilt and hasn’t come down. This reminds Alan ofsoftware systems. We’re much better at building software systems than we are atpredicting what they will do. There are no good models. If we were scientists,we’d be trying to build models.


Science is not there to tell us about theUniverse, but to tell us how to talk about the Universe.” (NielsBohr). Science helps us to be more reasonabler about reasoning. It’s set up sothat we get better and better maps (abstractions) not perfect maps.


Alan usesJohn McCarthy and Lisp as an example of real science in computer science. Heshowed us that you can build a system that’s also it’s own metasystem.Lisp is like Maxwell’s equations. Many of the things that are wrong about Javais that it lacks a metasystem and that the metasystem that’s been tacked ontoit is missing key parts.To find the most interesting things about ourfield you have to go back 30 or 40 years.


Alan used McCarthy’s method to design an object oriented system. He spent only a monthimplementing it because of the meta system.


We build finite artifacts, but the degrees of freedom grow faster than we can reasonabout them. Thus, we’re left with debugging.


We are creatures who live in a world of stories and we’re always looking for simplestories o explain the world. He shows a clip, called Private Universe, ofHarvard grads (at graduation) describing trying to explain the seasons. Almosteveryone thought the seasons were caused by an elliptical orbit of the eartharound the sun. It didn’t matter whether or not the students were sciencemajors or now. Interestingly, people know that the seasons are reversed betweenthe northern and southern hemispheres. Their stories are inconsistent with whatthey know, yet they persist in believing them, even though they have theknowledge that contradicts their theory.


When people react instantly, they’re not thinking, they’re doing a table look up.


Engineering predates science by thousands and thousands of years because we don’t have tounderstand things to engineer them.He uses one of my favorite quotes: an engineer is someone who can make for adollar what any fool could make for two.Making computing into a science means that we have to understand whatto do about our beliefs.When we talk, we do nothing but tell stories thatpeople will find interesting. There’s danger in that because stories can createresonance without being scientific.


Handwritten books were prohibitively expensive. Guttenberg’s books only cost “2 to 3 times a clerks yearly wage.” AldusManutius createdportable books. He measured saddle bags. It had to be cheap so that loosing itwasn’t a tragedy. What made the big change was that people discovered you couldargue effectively with books. This took centuries.There’s a big gapbetween a technology and its powerful media. The real revolution isn’t arevolution in technology, but a revolution in thought.


Imitating paper on digital media isn’t the real computer revolution.What is thereal computer revolution? The only reason personal computers look likethey do is that we thought of them as time sharing terminals (which look liketypewriters with screens) without the mainframe. Alan’s epiphany was thatcomputers don’t have to look like that.


PowerPoint is a terrible idea

 

PowerPoint is a terrible idea because it takes everythinginteresting about what computers can do and brings it into an expensive form ofpaper. Alan now jumps into a demo of the system he’s using that isn’tPowerPoint. He draws a car and then animates it with a script. This is based onwhat children do with his system, Squeak.


He discusses the power of parallel programsand loose coupling for building systems.We need to teach theseconcepts more than data structures and algorithms.


Squeak iswritten in 230,000 lines of Smalltalk. They think it could be 20,000. There are59,000 methods in 3.5Mb of object code, for about 59 bytes per method. Thereare about 5 million objects and it was implemented by ten people. The system isself-bootstrapping, so it’s all in there. Learning how to do thisought to be part of computer science but regrettably it’s not.



Q: What are one or twothings we can do to be better computer scientists?

A: A lot of the successat PARC was because we didn’t know what we were doing—specifically, we weren’ttrying to make a product.The silliest thing you can find at research university is today’s laptop. We invented the Alto and it allowed us to dothings that weren’t commercially viable until the 80’s. A research computer istwo cubic feet of the fastest computing on the planet. You make it, then youfigure out what to do with it. How do you program it? That’s your job!Because real thinking takes a long time,you have to give yourself room to do your thinking.One way tobuy time is to use systems not available to most people.UCLA has one computerscience department, but 25 full departments of biology (not counting medicalschool stuff). Why? Biologists are smarter then we are. When things are boggingdown, the best thing to do is to go create a new department. To docreative work in computing, you must get past what you think is normal. Write downthe 20 things you think are true of computing and try to demolish them.


Q: Are all the videocodecs in the stats you give for Squeak?

A: Yes, it’s selfbootstrapping. The problem with Java is that it’s a paper spec. Squeak isdefined in Smalltalk, as a simulation. It takes less than two days to portSqueak to a new piece of hardware. This Smalltalk book shows how the VM can becreated in itself. This is the meta system. The good guys (late binders) lost in the late 70’s. The early binders won.Good ideas don’t often scale.


Lisp is the most important idea incomputer science.


Most people who graduate with CS degrees don’tunderstand the significance of Lisp. Lisp is the most important idea incomputer science. Alan’s breakthrough in object oriented programming, wasn’tobjects, it was the realizing the the Lisp metasystem was what we needed.


Q: What do you mean by“object” and “object oriented system?”

A: In 1966, the thingthat knocked me over was thatSketchpad was maintaining dynamic relationships. That’s the key to building large system.

 

The otherthing that happened in 1966 was thinking about the ARPANet.The idea ofhaving a million machines without any central control. Simula provided aprogramming form of what SketchPad was doing. My background inbiology and math led me to think about algebra and tissues. Barton taught me “The basicprinciple of recursive design is making the parts as powerful as the whole.” Theseideas led me to an insight on November 11, 1966: the timesharing people got itright with processes, but it was too big.


The interesting thing about the object idea is that it’s everywhere.Theperversity of science is that world doesn’t change just because we get adifferent perspective of it.


The secret of PARC’s success was to design thebest virtual machine we could and then to build hardware that optimized that. We’ve gotthat concept backwards today.



(The end)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
提供的源码资源涵盖了安卓应用、小程序、Python应用和Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值