这个问题来自于对过去50年左右计算领域各种进展的评论。

其他一些与会者请我把这个问题作为一个问题向整个论坛提出。

这里的基本思想不是抨击事物的现状,而是试图理解提出基本新思想和原则的过程。

我认为我们在大多数计算领域都需要真正的新想法,我想知道最近已经完成的任何重要而有力的想法。如果我们真的找不到他们,那么我们应该问“为什么?”和“我们应该做什么?”


当前回答

X.500和X.500系列标准(大约1988年)。虽然x.500标准的灵感来自于几十年前的电信标准,但它们具有重要意义,因为它们为LDAP/AD的广泛使用以及我们目前使用的x.509证书铺平了道路。

其他回答

如果我们作为一个团体认真地回答这个问题。 不幸的是,我相信我们需要的不仅仅是一串随机的善意的帖子! 我知道,这听起来很无聊,但经常把事情做完才是!

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 !

自1980年以来,关于社会计算的想法已经取得了进展。油井工程始于1985年。虽然我确信以前有在线社区,但我相信该领域的一些真正的见解发生在1980年之后。社会社区的不利动态方面及其在软件系统上的交互很像塔科马海峡大桥的灾难。

我认为Clay Shirky在该领域的工作阐明了这些影响以及如何减轻它们。我想说,社交软件洞察力的有趣的现实世界的例子包括reCAPTCHA和维基百科,其中重要的有价值的工作是由软件调解的参与者完成的。

我认为没有什么重要的东西被发明出来。但自80年代以来,人们对软件的看法发生了很大变化。那时有更多的理论家参与其中,现在你在一个程序员论坛上问这个问题。

当时的大多数想法都没有得到实施,或者即使实施了,它们也没有任何真正的重要性,因为当时的软件行业还不存在,市场营销、人力资源、开发阶段或alpha版本也不存在:)。

Another reason for this lack of inventions is the fact that most people use Windows:) dont get me wrong, i do hate M$, but look at it this way: you have a perfectly working interface, with nothing new to add to it, maybe just some new colored buttons. Its also closed enough so you wont be able to to anything with it without breaking it. Thats why i prefer open apps, this way you get more "open" people, to whom yo can actually talk, ask then questions, propose new ideeas that actually gets implemented, or at least put on an open todo-list, thus you get some kind of "evolution". You dont really see anything new because you are stuck with the same basic interface "invented" lots of years ago... did anyone actually tried ION window-manager in a production environment? It has a new kind of interface, and actually lets you do things faster, event it it looks quirky

M$, Adobe..you name it,holds lots of patents so you wont be able to base your work on them, or derivatives(you also wont know what kind of undeveloped tehnologies they hold). Look at MP3 and GIF as examples( i belive that they are both free formats now, but they are also kinda dead..) MP3 is the 'king' of audio evend if there are few algorithms out there much better that it..but didnt get enough traction because they weren't pushed on the consumer market. The GIF... come on, 256 colors??? From this point of voew i'm curios how many people from this thread are working on something "open" that will get to be reused in some other projects, and how many on "closed", protected by NDA's projects?

即使这听起来有点像“免费的威利”,但在80年代,软件是免费的,所有东西都有文档,所有硬件都更简单,更容易使用……同时也更加有限,所以人们并没有浪费时间去执行3d游戏或网页,而是致力于真正的算法。

我认为自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.

在操作系统核心开发中使用函数式编程/语言。