这个问题源于对过去50年左右计算中不同类型进展的评论.
其他一些参与者要求我将其作为整个论坛的问题提出来.
这里的基本思想不是抨击当前的事物状态,而是试图了解提出基本新思想和原则的进展情况.
我声称在大多数计算领域我们需要真正的新想法,而且我想知道最近已经完成的任何重要和强大的想法.如果我们真的找不到它们,那么我们应该问"为什么?" 和"我们该怎么办?"
几年前引用Alan Kay的话说,在过去的20年中,软件中只有三件新东西(实际上是PC的寿命).其中一个是Spreadsheets.
有人还记得其他两个吗?
Alan Kay是谁?(有些人可能会问.)他在施乐公园的工作可以说比其他任何影响更能塑造我们当前的软件范式.
在我工作的公司,我们有一个成功的软件产品表现不错,但现在已经过时且不可维护.我想解释一下,为了生存,你需要创新并用新产品替换这个产品.我正在寻找一些公司的好例子,这些公司犯了我们即将犯下的错误 - 依靠一个成功的产品方式超过它的正常生命,所以我可以在做出论证时用它作为例证.
这些产品不一定是软件,象征性的案例,很好地说明了这种情况,但产品不是软件也受到赞赏.
在我看来,在某种程度上,Java是C在不久前的地方.两者都是当时相当简约的语言,具有相对干净,简单的内核.(我指的是这里的核心语言,而不是库.)两者都非常受欢迎.两者都是通用语言,包含大量遗留代码.两者都缺乏一些现代生产力功能,其他语言的程序员经常会错过这些功能.两者似乎都非常惯性,并且适应不断变化的世界.
在我看来,创建一个大致是Java的超集的Java ++是合理的,因为C++是C语言.这样的语言会试图将Java从其经历的相对停滞中解脱出来,仅在少数几个方面打破向后兼容性只有在绝对必要的情况下,才会添加许多现有功能,这些功能可能会缺少普通的旧Java,并且会在以后担心标准化问题.可能是一个好主意的功能包括:
varC#或autoD.你认为会有这种语言的需求吗?你觉得这样的事会成功吗?
编辑:我不是在谈论运行时/字节码级别的兼容性,我在谈论源级别的Java兼容性.此外,是的,Java 7可以添加其中一些,但似乎向Java添加功能的"官方"过程非常保守.真正的观点是将Java分支成一个分支的想法是关注创新而不是稳定性/标准化.
我在一个具有GUI(图形)和API(脚本)接口的应用程序上工作.我们的产品具有非常大的安装基础.许多客户在编写使用我们产品的脚本上投入了大量的时间和精力.
在我们的所有设计和实现中,我们(可以理解)对保持100%向后兼容性有非常严格的要求.当我们引入新的软件版本时,之前运行的脚本必须以完全相同的方式继续运行,无需任何修改.
不幸的是,这种要求有时会牵扯到我们的背后,因为它确实限制了我们的创新能力,并提出了新的更好的做事方式.
例如,我们可能会提出一种更好(更有用)的方法来实现已经可能的任务.我们希望以更好的方式使用默认方式,但我们不能这样做,因为它可能具有向后兼容性含义.因此,我们坚持将新的(更好的)方式作为一种模式,用户必须在其可用之前"打开".除非他们阅读文档或在线帮助(许多客户不这样做),否则这项新功能将永远隐藏起来.
我知道Windows Vista在第一次出现时会让很多人感到恼火,因为所有软件和外围设备都没有用,即使他们在XP上工作也是如此.由于这个原因,它收到了非常糟糕的接待.但是你可以看到,微软也成功地在Vista中进行了一些伟大的创新,但却牺牲了许多用户的向后兼容性.他们冒了风险.它得到了回报吗?他们做出了正确的决定吗?我想只有时间会证明.
您是否发现自己在平衡创新和向后兼容性的冲突需求?你如何处理杂耍行为?
我发现Smalltalk是创新者的越来越多的方面,即第一次创造技术或至少是整体概念.我能想到以下几点:
所有这些都是正确的吗?Smalltalk带来了哪些进一步的创新?
我确定还有更多(例如在语言设计领域?)
language-agnostic programming-languages smalltalk innovation
.NET 3.5,.NET 4.0,WPF,Silverlight,ASP.NET MVC - 现在有很多新的微软技术发布/即将推出.(我给出的示例是所有Microsoft技术,但这适用于任何语言或平台).我很好奇这是如何在你工作的公司处理的.几个例子:
这些只是让我的问题更加清晰的例子.总而言之,我想知道这个过程看起来像什么,谁负责,谁做出决定.贵公司是否会加入这个行列,还是不愿意尝试新技术?你对这种情况感到满意吗?
在我工作的公司,我们仍然使用.NET 2.0(尽管我们现在正在慢慢转向.NET 3.5),没有认真研究过ASP.NET MVC,还没有尝试过WPF等等.并且,有些人发现很难说服人们去做.否则是否公平?
关系数据库的SQL实现已经以其当前的形式存在了大约25年(自System R和Ingres以来).即使主要(松散地遵守)标准是ANSI-92(虽然后来有更新)是一个很好的15岁.
在过去十年左右的时间里,基于SQL的数据库可以想到哪些创新.我特别排除了OLAP,Columnar和其他非关系(或至少非SQL)创新.我还想排除"应用服务器"类型功能和捆绑(如报告工具)
虽然基本方法仍然相当静态,但我可以想到:
还有其他你能想到的吗?
通常,约定是用户界面最重要的设计考虑因素之一.通常建议就像微软那样做.
这有三个原因:
与此同时,Emmerson说:" 愚蠢的一致性是小脑袋的大人物.*"那么,什么时候保持一致的用户界面从一个好主意到停滞不前的创新?
微软通过引入工具栏,然后再使用功能区控件(这是工具栏的自然演变,不管你喜不喜欢)来震撼好旧的WIMP GUI.现在我们到处都看到了丝带.
所以我的问题是,什么是一些用户界面范例,这些范例在多个应用程序中被接受和保持一致,但是它们已经过了巅峰并且开始变得黯然失色?是否有一些重要的变化可以从开发人员的基层推动中受益,以创新和改善用户的用户界面体验?
我想到的一个想法是模态弹出对话框.你知道说的那些:"你确定要.. - [是] [否] [关闭] [也许]."和它邪恶的双胞胎"成功完成你想做的事[OK]!".我们看到在浏览器中使用"信息面板"远离这些运动.我认为它们也需要在Windows应用程序开发中采用.
如果可能,请为每个陈旧的UI项目列出解决方案.
请不要列出clippy.我们都知道他是个坏主意.
注意:这是Windows客户端用户界面范例,但我肯定愿意从网络,Mac等中汲取灵感.
他们,
我刚读过这篇关于真正令人讨厌(并且同时很酷)执行XSS的方法的帖子.但是,我还有一些不清楚的地方.
我理解攻击的完整概念,但是,我不明白这是如何被利用的.表单中的"action"属性必须指向ftp服务器(或任何其他反映输入的服务器),但事实并非如此.
因此,除非您有另一个XSS漏洞来注入此类表单,否则无法利用此漏洞.我的问题是,如果我的结论是它不能被利用是真的,或者我错过了什么?
innovation ×10
c++ ×1
database ×1
end-of-life ×1
history ×1
java ×1
lifecycle ×1
product ×1
quotes ×1
relational ×1
security ×1
smalltalk ×1
sql ×1
xss ×1