这个问题来自于对过去50年左右计算领域各种进展的评论。
其他一些与会者请我把这个问题作为一个问题向整个论坛提出。
这里的基本思想不是抨击事物的现状,而是试图理解提出基本新思想和原则的过程。
我认为我们在大多数计算领域都需要真正的新想法,我想知道最近已经完成的任何重要而有力的想法。如果我们真的找不到他们,那么我们应该问“为什么?”和“我们应该做什么?”
这个问题来自于对过去50年左右计算领域各种进展的评论。
其他一些与会者请我把这个问题作为一个问题向整个论坛提出。
这里的基本思想不是抨击事物的现状,而是试图理解提出基本新思想和原则的过程。
我认为我们在大多数计算领域都需要真正的新想法,我想知道最近已经完成的任何重要而有力的想法。如果我们真的找不到他们,那么我们应该问“为什么?”和“我们应该做什么?”
当前回答
IP多播(1991)和Van Jacobsen的传播网络(2006)是1989年以来最大的发明。
其他回答
我认为自20世纪80年代以来发明的最好的想法将是我们不知道的。要么是因为它们很小,无处不在,以至于不引人注意,要么是因为它们的受欢迎程度还没有真正起飞。
前者的一个例子是单击并拖动以选择文本的一部分。我相信这是1984年首次出现在麦金塔电脑上。在此之前,您有单独的按钮用于选择选择的开始和结束。相当繁重。
后者的一个例子是(可能是)可视化编程语言。我不是说像hypercard,我是说像Max/MSP, Prograph, Quartz Composer, yahoo pipes等。目前它们确实是小众的,但我认为,除了思想分享之外,没有什么能阻止它们像标准编程语言一样具有表现力和强大的功能。
可视化编程语言有效地加强了引用透明性的函数式编程范式。这对于代码来说是一个非常有用的属性。他们执行这一点的方式也不是人为的——这只是由于他们使用的比喻。
VPL让那些本来不会编程的人也能编程,比如有语言障碍的人,比如阅读困难的人,甚至只是需要简单节省时间的门外汉。专业程序员可能会对此嗤之以鼻,但就我个人而言,我认为如果编程成为一种真正无处不在的技能,就像识字一样,那就太好了。
就目前来看,VPL只是一个小众的兴趣,还没有真正成为主流。
我们应该做些什么不同的事情
all computer science majors should be required to double major- coupling the CS major with one of the humanities. Painting, literature, design, psychology, history, english, whatever. A lot of the problem is that the industry is populated with people that have a really narrow and unimaginative understanding of the world, and therefore can't begin to imagine a computer working any significantly differently than it already does. (if it helps, you can imagine that I'm talking about someone other than you, the person reading this.) Mathematics is great, but in the end it's just a tool for achieving. we need experts who understand the nature of creativity, who also understand technology.
But even if we have them, there needs to be an environment where there's a possibility that doing something new would be worth the risk. It's 100 times more likely that anything truly new gets rejected out of hand, rather viciously. (the newton is an example of this). so we need a much higher tolerance for failure. We should not be afraid to try an idea which has failed in the past. We should not fully reject our own failures- and we should learn to recognize when we have failed. We should not see failure as a bad thing, and so we shouldn't lie to ourselves or to others about it. We should just get used to it, because it is just about the only constant in this ever changing industry. Post mortems are useful in this regard.
One of the more interesting things, about smalltalk, I think, was not the language itself, but the process that was used to arrive at the design of smalltalk. The iterative design process, going through many many revisions- But also very carefully and critically identifying the flaws of the existing system, and finding solutions in the next one. The more perspectives, and the broader the perspectives we have on the situation, the better we can judge where the mistakes and problems are. So don't just study computer science. Study as many other academic subjects as you can get yourself to be interested in.
我认为计算中的大多数概念都在不断改进,但也有一些新的发展,特别是在分布式计算方面。
对故障和缺陷的鲁棒性,以及故障恢复,即。Paxos,拜占庭容错等。 我知道人们提到过P2P, P2P通信发生在70年代,但恕我直言,我不认为它具有与今天相同的性质,具有分布式哈希表,高效的动态自组织网络,最重要的是,匿名性(例如Freenet, Tor)。
大多数工作都经过了改进,虽然许多现代系统比60年代或更早时候首次描述的原始概念好不了多少,但有些系统好了几个数量级。
我认为,在1980年,如果你在使用一台电脑,你要么是在赚钱,要么就是一个极客……那么发生了什么变化呢?
Printers and consumer-level desktop publishing. Meant you didn't need a printing press to make high-volume, high-quality printed material. That was big - of course, nowadays we completely take it for granted, and mostly we don't even bother with the printing part because everyone's online anyway. Colour. Seriously. Colour screens made a huge difference to non-geeks' perception of games & applications. Suddenly games seemed less like hard work and more like watching TV, which opened the doors for Sega, Nintendo, Atari et al to bring consumer gaming into the home. Media compression (MP3s and video files). And a whole bunch of things - like TiVO and iPods - that we don't really think of as computers any more because they're so ubiquitous and so user-friendly. But they are.
我认为,这里的共同点是曾经不可能的事情(制作打印文档;准确再现彩色图像;实时向世界各地发送消息;分发音频和视频材料),当时因为设备和物流成本昂贵,现在是消费者水平。那么,大公司现在在做什么过去是不可能的,但如果我们能想出如何做小而便宜的事情,可能会很酷?
任何涉及物理运输的东西都是有趣的。视频会议(目前)还没有取代真实的会议,但如果技术合适,它仍有可能取代真实的会议。一些休闲旅行可以被全感官沉浸式环境所取代——家庭影院就是一个微不足道的例子;另一个是位于Soho区一栋写字楼内的“虚拟高尔夫球场”,在这里,你可以在模拟球场上打18洞真正的高尔夫球。
不过,对我来说,下一个真正重要的事情将是制造。做的事情。勺子,吉他,椅子,衣服,汽车,瓷砖什么的。这些仍然依赖于生产和分销基础设施。我再也不用去商店买电影或专辑了——什么时候我就不用去商店买衣服和厨具了?
Sure, there are interesting developments going on with OLED displays and GPS and mobile broadband and IoC containers and scripting and "the cloud" - but it's all still just new-fangled ways of putting pictures on a screen. I can print my own photos and write my own web pages, but I want to be able to fabricate a linen basket that fits exactly into that nook beside my desk, and a mounting bracket for sticking my guitar FX unit to my desk, and something for clipping my cellphone to my bike handlebars.
与编程无关?不…但在1980年,声音制作也不是。或者视频分发。或者给赞比亚的亲戚发信息。大处着眼,伙计们……:)
多代理系统。
你可以回到分布式人工智能的根源,我认为仍然可以安全地呆在80年代。
多智能体系统有很多组成部分,有很多研究涉及语言行为或合作,所以很难指出并说“看,这里,这是不同的,创新的和重要的!”但我还是会试试的。: -)
我认为信念-欲望-意图模型尤其值得注意。智能体在内部构建了世界的模型。他们有特定的愿望或目标,并制定计划,如何与他们所知道的世界互动,以实现这些目标,从而形成意图。
或者打个比方,电影《创》(Tron)中的角色对他们周围的世界是如何运作的有一定的了解。他们不了解整个世界,他们可能会对世界的某些部分产生误解。但他们有愿望和目标,他们提出了进一步实现目标的计划。如果你看过《创》,我相信你会有类似的感觉。
它还没有对计算机产生太大的影响。但是,你看,那些对计算机产生影响的东西似乎需要几十年的时间。参见:OOP, GC,字节码编译。
受保护的内存。在保护内存之前,如果你的程序犯了错误,你可以在任何地方开始执行代码——实际上总是挂起整个机器。没错,重启时间到了!
硬件成本低。我的第一台电脑在1978年花了500美元——这在当时是一笔巨款。降低成本让每个人的办公桌上都有了电脑。