51

我经常听到人们说,在新技术变得稳定、经过尝试和测试之前,你不应该急于采用新技术。甚至有一个笑话说需要 3 个版本才能做到正确。这可能是现实生活经验的声音,但至少有时这种姿势是自满、抗拒改变和学习新技能所必需的努力的结果。

然而,在我看来,跟上创新的步伐对于软件行业的成功至关重要。虽然大公司有专门的研发部门,但在小公司中,开发团队必须跟上。甚至在它正式推出之前就开始使用新技术——这将为您提供一些先机,并帮助您跟上其余的步伐。

这是我尽可能遵循的策略:

  • 积极采用新技术
  • 使用早期测试版进行试验,使用原型和 RC 进行开发
  • 当您早期采用的技术正式发布时,解决产品的任何最后一分钟更改
  • 不要依赖一些活动为 0 的晦涩的开源项目
  • 一定要学习,但要对官方产品路线图持保留态度。

到目前为止,我从来没有为太热心跳上一些新技术而付出代价,但我仍然收获了好处。我想知道这是否只是一个巧合,或者作为早期采用者毕竟不是那么危险?

不仅仅是邀请就早期采用这个主题进行讨论,因为这样的问题肯定是有争议的和主观的,我想听听现实生活中的经验,即采用早期的新技术被证明是一个严重的错误,而且必须付出惨重的代价有薪酬的。

4

42 回答 42

25

我可以编写一个相当不错的 Java Applet。所有的技术最终都会被淘汰出局,但是这一项有非常急剧的上升和下降。

于 2009-07-23T15:07:10.680 回答
24

我目前正在被 Microsoft Office Word 2007 的 CustomXML 支持所困扰。

CustomXML 允许文档具有可以对业务数据等进行建模的自定义元素。例如,您可以使用自定义元素定义 XSD,将其与 docx 文件相关联,然后将占位符生成为 CustomXML 标记并使用导航/修改文档C#(或其他 .NET 语言)和OpenXML SDK。OpenXML 的好处在于它无需在服务器机器上安装 Office 以实现自动化目的,并且是购买 3rd 方库的替代方案。

简而言之,有一场关于 Word 2007 能够使用自定义 XML 打开文档的诉讼。从这篇文章

8月11日,公司收到Office Word销售禁令...

“此禁令仅适用于在 2010 年 1 月 11 日或之后在美国销售的 Microsoft Word 2007 和 Microsoft Office 2007 的副本。在此日期之前销售的这些产品的副本不受影响。”

Microsoft 的回应是从 Word 的未来版本中删除对 CustomXML 的支持,并且正在发布一个将完全删除此功能的补丁。这是官方更新的链接。根据此 Microsoft OEM 合作伙伴中心网站

美国需要以下补丁。该补丁适用于所有 Office 2007 语言。

安装此补丁后,Word 将不再读取 DOCX、DOCM 或 XML 文件中包含的自定义 XML 元素。这些文件将继续打开,但所有自定义 XML 元素都将被删除。处理自定义 XML 标记的能力通常与 Word 文档的基于服务器的自动化处理结合使用。大多数 Word 最终用户通常不使用自定义 XML。

我想象一小部分最终用户和开发人员使用它,所以我认为最后一句话是准确的。问题是目前没有关于如何推进使用该技术的项目的消息(没有双关语)。CustomXML 是我目前正在从事的一个大型项目的基石。这个决定的影响不是积极的,它有效地阻止了任何前向兼容性,因为没有等效的替代方法来维护 CustomXML 提供的结构。

我和我的一些同事对这个话题有丰富的知识......我想我们没有像我们计划的那样写博客文章是件好事 :) 我们已经完成了一些令人印象深刻的壮举,并且VSTO,但这个消息令人失望。

如果有人对此主题感兴趣,这里有一些文章可以查看:

ZDNet 文章:

BNet 文章:

软百科文章:

编辑:添加了官方更新的链接。

于 2010-01-07T06:26:53.030 回答
21

几年前,我们大量使用了名为 Notification Services 的新 SQL Server 2005 功能。令我们沮丧的是,它在 SQL Server 2008 中已停止使用。这是一个严重的问题,导致软件架构师质疑所有新的 Microsoft 技术。

这里有一些细节,还有更多更多

微软的实体框架也存在问题。

于 2009-05-24T17:53:25.770 回答
14

其他人还记得 OpenDoc,Apple 关于如何编写所有新的 Mac 应用程序的想法吗?没想到。

于 2010-01-04T16:24:55.933 回答
9

斯卡拉。

它在纸上看起来很棒,所以我用它写了一个项目,同时确保我的 Scala 版本保持最新。版本号 (2.7.x) 及其多年的开发让我觉得这样做相对安全。

好吧,我犯了一个错误。问题?严重缺乏文档和代码示例,以及不断变化的类库(在我的工作中两次,以前工作的代码开始收到“弃用”警告..​​....我说的是几个月的时间和类似的版本数)。

我不能说我失去了很多(这是一个私人项目),但我不会在不久的将来接触 Scala。不过,我仍然认为它是一种非常好的、有前途的语言。

于 2010-01-05T10:51:36.750 回答
8

是的,我有!使用 JSF 1.0!在发布之前,Sun 似乎没有很好地审查它。

我们一直在努力让事情顺利进行,但不久之后我们才发现我们的错误是由 JSF 错误引起的,我们不得不使用变通方法。直到 JSF 1.1 和 myfaces-tomahawk 实现的使用,该项目才开始有一些速度。

于 2009-05-24T17:29:58.990 回答
8

当我还在的时候10,我父亲试图在一个全新的机器上为我演奏一首新年歌Elektronika BK-0010-01

不用说合成器无法从磁带中加载,直到邻居带着吉他来之前没有歌曲。

于 2009-05-24T17:37:34.500 回答
6

QBASIC 从未真正起飞。我也花了几年时间学习它。

好吧,公平地说,这是我的第一语言,也是一种学习的好方法。后来它被 Visual Basic 取代,然后是 VB.NET。所以这并没有完全浪费我的时间。;)

大多数情况下,即使一种语言没有完全“起飞”,它仍然是一种很好的学习体验,可以应用于其他事物。

于 2009-07-23T15:05:15.940 回答
6

德尔福.NET。当我听到这个时仍然有抽搐!

于 2010-01-04T15:49:31.777 回答
6

最糟糕的是,当您使用新产品完成一个项目并获得了 80% 的收益并遇到了一个惊人的错误时。

早在 80 年代中期,我的老板建议我尝试一种名为 KnowledgeMan 的新 dBase 替代方案。很久以后,我才意识到一些我认为是我的关键错误实际上是他们的。整个事情必须从头开始重做;它让我失去了工作。

于 2010-01-08T18:45:52.073 回答
6

是的。我是一名 Lisp 程序员:在我看来,一切都是新的和不成熟的。:-)

于 2010-01-08T18:54:36.843 回答
5

AzMan(微软授权管理器)

我们开始在公共网站/网络应用程序上使用它,被单点登录的梦想和能够“利用现有基础设施”或营销现在所说的任何东西所吸引。系统管理员无需开发任何工具或编写任何代码即可管理的 ASP.NET 嵌入式解决方案。这是双赢的,对吧?

由于我们的决定,我们学到了几件事,但我们都不想学习:

  • 对于服务于公共网站的身份验证机制,Active Directory 本身并不是一个很好的选择。并不是说它没有能力——它非常有能力,但这就像聘请一个博士来编写一个“Hello World”应用程序。它的资格过高,在这种情况下它的功能远远超出您的需要,它比普通的旧 SQL 表更难使用,并且需要更多的维护。

  • 阿兹曼很慢。非常非常慢。角色提供者必须维护一个缓存,它应该告诉你我们正在谈论什么样的性能。我从来没有完全理解它为什么这么慢,但我想它与 COM 的大黄蜂巢和它所依赖的网络协议有关。

  • 当您几乎无法控制缓存时,缓存(见上文)可能是一件非常危险的事情。当我们手动添加新用户(即通过管理应用程序而不是站点本身)时,这些用户最终会看到“未授权”屏幕,直到缓存过期并注销。有时这甚至会发生在网上自行注册的用户身上;我们从来没有找到原因。

  • 这些工具太可怕了。如果您不相信我,请简要查看 AzMan 控制台,或者如果您真的想头疼,请阅读一些文档。为什么事情要这么复杂?

  • 这是片状的。很多时候,提供者会停止工作,吐出神秘的 COM 错误(每次都不一样!),我们不得不重新启动 IIS 甚至整个 Web 服务器以使其再次合作。我们还设置了域信任 - 因为显然我们不希望内部公司域上有 50,000 个公共用户帐户 - 唯一的问题是,管理员必须登录辅助域上的管理帐户来管理角色,因为控制台会失败如果您尝试从主域使用它(甚至作为在辅助域上具有域管理员权限的企业管理员),则以神秘的方式使用它。

  • 支持几乎不存在。如果您使用基本的 SQL Server 角色提供程序(我们不使用,但仅作为示例),则有 1000 万个教程,您可以通过 Google 搜索任何错误消息或在任何论坛上提问。每当 AzMan 出现问题或者我们想做一些新的事情时,我们都在不断地努力寻找好的信息。

  • 代码集成很尴尬。你必须经过一堆凌乱的 COM 层,然后界面就糟透了。如果我没记错的话,没有办法只做一个简单的授权检查——你必须下载整个应用程序/角色注册表。不过这是很久以前的事了,所以我的记忆在这方面可能是模糊的。

最终我们不能再忍受了,决定拆掉整个系统,建立一个基于几个 SQL Server 表的自制系统,这可能是我们从一开始就应该做的事情。迁移是痛苦的(参见上面的两点),但我们完成了它,并且从未回头。

于 2010-01-07T15:15:10.277 回答
5

不幸的是,它是双向的。当我们第一次开始在 Windows 上开发一个基于 Web 的大型应用程序时,.NET 已经发布了测试版——不久之后 .NET 1.0 的最终版本就发布了。

但是因为它是新的,我们不知道会发生什么,它会有多受欢迎,以及 MS 是否会在六个月后放弃它。所以我们坚持使用久经考验的 VB6。

我们仍然必须保持 VB6 的传统,而且它已经限制了一段时间。尽管它没有在任何地方列出,但我们越来越怀疑在给定版本的 Windows 中将取消对 VB 运行时的支持。

也就是说,走 .NET 路线可能有其自身的痛苦:1.0、1.1 和 2.0 相继推出,每个版本都与之前的版本(有些)不兼容。因此,必须迁移 .NET 平台会带来不同的风险。少还是多?无法回答没有经历过的人:-)

最后,如果你这样做,你会被诅咒,如果你不这样做,你会被诅咒。如果有人能读懂内脏来确定某项技术是否会在任何时候取得成功,那么他们不应该在软件领域工作,而应该转而从事对冲基金管理,赚取大量现金并提前退休: -)

于 2010-01-08T16:50:23.507 回答
4

当然好

我目前正感受到成为 Fortran 2003 早期采用者的痛苦 :-)

标记

于 2010-01-04T16:14:04.677 回答
4

Mozilla XULRunner。

在 AIR 出现之前,它是 Adob​​e AIR。我们使用它编写了我们的人力资源管理系统。当时 XULrunner “即将”作为 FireFox 的下级引擎发布,所以我们预计我们所要做的就是确保我们的用户安装了 FireFox。

项目进行了 2 年,就在部署之前,一个新的 XULrunner 出现了,它完全破坏了我们所有的代码,而且还看不到 Firefox 部署。我们最终使用专用的桌面安装程序在旧版本上进行了部署,并且一直使用它,但没有安全或性能更新的好处,因为我们必须重新编写太多代码才能兼容。尽管如此,这对我们的客户来说是一个非常成功的项目。

我们现在正在重新编写应用程序以在 Ext 上运行,这对我们来说是新的热门事物,但似乎有更多的社区支持,如果我们真的遇到某些问题,它会提供商业支持。

于 2010-01-06T17:53:24.517 回答
4

爪哇

我非常渴望在 1996 年开始研究它,并将它用于多个项目。但是对于 Web 开发,我一直更喜欢 Perl,而现在是 PHP。GUI 开发我最终主要使用 .NET。对于少数无法通过脚本处理的命令行程序,我更喜欢使用 Perl、Python 甚至 PHP。

我编写的 Java 程序很少被长期使用,而我的一些 pre-java 应用程序仍在使用中。

我认为其主要原因是用 Java 开发某些东西总是比使用另一种编程语言花费更长的时间:因此生成的应用程序包含更少的功能并且更容易替换。

由于开发速度通常对我的客户来说是一个问题,Java 往往最终成为第二选择。

于 2010-01-07T10:34:51.207 回答
3

作为 MonoTouch 的早期采用者,我每天都非常接近火焰。我永远不知道这个框架接下来会发生什么。但值得称赞的是,Novell 团队大约 24/7 都在用灭火器待命 :)

于 2010-01-04T16:16:38.950 回答
3

由于缺乏市场占有率:

  • 谷歌的围棋
    • 糟糕的工具链,缺乏与流行的编译器和 C 的集成。
  • 蟒蛇3000
    • 缺少必备功能:迭代器、清理内部结构和更整洁的界面对我们的铁杆用户来说很不错,但大多数人想要性能,而这还没有交付。
  • C++0x
  • C99
    • 已经 12 年了,还没有主流编译器完全实现这一点。为了安全起见,流行的项目和利基架构仍保留在 C89 上。

对于劣质:

  • 视窗
    • '纳夫说。
  • 强制
  • C++

对于落后于上游:

  • Windows 上的 PyGTK
  • MSVC C 支持

请注意,我列出这些技术绝不意味着它们不好,我是所有这些技术的忠实粉丝(除了质量差的技术)。我对被这些技术烧毁的第一手观点是(通常我试图将它们作为现有技术的替代品,或者只是在已经进行了大量投资后遇到障碍。

于 2010-01-08T02:31:44.180 回答
3

Mac OS X 上的 64 位 Carbon API:我个人并没有对此感到厌烦,但我有一个朋友在一家大型软件公司工作,花了一年时间将他们几乎所有的代码都转换为使用 64 位 Carbon API 才发现在 WWDC 上,这些 API 将不再可用。

于 2010-01-08T21:01:56.963 回答
3

有人注意到这里的趋势吗?这里的大部分技术都是由微软创建、取消或修改的...

我也被微软烧毁了对实体框架的更改。

于 2010-02-01T17:29:40.417 回答
2

然而,在我看来,跟上创新的步伐对于软件行业的成功至关重要。

这并不能回答您的具体问题,但是您可能会感兴趣一本书,名为Crossing the Chasm

于 2009-05-24T17:38:09.477 回答
2

对我来说,Delphi 的 IntraWeb 就是这样。

于 2009-07-23T15:04:58.267 回答
2

我曾经被迫使用witango,但我已经克服了。

于 2009-07-23T15:07:59.807 回答
2

不是编程,但仍然是一个更新的技术错误——我的第一个 mini-ATX 构建几乎失去了一个乳头,这个故事的寓意是永远不要靠在一个箱子上,同时试图在它被卡住时强行关闭它......

于 2010-01-08T07:34:48.253 回答
1

我可以数出很多。当我想到 WLPI(一个旧的 BEA 工作流程产品)时,仍然会感到痛苦。从来没有解决过,供应商放弃了它。叹息...

无论如何,我想说跟上最新的(知道那里有什么,考虑一下)是非常值得的,但只有在以下情况下才能生活在最前沿:

  1. 您准备好被割伤和流血(金钱/时间/资源)
  2. 它提供了重要的战略优势/竞争力。

AJAX 就是一个很好的例子。现在已经足够成熟,每个新网站都应该这样做,除非他们有令人信服的理由不这样做,但是当它第一次成为可能时,与传统替代方案相比,建立在它之上的网站会非常昂贵。

一些网站需要最新的外观和感觉才能保持竞争力,甚至到了网站本身的功能是次要的并且它们需要成为 AJAX 早期适配器的地步。其他人没有。知道你是谁,并采取相应的行动。

于 2009-05-24T17:48:56.290 回答
1

黑鸟。

为 MSN 创建交互式内容的绝佳开发环境。

于 2009-07-23T15:09:35.450 回答
1

真正的基本

在 1980 年代中期,我们一直在寻找一个可以在各种 DOS 实现上工作的开发平台,而不是像 C 那样“小题大做”的语言。

我们发现了 True Basic,它被宣传为由 BASIC 的原始创建者于 1964 年创建。这是一种“编译”为 p 代码的语言。它不仅可以在 DOS 机器上运行,还可以在 GEM (Atari-ST) 和 Amiga 机器上运行。

它有很多附加组件,就像我们过去在我们使用的 VAX/VMS 机器上使用的开发环境一样。诸如 Forms 包、“ISAM”附加组件(在 PC 上可调用数据库的时代之前)等。

不幸的是,多平台能力从来没有足够卖过语言。哎呀,根据维基百科,有一个 Mac OS 版本(虽然不是 OS X 或 Snow Leopard)。我什至在写这篇笔记时发现了“当前”的 TrueBasic 页面。

最终 Visual Basic 1.0 出来了,所有的 BASIC 程序员,像我一样,都检查了它,因为上面有微软的名字。现在,当然,在 10 个版本之后,我们已经转向 .Net 平台,而 TrueBasic 位于 V5.5。

于 2010-01-07T12:45:50.683 回答
1

Windows 开放服务架构 (WOSA): http ://en.wikipedia.org/wiki/Windows_Open_Services_Architecture

ODBC、MAPI、TAPI 等的基础。

于 2010-01-08T03:18:03.120 回答
1

Windows Azure 的 .NET 服务......他们取消了它。

于 2010-01-09T05:42:07.063 回答
1

VBA - 我们花了很多时间将它集成到我们的产品中。我们仍然在每个新版本上花费大量时间,以确保我们不会破坏任何东西。VB6 和 VBA 也是基于 COM 的,如果您想以标准用户身份运行并且没有对注册表的写入权限,这将是一个问题。

于 2010-01-10T06:25:25.123 回答
0

这比您的问题更能解决您的讨论。我认为您假设采用新技术的成本效益是给定的。对于一个非常大的公司来说,改变技术可能会花费数亿美元。如果没有成本效益,那么可以节省数亿美元。大多数公司使用技术来制造其他东西,不能仅仅因为新技术的存在而消费新技术。当成本效益存在时,这样做是有意义的。

于 2010-01-04T22:35:48.023 回答
0

我对模型驱动开发非常感兴趣,所以我曾经用过一次学术作品,Leonardi 软件,它可以免费下载。

在使用该软件一段时间后,我注意到缺少文档,并且绝对没有支持(没有免费的)。

我必须在 Leonardi 上完成我的应用程序,提供非常便宜的工作!

所以,除非您确定您将拥有足够的高质量文档和支持——您可以负担得起,否则不要使用新技术!

于 2010-01-07T12:14:26.383 回答
0

TurboGears网络框架

我有一个网络应用程序要编写并跳到这个(从朋友那里听说过)。我并不真正了解替代方案,不了解 MVC,也不了解各种“标准”组件的替代方案(例如 SQLAlchemy 而不是 SQLObject)。虽然项目的文档和一般状态比我动手时要好得多,但我最终得到了一个巨大的应用程序,它依靠“技巧”来绕过一些神奇的功能,并且其中包含许多未记录的功能以满足最后期限。它变成了维护的噩梦,我真的希望我能花时间构建一些更简单的东西,并计划在需求发生变化时进行重写。

这是 1.x 系列,现在已被基于 Pylons 的 2.x 系列弃用。可以想象,核心团队自己决定进行研究,但我被一个必须维护的遗留应用程序困住了。

于 2010-01-07T18:38:13.827 回答
0

网络推送、J2EE CMP

于 2010-01-08T18:16:22.660 回答
0

巴蒂斯。

我们最终实现了 Hibernate 已经完成的很多事情。本质上,我们使用 iBatis 开发了我们自己的非标准内部 JPA 提供程序。该技术已经被挑选出来,所以我们无能为力。

为了减轻打击,我们重构了代码以避免重复工作。

于 2010-01-08T18:30:37.640 回答
0

MongoDB。我将它用作新产品的核心,然后发现它不会与每次写入磁盘同步。因此,例如,如果服务器断电,它就有可能损坏数据。

于 2010-01-08T19:02:56.187 回答
0

更糟糕的是,当您让您的公司采用您自己开发的新的/不成熟的软件时。起初,当我是唯一的开发人员时,我漂亮的 HTML GUI 框架可以很好地构建我们的 RIA。但是,一旦我们获得了更多的开发人员,我发现如果不使用经过验证的平台以及强大的社区支持,开发人员的工作效率会降低多少。由于这个原因,以及我最终意识到 HTML 4 对 RIA 的不合适的事实,我们转换为 Adob​​e Flex 3。我对这一举动非常满意。

于 2010-01-09T20:09:30.720 回答
0

我被烧了:

  • gcc 在克服困难之前,然后是 MSVC++
  • 专有的 sun c++ 编译器
  • 微软开发者网络
于 2010-01-10T11:06:14.683 回答
0

C++,但采用者不是我:早在 80 年代末/1990 年代初,当 C++ 开发人员很少而且相差甚远时,我得到了一份项目前端的工作。负责项目的经理请来了她的一个伙伴作为合同程序员做后端。当时,我对 C++ 或 OOP 一无所知。尽管我们使用的 UI 包不能做 C++,但他坚持使用它。后来,当程序员和经理都早已不在的时候,发现了一些bug;我很容易地在我的代码中修复了这些问题,但我无能为力,只能对其他人的 C++ 代码中的错误耸耸肩。当时的管理层没有培训我,而是向我展示了大门。

于 2010-02-01T17:50:38.957 回答
0

作为一名 Java Web 开发人员,早在 2010 年就加入 Adob​​e Flex 的行列,现在看来是一件愚蠢的事情。(我希望 Flash 早点死!)这段经历教会我在接触新技术时要更加谨慎和深思熟虑,但有时对新事物做出真正评价的唯一方法是双脚跳入并真正尝试一下。

于 2014-12-13T14:54:40.147 回答
0

开发

虽然我很幸运没有用这个烫伤我的手,但这款产品在法国(它的原产国)相当受欢迎,我认为它应该在这里得到答案,这样其他人就不会烫伤他们的手(和他们的钱包)与这场灾难。

  • 它有自己的语言“W-Language”,默认是法语,但也有英文和中文版本……我不知道,拥有多个版本的编程语言看起来不太好想法,反正对我来说。

  • 大约每年,他们都会发布一个新版本的 IDE,其中包含对 IDE 和语言的错误修复,当然这是付费升级,但他们总是将错误修复作为新功能宣传,以便他们可以将“919 新功能”放在他们的广告。

  • 文档很差——我没有购买他们的软件,所以我可能没有任何随附的手册——但我尝试在网上搜索(出于好奇)并没有找到太多代码示例,更不用说教程了。我想英文文档会更难找到。

  • 他们的广告和营销很奇怪而且性别歧视……你自己看看(不完全是NSFW,但如果有人看着你的屏幕可能仍然很尴尬,点击风险自负)。

  • 是否有论坛帖子谈论他们的产品(特别是他们是否应该购买),突然有一些“具有 20 年经验的程序员”到达并发布了一条长消息,该产品如何改变了他们的生活,让他们变得更加富有成效等...有趣的是,这些“程序员”在论坛上都没有任何历史...您可能已经猜到了,该公司的广告/营销团队向论坛发送垃圾邮件。

  • 至于他们自己的论坛,他们审查所有负面评论/意见。

  • 他们还有一个名为 Webdev 的姊妹产品,它允许您使用相同的 W 语言创建网站和 web 应用程序;这是使用它创建的站点的示例。看页面的源代码会让你眼花缭乱;当然,以上所有内容也适用于该产品。

于 2014-12-13T16:25:11.927 回答
-1

是的,来自团队“测试库”的其他一些程序员。“它将完全满足您的需求! ”。然后我开始使用它似乎实际的库正在崩溃而不是我的代码。这种情况几乎在一个月左右发生一次。

在我们的团队中,我们是 TDD 的首发,所以也许这很正常,但无论如何它都会烧掉很多 :)

于 2010-01-07T11:56:26.327 回答