这个问题源于对过去50年左右计算中不同类型进展的评论.
其他一些参与者要求我将其作为整个论坛的问题提出来.
这里的基本思想不是抨击当前的事物状态,而是试图了解提出基本新思想和原则的进展情况.
我声称在大多数计算领域我们需要真正的新想法,而且我想知道最近已经完成的任何重要和强大的想法.如果我们真的找不到它们,那么我们应该问"为什么?" 和"我们该怎么办?"
互联网本身早于1980年,但由Tim Berners-Lee提出和实施的万维网(通过简单机制分发的超文本)始于1989/90年.
虽然之前存在超文本的想法(Nelson的Xanadu试图实现分布式方案),但WWW是实现分布式超文本系统的新方法.Berners-Lee以一种功能强大且易于实现的方式结合了简单的客户端 - 服务器协议,标记语言和寻址方案.
我认为大多数创新都是以原始方式重新组合现有作品而创建的.WWW的每个部分之前都以某种形式存在,但这种组合在后见之明是显而易见的.
我肯定知道你现在正在使用它.
自由软件基金会(1985年成立)
即使你不是他们哲学的全心支持者,他们一直在推动自由软件,开源的想法对软件行业和一般内容产生了惊人的影响(例如维基百科).
我认为可以公平地说,在1980年,如果你使用电脑,你要么得到报酬,要么你是一个极客...所以改变了什么?
打印机和消费级桌面出版.你不需要印刷机来制作高容量,高质量的印刷材料.这很重要 - 当然,现在我们完全认为它是理所当然的,而且大多数情况下我们甚至不打扰打印部分,因为无论如何每个人都在线.
颜色.认真.彩色屏幕对非极客对游戏和应用的看法产生了巨大的影响.突然间,游戏看起来不像是努力工作,更像是看电视,这为Sega,Nintendo,Atari等人打开了大门,将消费者游戏带入家庭.
媒体压缩(MP3和视频文件).还有很多东西 - 比如TiVO和iPod--我们不再把它当作计算机了,因为它们无处不在且用户友好.但他们是.
我认为,这里的共同点是曾经不可能的东西(制作印刷文件;准确地再现彩色图像;实时向全世界发送信息;分发音频和视频材料),然后由于设备和物流而昂贵涉及,现在是消费者级别.所以 - 现在大企业在做什么过去是不可能的,但如果我们能够解决如何做到小而便宜的话,可能会很酷?
任何仍然涉及实际交通的东西都很有趣.视频会议尚未取代真正的会议 - 但是使用合适的技术,它仍然可能.一些充满感官的沉浸式环境可以消除一些休闲旅行 - 家庭影院是一个微不足道的例子; 另一个是位于Soho办公大楼的"虚拟高尔夫球场",您可以在模拟球场上打18洞真正的高尔夫球.
但对我来说,下一个非常重要的事情就是制作.制作东西.勺子和吉他和椅子和衣服和汽车和瓷砖和东西.仍然依赖于制造和分销基础设施的事情.我不必去商店买电影或专辑了 - 多长时间才能到商店买衣服和厨具?
当然,OLED显示器和GPS以及移动宽带和IoC容器和脚本以及"云"都有一些有趣的发展 - 但它们仍然只是将图片放在屏幕上的新方式.我可以打印自己的照片并编写自己的网页,但我希望能够制作一个亚麻篮子,它恰好适合我桌子旁边的那个角落,还有一个用于将我的吉他FX单元固定在我桌子上的安装支架,以及一些东西.把我的手机夹到我的自行车车把上.
没有编程相关?不......但在1980年,两者都没有合理的产量.或视频分发.或者向赞比亚的亲戚发送信息.想想大,人...... :)
包管理和分布式版本控制.
软件开发和分发方式的这些模式是最新的,并且仍然刚刚开始产生影响.
Ian Murdock称包管理是 "Linux给业界带来的最大进步".好吧,他会的,但他有一点意见.自1980年以来,软件的安装方式发生了重大变化,但大多数计算机用户仍然没有经历过这种变化.
乔尔和杰夫一直在谈论版本控制(或版本控制或源控制)与埃里克库 中的播客#36.似乎大多数开发人员还没有赶上集中式系统,而DVCS被广泛认为是神秘且不必要的.
来自播客36的成绩单:
0时06分37秒
阿特伍德: ......如果你认为 - 这是一个很大的假设 - 大多数开发人员都有点掌握基本的源代码控制 - 我发现这不是真的,坦率地......
Spolsky: 不.他们中的大多数人,即使他们有,也是他们理解的签到,签出,但是分支和合并 - 这使他们感到困惑.
BitTorrent.它彻底改变了以前似乎是一个明显不可改变的规则 - 一个人通过互联网下载文件所需的时间与下载它的人数成比例增长.它还解决了以前的点对点解决方案的缺陷,特别是围绕'leeching',以一种对解决方案本身有机的方式.
BitTorrent优雅地改变了通常的缺点 - 许多用户试图同时下载单个文件 - 成为一个优势,在地理上分发文件作为下载过程的自然部分.其优化两个对等体之间带宽使用的策略阻碍了作为副作用的吸收 - 所有参与者的最佳利益是强制执行限制.
这是其中一个想法,一旦其他人发明它,似乎很简单,如果不是显而易见的话.
Damas-Milner类型推断(通常称为Hindley-Milner型推断)于1983年出版,并且一直是每个复杂静态类型系统的基础.这是编程语言中一个真正的新概念(基于20世纪70年代发表的观点,但直到1980年之后才开始实践).在重要性方面,我提出了Self和用于实现Self的技术; 在影响方面它没有同行.(OO世界的其余部分仍在对Smalltalk或Simula进行修改.)
类型推断的变化仍在发挥作用; 我最常提出的变化是Wadler和Blott 用于解决重载的类型类机制,后来发现它为类型级别的编程提供了非常强大的机制.这个故事的结尾仍然在写.
这是谷歌map-reduce的插件,不仅仅是为了它本身,而是作为谷歌在不可靠的商用机器农场上运行快速,可靠服务的代理.绝对是一项重要的发明,与1980年统治重量级计算的大型铁主机方法完全不同.
标记,信息分类的方式.是的,每个问题下的小文字框.
发明标签花了大约30年才令人惊讶.我们使用了列表和目录; 我们使用了针对印刷书籍优化的东西.
然而,30年比人们需要意识到印刷书籍可以更小的格式要短得多.人们可以把书放在手中.
我认为核心CS人员之间的标记概念被低估了.所有研究都集中在自然语言处理(自上而下的方法).但标记是计算机和人们都能很好理解的第一种语言.这是一种自下而上的方法,使计算机使用自然语言.
我认为我们正在以错误的方式看待这个并得出错误的结论.如果我做对了,循环就会:
想法 - >首次实施 - >少数民族收养 - >临界质量 - >商品
从最初的想法到商品,你经常有几个世纪,假设这个想法永远达到了那个阶段.达芬奇可能在1493年画了一种直升飞机,但需要大约400年的时间才能让一台真正的机器升空离地.
从William Bourne在1580年对潜艇的第一次描述到1800年的第一次实施,你已经有220年了,目前的潜艇还处于起步阶段:我们几乎都不知道水下旅行(海洋中有2/3的星球,想想潜在的房地产;).
而且没有任何迹象表明我们从未听说过早期的,早期的想法.根据一些传说,看起来亚历山大大帝在公元前332年使用了某种潜水钟(这是潜艇的基本概念:一种携带人和海底空气供应的装置).相信这一点,我们正在考虑从创意(即使是基本原型)到产品的2000年.
我所说的是,今天寻找实现,更不用说1980年以前甚至没有想法的产品了......我认为,"快速排序"算法被中国古代的一些没有名字的文件职员使用了.所以呢?
40年前有网络计算机,当然,但这与今天的互联网不相上下.基本的想法/技术在那里,但无论你不能在网上玩魔兽游戏.
我声称在大多数计算领域我们需要真正的新想法,而且我想知道最近已经完成的任何重要和强大的想法.如果我们真的找不到它们,那么我们应该问"为什么?" 和"我们该怎么办?"
从历史上看,我们从来没有能够"快速地"找到与这个想法相近的"找到它们".我认为周期越来越快,但计算仍然很年轻.
目前,我正在试图弄清楚如何制作全息图(星球大战的那种,没有任何物理支持).我想我知道如何让它发挥作用.我甚至没有收集工具,材料和资金,但即使我要在任何程度上取得成功,实际的想法已经有几十年了,至少和相关的实施/技术已经使用了很长时间.
一旦您开始列出实际产品,您就可以确定概念和首次实现是否存在.无所谓.
你可以用某种理由争辩说,没有什么是新的,永远的,或者说一切都是新的,永远.这种哲学和两种观点都可以得到捍卫.
从实际的角度来看,真相介于两者之间.真理不是二元概念,布尔逻辑被诅咒.
中国人可能会在不久前推出印刷机,但大约只有10年的时间,大多数人可以在家里以合理的价格打印出体面的彩色照片.
根据您的标准和参考框架,发明无处不在.
谷歌的网页排名算法.虽然它可以被视为网络爬行搜索引擎的改进,但我会指出它们也是在1980年后开发的.
DNS,1983和依赖性的进步,如通过MX记录而不是bang-paths的电子邮件主机解析.*不寒而栗*
Zeroconf在DNS,2000上工作.我将打印机插入网络,我的笔记本电脑看到它.我在网络上启动一个Web服务器,我的浏览器就可以看到它.(假设他们广播他们的可用性.)
NTP(1985)基于Marzullo算法(1984).准确的时间超过紧张的网络.
鼠标滚轮,1995年.使用没有它的老鼠感觉如此原始.不,这不是恩格尔巴特团队想到的,忘了提及.至少当我问一个当时在团队中的人时.(这是1998年左右的一些恩格尔巴特事件.我得到了第一批老鼠之一.)
Unicode,1987及其对不同类型的编码,规范化,双向文本等的依赖性进展.
是的,人们每天使用其中的所有5个是很常见的.
这些"真的是新想法吗?" 毕竟,有老鼠,有字符编码,有网络计时.告诉我如何区分"新"和"真正的新",我会为你回答这个问题.我的直觉说这些都是新的.
在较小的领域,最近的进展很容易.例如,在生物信息学中,Smith-Waterman(1981)和更特别是BLAST(1990)有效地使该领域成为可能.但听起来你要求的是整个计算领域中非常广泛的想法,并且首先选择低调的果实.因此它始终是一个新的领域.
数码相机怎么样?
根据维基百科的说法,第一台真正的数码相机出现在1988年,大众市场数码相机在20世纪90年代后期变得可以负担得起.
现代着色语言和现代GPU的盛行.
GPU也是一款低成本的并行超级计算机,具有CUDA和OpenCL等工具,可用于快速高级并行代码.感谢所有那些游戏玩家降低这些日益令人印象深刻的硬件奇迹的价格.在接下来的五年里,我希望每台售出的新电脑(以及iPhone都能)能够运行大规模并行代码作为基本假设,就像24位彩色或32位保护模式一样.
JIT编译是在20世纪80年代后期发明的.
解决两个问题:"为什么新思想的死亡",以及"该怎么做"?
我怀疑很多缺乏进展是由于资本大量涌入和行业中根深蒂固的财富.听起来违反直觉,但我认为任何新想法都是一次性的,这已成为传统智慧; 如果它没有在第一次尝试,它不能回来.它被一个有着根深蒂固的利益的人买走,或者只是失败了,能量消失了.几个例子是平板电脑和集成办公软件.牛顿和其他几个人都有真正的潜力,但最终(通过竞争性的消耗和糟糕的判断)浪费了他们的出生权,杀死了整个类别.(我特别喜欢Ashton Tate的框架;但我仍然坚持使用Word和Excel).
该怎么办?首先想到的是Wm.莎士比亚的建议是:"让我们杀死所有的律师." 但是现在他们的武装太好了,我害怕.我认为最好的选择是找到某种开源计划.他们似乎比替代品更好地保持可访问性和增量改进.但是这个行业已经变得足够大,所以必须采取某种有机协作机制才能获得牵引力.
我还认为,有一种动态,即根深蒂固的利益(特别是平台)需要大量的变革 - 流失 - 来证明持续的收入来源; 这吸收了许多可能以更好的方式花费的创造力.看看我们花了多少时间用微软或Sun或Linux或Firefox的最新版本进行测试,从而对大部分工作正常的系统进行了更改.这不是因为它们是邪恶的,它只是建立在行业中.没有稳定均衡这样的东西; 所有反馈机制都是积极的,有利于改变稳定性.(你有没有看到一个功能撤销,或者一个变更撤回?)
在SO上讨论的另一个线索是臭鼬综合症(参考:Geoffrey Moore):大型组织中的真正创新几乎总是(90%以上)出现在自发出现的未经授权的项目中,仅由个人或小团体倡议推动(而且往往不受正式管理层级的反对).所以:问题权威,降低系统.
令我震惊的一件事是简单的电子表格.非程序员通过简单的公式网格为现实世界问题构建了疯狂而精彩的解决方案.在桌面应用程序中复制他们的工作通常需要比编写电子表格所花费的时间长10到100倍,并且生成的应用程序通常更难以使用并且充满了错误!
我认为电子表格成功的关键是自动依赖性分析.如果电子表格的用户被迫使用观察者模式,他们就没有机会正确使用它.
因此,最大的进步是自动依赖性分析.现在为什么没有任何现代平台(Java,.Net,Web Services)将其构建到系统的核心?特别是在通过并行化扩展的时代 - 依赖关系图导致平行重新计算.
编辑:Dang - 刚刚检查过.VisiCalc于1979年发布 - 让我们假装它是1980年后的发明.
编辑2:似乎Alan已经注意到电子表格 - 如果把他带到这个论坛的问题是正确的!
软件:
虚拟化和仿真
P2P数据传输
社区驱动的项目,如维基百科,SETI @ home ......
网络爬行和网络搜索引擎,即分布在世界各地的信息
硬件:
模块化PC
电子纸
功能编程研究人员重新发现monad.monad有助于使纯粹的懒惰语言(Haskell)成为一种实用的工具; 它也影响了组合库的设计(monadic解析器组合甚至已经进入Python).
Moggi的"程序模块的类别理论说明"(1989)通常被认为是将monad带入有效计算的视野; Wadler的工作(例如,"Imperative functional programming"(1993))将monad作为实用工具.
收缩软件
在1980年之前,软件大多是专门编写的.如果你经营一家企业,并想要计算机化,你通常会得到一台计算机,编译器和数据库,并自己写东西.商业软件通常是为了适应商业惯例而编写的.这并不是说没有罐装软件(我曾在1980年之前使用SPSS),但它不是常态,我所看到的往往是基础设施和研究软件.
如今,您可以去电脑商店,在货架上找到经营小型企业所需的一切.它不是为了适应您曾经拥有的任何实践而设计的,但是一旦您学会根据其工作流程或多或少地开展工作,它就能很好地工作.使用SAP和PeopleSoft之类的东西,大型企业比以往更接近收缩包装.
这不是一个干净的休息,但在1980年之后,从昂贵的定制软件到低成本的现成软件的转变非常明确,灵活性从软件转向商业程序.
它也影响了软件的经济性.定制软件解决方案可以盈利,但不能扩展.您只能向一个客户收取这么多费用,而且您不能向多个客户销售同样的东西.使用收缩包装软件,您可以销售大量相同的产品,从而在非常大的销售基础上分摊开发成本.(您必须提供支持,但这可以扩展.只需将其视为销售软件的边际成本.)
从理论上讲,如果有一个巨大的赢家来自变革,那么就会有输家.到目前为止,软件业务一直在不断扩大,因此随着区域商品化,其他领域也开放了.这可能会在某个时候结束,适度有才华的开发人员会发现自己陷入了真正的困境,无法为大男孩工作并挤出市场.(这可能发生在其他领域;我怀疑对会计师的需求比没有QuickBooks之类的要小得多.)
在硬件创新之外,我倾向于发现太阳下很少或没有新东西.大多数真正重要的想法可以追溯到像冯·诺伊曼和艾伦·图灵这样的人.
如今,许多标记为"技术"的东西实际上只是某个人编写的程序或库,或者用新的隐喻,缩写或品牌名称翻新旧的想法.
计算机蠕虫在上世纪八十年代早期在施乐帕洛阿尔托研究中心进行了研究.
来自John Shoch和Jon Hupp的"蠕虫"节目 - 分布式计算的早期经验 "(ACM通讯,1982年3月第25卷第3期,第172-180页,1982年3月):
在The Shockwave Rider中,J.Brunner 开发了一种无所不能的"绦虫"程序的概念,该程序通过计算机网络松散运行 - 这个想法可能看起来相当令人不安,但这也超出了我们目前的能力范围.然而,基本模型仍然是一个非常具有挑衅性的模型:可以从一台机器移动到另一台机器的程序或计算,根据需要利用资源,并在必要时复制自身.
同样,我们曾经描述过基于经典科幻电影The Blob的计算模型:一个程序开始在一台机器上运行,但随着它对计算周期的兴趣增长,它可以伸出手,找到未使用的机器,并发展到包含这些资源.在半夜,这样的计划可以在一座建筑物中动员数百台机器; 在早上,当用户收回他们的机器时,"blob"必须以有序的方式撤退,收集其计算的中间结果.白天在一台或两台机器上安装,程序可能会在资源可用时再次出现,再次扩大计算范围.(这种对夜间探索的亲和力导致一位研究人员将这些描述为"吸血鬼计划".)
引用Alan Kay:"预测未来的最好方法就是发明它."
更好的用户界面.
今天的用户界面仍然很糟糕.我并不是以小的方式,而是以大的,根本的方式.我不禁注意到,即使是最好的程序仍然具有极其复杂的界面,或者需要以其他方式进行大量抽象思考的界面,而且这些界面不会接近传统的非软件工具.
当然,这是因为软件允许比传统工具做得更多.但是,没有理由接受现状.此外,大多数软件都做得不好.
一般来说,应用程序仍然缺乏某种"正常工作"的感觉,这种感觉太过于可以做什么,而不是应该做什么.有一点一直被提出,而这仍然没有解决,是保存的重点.应用程序崩溃,破坏了工作时间.我习惯每隔几秒按一次Ctrl + S(当然,这不再适用于Web应用程序).为什么我要这样做?这是令人费解的愚蠢.这显然是自动化的任务.当然,应用程序还必须为我做的每个修改(基本上是无限撤消列表)保存差异,以防我出错.
解决这个问题实际上并不困难.在每个应用程序中实现它都很困难,因为没有好的API可以做到这一点.在允许在所有平台和程序中轻松实现此类effords之前,编程工具和库必须得到显着改进,适用于具有任意备份存储且无需用户交互的所有文件格式.但是,在我们最终开始编写"好"应用程序而不仅仅是适当的应用程序之前,这是必要的步骤.
我相信Apple目前在某些方面近似于"正常工作"的感觉.以他们最新版本的iPhoto为例,它具有面部识别功能,可以自动将出现在其中的人对照片进行分组.这是一项经典任务,用户不想手动执行,也不理解计算机不自动执行此操作的原因.甚至iPhoto距离良好的UI还有很长的路要走,因为所述功能仍然需要用户的最终确认(对于每张照片!),因为脸部识别引擎并不完美.
HTM系统(Hiearchical Temporal Memory).
一种新的人工智能方法,由杰夫霍金斯通过" 情报 " 一书发起.
现在,作为一家名为Numenta的公司活跃起来,通过开发"真正的"AI来对这些想法进行测试,邀请社区通过SDK使用系统参与.
它更多的是从头开始构建机器智能,而不是试图模仿人类推理.
采用人机交互物理学提供替代方案,可以理解的比喻.这与手势和触觉相结合可能会导致70年代发明的当前常见GUI隐喻的替换以及自80年代中后期以来的常用GUI隐喻.
1980年没有计算能力来实现这一目标.我相信奥运会可能在这里引领潮流.在iPod Touch/iPhone中列表滚动的交互中可以很容易地看到一个例子.交互机制依赖于动量和摩擦如何在现实世界中工作的直觉,以提供滚动项目列表的简单方式,并且可用性依赖于导致滚动的物理手势.
我相信单元测试,TDD和持续集成是1980年以后的重大发明.
手机.
虽然第一个"无线电话"专利是在1908年,他们正在烹饪很长时间(1945年0G,1979年在日本推出1G),现代2G数字手机直到1991年才出现.短信不存在直到1993年,互联网接入出现在1999年.
我从1980年1月2日开始编程.我试图在我的职业生涯中考虑重要的新发明.我很难想到.我认为重要的大多数实际上是在1980年之前发明的,但直到之后才被广泛采用或改进.
图形用户界面.
快速处理.
大记忆(我1980年以16k支付了200.00美元).
小尺寸 - 手机,掌上电脑,iPhone,上网本.
存储容量大.(我已经从携带一个大的90k软盘到8 gig usb拇指驱动器.
多个处理器.(现在几乎所有的计算机都有不止一台,软件很难让他们忙碌).
标准接口(如USB)可轻松连接硬件外围设备.
多点触控显示.
网络连接 - 导致90年代中期的互联网爆炸.
IDE使用Intellisense和增量编译.
虽然硬件已经大大改善,但软件行业一直在努力跟上.我们比1980年还要光明,但大多数改进都是改进而不是发明.自1980年以来,我们一直忙于应用我们所做的进步而不是发明.大多数这些增量发明本身并不重要或强大,但是当你回顾过去29年时它们是非常强大的.
我们可能需要接受渐进式改进并引导它们.我相信真正原创的想法可能来自那些几乎没有接触过计算机的人,而且他们变得越来越难找.
没有.
我认为这是因为人们改变了态度.人们过去常常相信,如果他们只是找到那个"大创意",那么他们就会把它变得富有.今天,人们认为这是执行而不是发现最多的.你有咒语,如"想法是一毛钱一打"和"第二只老鼠得到奶酪".所以人们专注于利用现有的想法,而不是提出新的想法.
开源社区发展.
在iPad上(2010年4月发布):当然,这样的一个概念是绝对的革命!
alt text http://www.ubergizmo.com/photos/2010/1/apple-ipad//apple-ipad-05.JPG
Alan Kay 从1970年代开始就没有看到它!
想象一下这样一个"个人,便携式信息操纵器"......
...
等待?什么!?该Dynabook的你说什么?
早在1968年就被Alan Kay想到了,并在1972年的论文中详细描述了 ??
NOOOooo ooooo ....
哦,好吧......没关系.
关于社交计算的想法自1980年以来取得了进展. 井开始于1985年.虽然我确信以前有过在线社区,但我相信该地区的一些真正见解发生在1980年后.社会社区的不利动态方面他们在软件系统上的互动很像塔科马海峡大桥的灾难.
我认为Clay Shirky在该领域的工作阐明了这些影响以及如何减轻这些影响.我会说社交软件见解的有趣真实世界的例子包括reCAPTCHA和维基百科等,其中由软件调解的参与者完成了重要的有价值的工作.
我认为自20世纪80年代以来发明的最好的想法将是我们不知道的.无论是因为它们如此小而且无处不在,或者因为它们的受欢迎程度还没有真正起飞.
前者的一个示例是单击并拖动以选择文本的一部分.我相信它首先出现在1984年的Macintosh上.在此之前,你有一个单独的按钮来选择选择的开始和选择的结束.相当繁重.
后者的一个例子是(可能是)可视化编程语言.我不是说像超级卡,我的意思是像Max/MSP,Prograph,Quartz Composer,yahoo pipe等.目前它们真的是利基,但我怎么看,它真的没有什么能阻止它们像作为标准编程语言的表达和强大,除了思想共享.
可视化编程语言有效地强制执行参考透明度的函数式编程范例.对于代码来说,这是一个非常有用的属性.他们执行此操作的方式也不是假想的 - 它只是凭借他们使用的隐喻.
VPL的编程可供无法编程的人使用,例如有语言障碍的人,如阅读障碍,甚至只是需要简单节省时间的外行人.专业的程序员可能会嘲笑这一点,但就个人而言,我认为如果编程成为一种普遍存在的技能,如识字,那将是很好的.
尽管如此,VPL仍然是一个利基市场,并没有真正成为主流.
我们应该做些什么
所有计算机科学专业都应该被要求将CS专业与其中一门人文学科相结合.绘画,文学,设计,心理学,历史,英语,等等.很多问题是,这个行业的人们对这个世界有一个非常狭隘和缺乏想象力的理解,因此无法想象计算机的工作方式与现有的有很大不同.(如果有帮助的话,你可以想象我说的是你以外的人,读这个的人.)数学很棒,但最终它只是一个实现的工具.我们需要了解创造力本质的专家,他们也了解技术.
但即使我们拥有它们,也需要有一种环境,在这种环境中,做一些新事物可能会带来风险.任何真正的新东西都被淘汰出局的可能性要高出100倍,相当恶劣.(牛顿就是这样的一个例子).所以我们需要更高的容忍度.我们不应该害怕尝试过去失败的想法.我们不应该完全拒绝我们自己的失败 - 我们应该学会认识到失败的时候.我们不应该把失败视为坏事,因此我们不应该对自己或其他人撒谎.我们应该习惯它,因为它只是这个不断变化的行业中唯一的常数.在这方面,验尸是有用的.
关于smalltalk的一个更有趣的事情,我认为,不是语言本身,而是用于实现smalltalk设计的过程.迭代设计过程经历了许多修订 - 但也非常谨慎和批判性地识别现有系统的缺陷,并在下一个系统中找到解决方案.观点越多,我们对情况的看法越广泛,我们就越能判断出错误和问题的位置.所以不要只研究计算机科学.学习许多其他学术科目,你可以让自己感兴趣.
当然,1980年以前的日子是Xerox PARC的辉煌岁月.当GUI,鼠标,激光打印机,互联网和个人计算机都被创建时返回.(因为我太年轻,以至于当时还活着,而且你正在努力发明所有这些,我不能告诉你关于1980年你还不知道的任何事情,所以让我们继续前进.)
问题是,虽然,预1980天是很多更有活力在真正的颠覆性新技术方面.这就是任何新领域的方式 - 在过去的100年里,你在铁路上看到过许多改变游戏规则的技术进步吗?你有多少人看过灯泡?在印刷机?一旦某些东西点燃了正确的圈子中的炒作,就会有一个爆炸性的发明时期,然后是长时间的成熟.在那之后,除非基本情况发生变化,否则你不会再看到同样完全激进的变化.
幸运的是,这可能发生在许多领域,并且已经发生在其他一些领域:
移动性 - 智能手机将计算带入真正的便携式平台,很快将包括基于位置的服务和基于邻近度的ad-hoc网络.这是一个全新的范例,可能像GUI一样改变游戏规则
WWW(HTTP,HTML和DNS)已经被提及并且是该列表的一个明显的补充,因为它在全球范围内实现全球,廉价,主流的丰富通信 - 所有这一切都归功于计算平台
在界面方面,触摸,多点触控(Jeff Han浮现在脑海中)和Wiimote都需要提及.目前,它们基本上是好奇心,但早期的GUI也是如此.
OOP设计模式 - 更高级别的解决方案,作为解决难题的最佳实践.根据你对"计算"的定义,它可能属于也可能不属于列表,但如果你把OOP算作1980年以前的重大进步(我当然这样做),我认为设计模式和GoF也值得一提
谷歌的PageRank和MapReduce算法 - 我很高兴地注意到我并不是第一个提及它们的人,并且认真地说 - 世界在哪里都没有它们的原则?我清楚地记得他们面前的世界是什么样的,只要说谷歌真的是我的朋友就足够了.
非易失性存储器 - 它位于硬件方面,但它将在计算的未来发挥重要作用 - 例如,使启动时间成为过去,并使我们能够以全新的方式使用计算机
语义(自然语言)搜索/分析/分类/翻译......我们还没到那里,但像Powerset这样的公司给人的印象是我们处于危险边缘.
在这方面,智能HTM也应该在这个列表中.我是杰夫霍金斯的模型和方法的又一个信徒,如果它有效,它将意味着完全重新定义计算机可以做什么,它对人类意味着什么,以及世界可以从这里走向何方.以这种方式创建一个真正的智能(综合)将是比任何人类已经完成过的任务更大.
GNU + Linux
3D打印/快速原型制作(及时,制造)
P2P(也导致VoIP等)
电子墨水,一旦技术成熟了一点
RFID可能属于列表,但判决结果仍然存在
量子计算是列表中最明显的元素,除了我们仍然无法获得足够的量子比特.然而,我在场的朋友告诉我,即使在我们说话的时候,仍然有令人难以置信的进步,所以我对那个人保持呼吸.
最后,我想提到一个个人喜爱的:分布式智能,或其他名称:人工智能.将大量人员连接到网络中并允许他们通过某种形式的问答环境访问其他人的综合思想的想法.最近有很多次,雅虎答案,Askville,亚马逊机械土耳其人等,但在我看来,这些都是很多人都错过了......很像分布式超文本的许多实现来了在Tim Berners-Lee的HTML之前,或谷歌之前的许多网络爬虫.说真的 - 有人需要在"蜂巢头脑"中建立一个搜索界面,以便将其他所有人都赶出水面.恕我直言 - 这只是时间问题.
重组是我们需要的,而不是重塑.
我们现在拥有所需的所有硬件和软件组件,可以在未来几年内完成令人惊叹的事情.
我相信科学中存在一种疾病,参与者总是试图发明一些新东西以区别于其他人.这与编写或教授旧作品的一些混乱工作形成对比.
构建"新"事物的人通常被认为具有比重用现有和几乎古老作品的人更高的血统.(古代要说一个20岁的人,就像Lisp所说的那样,过去的生活时间超过了他们的两倍.1958年)
好的旧观念需要复活和广泛传播,我们需要停止尝试建立业务或程序员运动,有效地践踏旧电影中的旧作品和系统成为下一个新事物 - 实际上大多数是"新的闪亮" '事情只是旧思想复活的方方面面.
有效的并行化和量子计算 - 我认为这些是已经取得进展的两个领域,并且将对我们对计算能力的使用做出非常重大的改变.
有效的并行化意味着并行化和分发处理,而无需特殊的编程技术,但它在内置于编译器/框架中.
飞行汽车和气垫板.哦等等,那些尚未发明的.但到2015年,我们必须拥有它们.否则回到未来2将是一个很大的谎言!
在主流计算中没有改变的一件事是分层文件系统.这是一种耻辱,IMO,因为在20世纪80年代末和90年代正在进行一些工作,以设计更适合现代,面向对象操作系统的新型文件系统 - 从头开始的OO.
OO操作系统倾向于具有可扩展且灵活的扁平对象存储.我认为EROS项目是围绕这个想法建立的; PenPoint OS是一个20世纪90年代面向对象的操作系统; 而亚马逊S3当然是一个现代的平面物品商店.
在OO中至少有两个想法,我特别喜欢的平面文件系统:
整个磁盘本质上是交换空间.对象存在于内存中,在不需要时被分页,并在它们存在时被带回.不需要与虚拟内存分离的分层文件系统.从某种意义上说,程序"总是在运行".
平面文件/对象存储允许对内容进行索引和搜索,而不是强迫用户提前决定内容与其他内容相关的位置及其名称.可以在平面存储的顶部构建分层系统,但这不是必需的.
正如Alan Cooper在其着作" 关于Face"中所述,分层文件系统是一种kludge,专为20世纪60年代和70年代的计算机而设计,具有有限的内存和磁盘存储.可悲的是,Windows和Unix的普及确保了分层文件系统的统治地位.
几乎所有在现代3D计算机图形中都很重要.光线跟踪(在计算图形意义上)从Whitted的1980年论文开始.行进立方体('87)是从3D数据中提取等值面的标准方法.
虚拟世界,由虚拟的自我(也称为阿凡达)代表,用于社交和角色扮演.
最常被称为MMO - Massive(ly)Multiplayer Online.一些流行的例子包括魔兽世界,无尽的任务,第二人生.
PS:不,他们仍然不需要像80年代极客电影中描绘的那样沉重的头饰.这是一个耻辱....
用于人机交互的触摸屏和动作感应界面.
例如:
适用于PDA,iPhone或Nintendo DS的触摸屏
运动感应,Nintendo Wii控制器或(在较小程度上)PlayStation 3的SixAxis控制器.
唯一的问题是......这些技术真的是80后的吗?
BitTorrent.
至于编程概念,1988年的IoC/Dependancy注入源于1983年.福勒在他的Bliki上有关于概念历史的一些注释.
访问海量数据.
与80年代相比,我们现有数据的庞大规模和规模是巨大的.我们必须对我们的硬件和软件进行大量更改才能存储和显示这些内容.有一天,我们实际上将学习如何获得资格并将其挖掘出有用的东西.有一天.
保罗.
要做的第一件事是定义发明,否则你将走错路.Dictionary.com 的第二个发明定义是:
美国专利法.一种新的,有用的过程,机器,改进等,以前不存在,并且被认为是一些独特的直觉或天才的产物,与普通的机械技能或工艺不同.
因此,自1980年以来,计算领域的新发明很少.有什么?显然有大量新技术和新事物即将发生,但它们是什么?
我们不再发明,我们正在改进主要存在的东西.
CD或光盘最初始于1977年,但直到1982年才被工业界接受.此时第一家按CD的工厂刚刚开始准备就绪.最终,到1985年,CD-ROM(只读存储器)被接受为媒介.CD-RW在5年后出现.(来源:维基百科)
怎么办?好吧,鉴于我们有更大的硬盘驱动器(仍然只是对范例的改进),我们需要更多的空间来取代VHS市场并使视频与计算机兼容.因此,虽然我正在削减对现有CD技术的许多改进,但DVD也出现了.
DVD出现在1995年,是"发明的".(来源:维基百科)
从那以后我们有了:
可写和可重写的DVD
双层DVD
三层和四层DVD(虽然通过简单的驱动程序修订可行,但尚未发布)
HD-DVD
蓝光光盘
显然这个列表并非全包.但请记住新发明,记住我在上面列出的定义.你不能!它们只是光盘概念的变体,只是在同一硬件上的变化,以及现有软件的所有变化.
成本.请注意,对现有产品进行渐进式改进在经济上更便宜.如果我认为有必要或很酷,我可以卖给你一台HD DVD或蓝光光盘,那么我就不需要发布我的三层或四层DVD计划了.事实上,我只是为了获得新技术而向您收取费用,因为您是早期采用者并且您需要我的"新的和改进的!" 硬件.
这称为营销或产品关系.
怎么样?1980年以前,有许多软件创造力在继续,但从那时起,它主要是对已经存在的东西进行改进或重新发明轮子.查看任何操作系统或办公软件包以查看此信息.
就我而言,过去29年几乎没有新发明.我可以长时间地穿越许多行业,但为什么我要打扰?一旦你开始考虑它,并开始将"发明"与先前的类似产品进行比较......你会发现它非常相似,甚至都不好笑.甚至内燃机自1906年以来一直存在,从那时起该领域没有新的发明; 这个"轮子"的许多改进和变化是,但没有新的发明.
甚至美国在伊拉克部署的新武器 - 一种使用微波炉让人感到震惊的新武器 - 就像他们碰到一个灯泡一样 - 是新的.在安全系统中使用了相同的想法,然后将其分类并从市场上撤下,用超声波使入侵者感到身体不适.这是具有不同波长和应用的武器的定向形式,而不是新发明.
电可擦除可编程存储器,通用于非易失性读/写存储器,是目前最知名且无处不在的闪存. http://en.wikipedia.org/wiki/EEPROM将此列为1984年发明的.
通过为存储介质提供与处理单元相同的一般物理,功率要求,尺寸和稳定性,我们将其作为我们放置处理器的设计中的限制因素.这扩大了我们如何以及在何处将"智能"置于如此众多的智能设备(以及以前从未被认为是智能设备的事物)的可能性,我们仍然在激增.Mp3玩家实际上只是其中的一小部分.
光学计算.似乎它本来应该存在更长时间,但我目前无法找到1982年左右的任何参考(相关的技术,光学晶体管,直到1986年才出现).
万维网已被告知,但更基本的是,我会说"DNS".似乎它是1983年发明的(http://en.wikipedia.org/wiki/Domain_Name_System)和恕我直言,我们可以认为这是互联网协议的发明和传播到世界各地的能力之间的强制性联系.叫做网络.
仍然在"网络"部分,我会添加WIFI.它是在90年代发明的(但我同意它并不完全是"计算",而是与硬件更相关).
在更严格的"算法"部分,我想到了涡轮编码(1993年); 有人说它只是接近香农信号理论定义的限制,但这个论点不会拒绝所有其他答案"一切都已经在Lovelace,Babbage和图灵着作中的种子"吗?
在密码学领域,我将从P.Zimmermann(1991年)中添加PGP程序,该程序为公民带来了一个非常强大(此时)的免费加密程序,并有助于动摇政府对加密的态度.事实上,我认为这是加密"自由化"的因素之一,这是发展电子商务的先决条件.
基础设施的变化,允许从家庭和办公室访问互联网.
从W3C到API的文档化和公认标准
除此之外,大多数我们认为新的日期比你想象的要长很多(例如GUI,OOP).
我认为笔记本电脑是在1980年左右发明的,我也认为笔记本电脑和便携式计算机的发展改变了很多人的生活 - 当然我们这些从事IT工作或使用电脑和旅行的人.
我认为最大的趋势是缺乏位置依赖性和普遍性.如今,一项有趣的哲学练习是计算你所在地区的计算机.他们到处都是台式机,键盘,微波炉,收音机,电视机,手机等......我的祖母电脑是文盲,但她的生活就像其他人一样充斥着小型计算机.她可以从空旷的田野中间打电话给我.然后我可以回答那个拉低高速公路的电话.
声明性编程.
1979年,"计算机程序"势在必行.程序员预计指示双方的编译器是什么做和怎么做.(N1)
今天,ASP.NET WebForms和WPF程序员经常编写代码而不知道或关心它将如何实现.维基百科有其他不太主流的例子.此外,所有SGML衍生的"标记"语言都是声明性的,我怀疑1979年的许多程序员会在30年内预测它们的重要性或普遍性.
尽管声明式编程的概念在1980年之前就已存在(参见1975年的这篇论文),但它的发明是在1985年引入Caml(有争议的)或1990年的Haskell(不那么值得商榷).(N2)从那时起,声明性编程的普及程度大大提高.而且,当大规模多核处理器最终到来时,我们都将成为声明性程序员.
-
注意:
(N1)我不能保证第一手资料,因为我是1979年的胎儿.
(N2)从其他答案来看,似乎人们对发明的概念感到困惑.达芬奇设想了一架直升机,但他没有发明它.问题是关于计算中的发明.
(N3)请不要在评论中提及Prolog(rel.1975),除非你真的在其中构建了一个应用程序.
播客它允许以信息的方式分发信息和辩论.我发现它比标准访谈更具互动性,但比博客评论更少.
即时通讯已经存在很长时间(60年代中后期),但IRC并没有在1988年之前发布.
视频通讯最重要的是,(例如,Windows Live Messenger,或Skype,或......)确实改变了我们沟通的方式 ;)而且是最近的.
<更正>
(参见VideoConferencing:1968,替代文字http://wpcontent.answers.com/wikipedia/en/thumb/6/64/On_Line_System_Videoconferencing_FJCC_1968.jpg/180px-On_Line_System_Videoconferencing_FJCC_1968.jpg,正如Alan Kay 自己在评论中指出的那样:
再次,请查看1968年Engelbart演示的内容(包括实时视频聊天和屏幕共享).IOW,猜测确实无法正常工作.这就是为什么大多数人对事物的发明做出了微弱的假设.)
把它放在我的脸上;),理所当然.
注意:那些时间的"网络摄像头"(视频设置)并非完全针对您的普通起居室;)
校正>
[...恢复答案:]
网络摄像头 alt文本的推广http://wpcontent.answers.com/wikipedia/commons/thumb/c/c5/Logitech_Quickcam_Pro_4000.jpg/180px-Logitech_Quickcam_Pro_4000.jpg也有帮助(1991年开始,第一款这样的相机,名为CoffeeCam ,被指向剑桥大学计算机科学系的特洛伊室咖啡壶.
所以:1980年后:3个中的2个:IRC和网络摄像头.
"美国人没有过去也没有未来,他们生活在一个扩展的现在."这描述了计算的状态.我们生活在80年代延伸到21世纪.唯一改变的是尺寸.艾伦凯
来源: Alan Kay:计算机科学是否是一个Oxymoron?
忆阻器.
虽然这个想法并不比1980年更新,但我相信直到2008年才创造出一种工作模式.如果它能够超越研发,它将是晶体管以来计算机硬件领域最重大的进步.至少,避免二次记忆.
我声称在大多数计算领域我们需要真正的新想法,而且我想知道最近已经完成的任何重要和强大的想法.如果我们真的找不到它们,那么我们应该问"为什么?" 和"我们该怎么办?"
我看待它的方式,我们在计算方面没有太多新想法,因为我们基本上不需要它们.我们一直在挤压旧的想法,并从中获取很多,例如cpu速度的显着增长.
当我们需要新的想法,因为"井已经干了"可以这么说,那么我们将看到必要性是发明的母亲.
我能想到的一项活动是1980年不存在的全局搜索不相交的域名.即谷歌和一些(极少数)前辈 - 所有这些都在1980年后很好.与语法标记的惯例相关联,我认为它有资格作为"新想法"; 但我认为它也刚刚开始; 积累的空间很大.
一种有可能加速这种闪电速度矢量的设备将很快成为组合摄像机/ GIS /电话/网络.它创造了第一次在四维空间中自动收集,分类和聚合数据点的机会.即使是这类数据的繁琐手工收集也在萌芽; 想象什么时候它默认完成.
无论好坏.
设计模式使计算机科学更接近计算机工程.GPS和互联网地址查找基于位置的交互.面向服务的体系结构(SOA).
开放式PC设计导致价格合理的组件(Apple除外):-以及推动创新和降低价格的竞争.这导致了用户进入计算机(有一个终端可以使用)到计算机的巨大变化,这些计算机来自用户并出现在家中甚至是一圈.
有目的的游戏 - 像Luis von Ahn和他的团队正在开发的集体智慧工具可能是1980年以前的一个梦想,但是没有一个广泛部署的网络,有数百万人可用并且需要(例如reCAPTCHA)来实际制作它发生.
IP Multicast(1991)和Van Jacobsen的Dissemination Networking(2006)是自1989年以来最大的发明.
这是一种消极的结果,这是奇怪的"Fundemental创新",但我觉得适用,因为它打开了新的研究领域,并关闭了无用的.
分配共识的不可能性:PODC影响力论文奖:2001
我们假设我们不可能性结果的主要价值是关闭试图找到容错共识算法的非生产性研究.但令我们惊讶的是,它开辟了全新的研究方向.已经分析了对于不可能性证明确切需要关于分布式系统模型的假设.已经发现许多与证据也适用的相关的分布式问题,以及看似类似的问题,这些问题确实存在解决方案.最终开发了一系列研究,其中原语根据其实现无等待容错共识的能力进行分类.
低成本/家庭计算.直到20世纪80年代早期才发现(至少在Blighty这里)的东西.没有家庭计算,有多少人在这里发布作为职业的计算机?或者甚至作为业余爱好1?
我自己,如果我的伙伴们在1982/1983年没有得到Clive Sincliar谦逊的橡胶键ZX Spectrum,我现在可能不会在这里.并不仅仅是斯佩西:C64,Vic-20,Acorn Electron,BBC A/B/Master,Oric-1,Dragon-32等等都为家用电脑市场提供了动力,并且每8年就有一次程序员有权使用其中一个的老男孩和女孩.
如果这不是计算和编程方面的革命,我不知道是什么......!
1好奇旁白:什么是业余爱好者VS本网站亲程序员的故障?我知道这些统计数据没有整理,但可能很有趣.
增强现实.这还没有真正起飞还没有,但想法去我认为这是巨大的,从能够画在地面上虚箭头来帮助你找到你的目的地,到了有用的信息或审美幻想装饰你周围的一切.
想象一下,你的手机在房间里响起,看着它,上方会弹出一个信息气泡,告诉你谁在打电话.这会有多酷?AR将为我们思考和与技术互动的方式带来巨大变化.
闹鬼的房子也可能会变得更加可怕.
我还想提到用于脑 - 计算机接口的脑电图,但显然这是在1970年代首次发明的.
虚拟化?
VirualBox OSE或VMWare等应用程序为我节省了很多时间.
USB