这个问题来自于对过去50年左右计算领域各种进展的评论。
其他一些与会者请我把这个问题作为一个问题向整个论坛提出。
这里的基本思想不是抨击事物的现状,而是试图理解提出基本新思想和原则的过程。
我认为我们在大多数计算领域都需要真正的新想法,我想知道最近已经完成的任何重要而有力的想法。如果我们真的找不到他们,那么我们应该问“为什么?”和“我们应该做什么?”
这个问题来自于对过去50年左右计算领域各种进展的评论。
其他一些与会者请我把这个问题作为一个问题向整个论坛提出。
这里的基本思想不是抨击事物的现状,而是试图理解提出基本新思想和原则的过程。
我认为我们在大多数计算领域都需要真正的新想法,我想知道最近已经完成的任何重要而有力的想法。如果我们真的找不到他们,那么我们应该问“为什么?”和“我们应该做什么?”
当前回答
如果我们作为一个团体认真地回答这个问题。 不幸的是,我相信我们需要的不仅仅是一串随机的善意的帖子! 我知道,这听起来很无聊,但经常把事情做完才是!
We Write a list of powerful ideas in the area of computing Maybe we should define a few categories to separate each one because videoconference somehow does not fit well with object oriented programming. Seeing ideas by categories makes it easier to generate them without redundancy. It's too easy to sidetrack in teleportation if quantum computing is not kept away from flying cars. Try to attribute each of them a date This will settle the before/after 1980 and restrict debate about each idea to its own. It will be fun to dig for earliest reference, first known implementation, etc. Plus this will allow people like me who were 2 years old in 1980 to have a better idea of what was common programming knowledge in 1980 (nothing beats being there at the time) Try to attribute each of them the current state of their implementation Ok, some idea were sci-fi in 1850, with early development in the 1970 and serious improvement breakthrough in the 1990. Some ideas are just starting to get around. Some are almost forgotten. Probably the wiki thing is a good idea. I think this could really get somewhere if slightly organized. I did not check, but maybe this whole thing already exist already on the net (I usually find that if you think about something, someone already did it). What do you think ? Cheers !
其他回答
低成本/家用电脑。直到20世纪80年代初,人们(至少在布莱蒂)才真正听说过这件事。如果没有家用计算机,有多少人会把计算机作为一种职业?甚至把它当作一种爱好?
就我自己而言,如果我的父母没有在1982/1983年得到Clive Sincliar的简陋的橡胶键盘ZX Spectrum,我现在可能不会在这里。这不仅仅是演讲:C64、Vic-20、Acorn Electron、BBC A/B/Master、Oric-1、Dragon-32等等都为家用电脑市场注入了活力,并使每一个拥有一台电脑的8岁男孩和女孩都成为了程序员。
如果这不是计算和编程方面的革命,我就不知道什么是……!
另外一个好奇的问题是:在这个网站上,业余程序员和职业程序员的区别是什么?我知道这些数据没有经过整理,但可能会很有趣。
函数式编程研究者对单子的重新发现。单子有助于让一种纯粹的、懒惰的语言(Haskell)成为一种实用的工具;它还影响了组合子库的设计(一元解析器组合子甚至在Python中找到了自己的方式)。
Moggi的“程序模块的范畴理论解释”(1989)通常被认为是将单子引入有效计算的观点;Wadler的作品(例如,“命令式函数式编程”(1993))将单子作为实用工具。
标签,信息分类的方式。是的,就是每个问题下面的小方框。
令人惊讶的是,标签发明花了大约30年的时间。我们使用了目录和目录;我们使用了为印刷书籍优化的东西。
然而,30年比人们意识到印刷书籍可以用更小的格式的时间短得多。人们可以把书放在手里。
我认为核心CS玩家低估了标签概念。所有的研究都集中在自然语言处理(自顶向下的方法)。但是标签是第一种计算机和人类都能很好理解的语言。这是一种自底向上的方法,使计算机使用自然语言。
我认为自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.
在社区支持下,翻译软件可以进行手动更正和建议,随后由人工智能机器人形成模式,最终区分并正确预测不同翻译和上下文中的歧义。
虽然谷歌Translate可能不是野兽,但它是一个系统的母亲,或者可能是等待开发的祖母。
如果你仔细想想,文本语言实际上是大脑的输入,眼睛看到文本并将图像发送到大脑,然后大脑将其转化为理解。
虽然它真正的交流(尤其是人与人之间的交流)是一个高级的话题,但基本的是输入(带上下文)->翻译->理解。
为什么我们仍然没有真正的好办法给远方的同事或不会说我们语言的伙伴发送电子邮件?这显然是第一阶段。
一旦完成,我们就可以进行实时电话翻译之类的工作了。
相反,月复一月,我们最大的智力资产被用于其他更重要的项目,比如太空研究、流星探测,或者试图证明《圣经》是错的(打哈欠)。
我们把更多的时间花在基本的实际交流上怎么样?