使用过时的技术进行开发有什么优势?[关闭]


28

一点背景

我在一家大公司工作,使用Windows XP并在VB6 / VB.Net中编码Winforms,在VB.Net中编码一些WebForms(95%维护代码)。我有一个4:3 19英寸的屏幕。Windows即将推出更现代的版本,它的声音也没有任何新的领域!

当我加入公司时,没有人告诉我任何这些信息,我误以为我会使用更多的最新技术和框架。

我在以前的工作中拥有更多的最新经验,包括使用更现代的框架和其他编程语言,并且在与其他公司的开发人员朋友见面时,我所听到的是他们如何使用最新的ASP MVC框架,或者Vagrant / Ruby on Rails / etc,我的眼睛越来越绿!

我可以很快地完成另一份工作,但我觉得我应该再给这个机会。

问题

我试图说服自己,我目前的工作还不错。那么,这种角色有什么优势呢?使用过时的技术是否有优势?也许我不愿意使用一些更现代的技术?还是这是职业消亡的地方,我应该在仍然有灵魂的时候走出去?


1
您可能需要重新措词,以将个人历史清楚地与核心问题区分开。
DougM 2014年

2
您可以假装自己正在制造火箭或从事空中交通管制。这些领域通常使用真正的旧技术,因为到那时所有错误都是固定的或已知的。但是,即使是火箭或空中交通管制工程师也不会用10英尺高的杆触及VB6。:)
DXM

3
就业保障?....
罗伯特·哈维

2
十多年前,我曾经用Delphi编写代码。我喜欢它,这是一种很好的语言,比VB yardy yardy更好,但这不是事情的发展方向。我跳了。但是直到今天,Delphi的工作一直在蓬勃发展,他们正在支付丰厚的收入!该死的。
MrWhite 2014年

11
尽管我很欣赏您试图在糟糕的情况下做到最好的事实,但是请不要试图说服自己您目前的工作还不错。从经验上来讲:在过时的技术上呆太久很容易变成一个陷阱,这真的很难使自己脱离就业。如果可能的话,至少尝试使用更多现代技术。
Evicatos 2014年

Answers:


26

我所听到的只是他们如何使用最新的ASP MVC框架,或者Vagrant / Ruby on Rails / etc,我的眼睛是绿色的!

嗯,但是他们在那里玩玩具,并且您正在使用可以完成解决方案的工具来完成实际工作。

那就是您应该考虑的问题-软件经常是业余事务,人们从一种很酷的新技术跳到另一种最新时尚。然后,还有其他人将其视为更加专业的职业,其中工具与您创建的产品或解决方案无关紧要。

有些地方需要用新的东西代替旧技术,但是通常只是升级而不是批发替代。例如,将VB6升级到VB.NET,将Visual Studio 2002升级到Visual Studio2012。进行完全重写的任何人总是会发现,使用新工具并不太理想。(这就是为什么乔尔等人说重写总是错误的答案)

因此,请专注于达成目标,并在可行的地方进行逐步升级,而不是因为您想使用最新的玩具(反正很快就会丢弃这些玩具,而您想要的最后一件事就是维持由去年使用酷技术编写代码的人编写的系统)


1
与DOS升级到Windows NT相比,VB6没有升级到VB.NET。FWIW。
DougM 2014年

21

一家公司坚持使用过时的技术确实有很多好处:

  1. 旧版内容有时不适用于新内容

    一家公司可能在无法与更新的语言或操作系统兼容的系统上投入了大量资金。一个典型的例子是许多与IE6和IE6兼容的Intranet Web应用程序。坚持使用Windows XP + IE6和放弃工作系统并在新系统上投入资金之间的选择并不明显。

  2. 为了改变而改变不是明智的选择

    示例:许多银行仍然继续维护最初用COBOL编写的应用程序。当这些东西起作用时,考虑到重写大型业务关键系统的成本以及错误地引入一系列新错误的风险,企业为什么会决定用另一种语言来重写它?(原因之一如下所述)

  3. 许可证昂贵

    假设一家公司有几百个使用Windows XP的台式机。他们想迁移到Windows8。Windows8 Enterprise的单个许可证的价格是多少?如果我们将此成本乘以机器数量怎么办?

    对于服务器而言,情况甚至更糟。一个Oracle或Microsoft SQL Server的单个许可证的成本在3万美元至4万美元之间。如果一家公司拥有50台数据库服务器,即使具有批量许可,价格也会很快变得非常昂贵。

    在我的公司,我们对Visual Studio 2010感到困惑。我们遭受了许多错误的困扰,而且我们知道,由于Microsoft放弃了此版本,因此永远无法解决它们。但是13000美元(鉴于我们需要终极版,因为其独特的功能在其他版本中不可用)对于我们来说无法升级到Visual Studio 2013。

话虽如此,也存在重要的弊端。

  1. 旧版资料无法吸引新人才

    这是维护COBOL应用程序的公司的问题之一:他们很难找到便宜的开发人员。而且,在大型机上工作并编写COBOL代码对于富有创造力的人而言并不有吸引力。

    虽然对于需要保持稳定的骨干系统是一个不错的选择,但是这些系统和语言并不适合需要不断创新的产品。

  2. 旧并不意味着安全

    由于用新语言重写产品可能会引入新错误,因此保持不再受支持的旧系统也很危险。想象一下在Windows 98中发现了一个漏洞,该漏洞可能会损害整个系统:Microsoft是否会发布更新来解决该问题?

  3. 传统是病毒

    旧系统与新系统之间的不兼容性意味着,当您坚持使用旧产品,语言或基础架构时,将无法在其他地方进行升级。只能在IE6上运行的旧Intranet应用程序会在所有台式机上导致Windows XP,这意味着您无法迁移到新的Active Directory版本,这意味着您不能使用需要最新Active Directory版本的新应用程序,并且以此类推。

  4. 生产率

    新版本的产品带来了新功能,有时可以提高生产率。使用Visual Basic 6.0可能需要一个小时才能完成的任务,而使用Visual Studio 2013可以在不到一个小时的时间内完成,因为Visual Studio 2013和.NET Framework 4.5带来了改进的Intellisense,Entity Framework和成千上万的其他减少代码的功能编写,提高编写代码的速度并降低引入错误的风险。

    如果这个例子不够清楚,这里是另一个例子。在Windows 3.1中,系统管理员将手动设置每一台计算机(除非有我不知道的自动化)。今天,他们将使用PXE和Windows评估和部署套件在几分钟之内自动在数千台计算机上部署新的OS和软件。

    使用旧版本可能会变得成本过高。对于某些乐于使用Windows 95的用户来说,它可能不是显而易见的,但对开发人员,系统管理员,设计人员,科学家和其他严重依赖硬件和应用程序功能的人员而言,则更为明显。


使用Linux和Eclipse或MonoDevelop。许可的费用:$ 0。
黛咪

7

使用过时的技术进行开发有一些优势,但是这些优势是否超过您因更换其流利性而遭受的损失以及与他们合作的痛苦是您和他们之间的个人选择。

我可以想到使用过时的,被替换的技术的三个好处:

  1. 熟悉较旧的技术本身

    唯一仍在使用的旧技术是某人某个地方决定维护起来比更换便宜的技术。能够列出使用这种较旧技术的工作经验,其本身可以帮助您获得在同一领域工作的另一项工作。随着越来越多的开发人员前进,您为此类工作收取的费用也随之增加。

  2. 练习学习新事物的机会

    如果您只能使用其他人教给您的语言进行编程,您就不是真正的程序员。能够使您的技术和模型适应较旧的技术,就需要许多与适应新技术完全相同的技能。

  3. 更深入地了解为什么要更换它们

    如果您不熟悉该技术本身,那么很难向非程序员HR或Executive类型解释为什么VB.NET或C#优于VB6。而且,如果您对后者并不完全熟悉,则了解它们被替换的内容可以帮助您理解为什么替换是这样写的。


综上所述,公司绝对没有理由坚持维护任何已经过时的技术应用程序。

如果可以将其搁置,直到由于某些未记录的错误导致运行时失败,那是一回事-但是,开发人员在没有过渡计划的情况下花费在旧技术上的每一小时,都是企业最终必须支付的技术债务。


9
我不同意“公司绝对没有理由坚持维护任何已经过时的技术书面应用程序”。如果这使公司赚到的钱超过维持费用,那么他们应该维持下去。他们应该寻求用更现代的解决方案代替它,但是,尽管它正在赚钱并且不容易被替换,但是应该对其进行维护。
2014年

有时是正确的,但是如果该软件是在“赚钱”而不是“节省”钱,那么某人在为客户服务会造成同样的损害。
DougM 2014年

软件可以为客户节省资金,并为开发它的公司节省资金。并非所有内容都是内部应用程序。哎呀,软件也可以为客户赚钱。看一下Visual Studio。它为卖方(Microsoft)和买方(软件公司)都赚钱。
斯蒂芬

是的,这就是为什么我这么说。再说一遍,如果您销售的是基于十年失效平台的软件,那么您的客户就会受到损害。
DougM 2014年

1
我不同意。作为开发人员,我希望始终使用最新技术。但是从用户的角度来看,他们可能会从正在维护的旧VB6程序中获得巨大价值。从头开始重新开发它可能不经济或不切实际,但可能值得维护(这对于利基市场很小的专业软件尤其如此)。
斯蒂芬

6

在某个时候,该公司将需要关注VB6的使用寿命,但遗憾的是,VB.NET还剩下一些喘息的机会。

您需要在单个小型显示器上工作吗?这听起来更像是公司便宜,而不是担心经过良好测试的技术。这并不是说有几个21英寸显示器会引入错误。

为了使您的技能保持敏锐并为此获得报酬,我建议您检查一下您的构建,测试和部署设置。这可能是通过使用rake,powershell和/或nant进行构建和部署来开始引入一些较新技术的机会。如果您没有单元测试,请开始添加它们。

归根结底,如果公司不在技术领域,那么它将永远排在第二位。对于他们而言,保持稳定性以保护其核心业务运营是完全有意义的。

我会避免提供任何职业建议,我敢肯定其他人已经掌握了基础。



3

有多个优点:

1)只要没有被广泛使用的晦涩难懂的技术,就会有很多可用于该技术的资源。

2)希望公司中的其他人将对技术保持精通,因为他们没有改变。

3)如果没有太多新开发,则可以将旧代码重构为更干净或更快速。请注意,保留这种旧技术的商店类型可能会反对更改任何“有效”的代码,尽管可能会令人讨厌。


5
如果代码工作,它不应该被改变,如果你能避免它。每次开发人员进行更改时,都有可能引入新的错误-并且新的错误在很大程度上抵消了使用旧代码的好处。
DougM 2014年

因此,进行更改显然不是一个好主意。但是,一旦软件达到一定的成熟度,人们的注意力通常会转向调整应用程序的较慢部分。
罗比·迪

3

我将集中讨论这个问题的另一面,即使用新技术的弊端,因为过时技术的优势已在其他回应中得到了充分体现。

我们仍然有一个庞大的Visual Studio 6代码库,看起来它不会很快被替换。

但是,我们正在推动新技术的发展,以便我们可以进行新的开发。

正如我所暗示的那样,可以使用COM编写与旧版VB6代码很好地接口的VB.NET。

无疑,使用尖端技术很有趣,因为它们通常会带来显着的生产率收益。但是,不利的一面是,您可能会遇到一个错误/小故障,使您每天/数周无法正常工作。由于某种原因被称为出血边缘!

即使公司花了很多钱来升级软件,但无论我选择哪种方式,这(从我的个人经验中发现)都可能有点拖累:

软件端口

该软件被重写,但必须看起来与旧软件完全相同,以免打扰用户。由于您无法使用任何新的GUI向导,因此使用新技术带来的乐趣无比。

Visual Studio更新

您真的没有正确使用任何新功能,因为您花费大量时间来消除代码中的小故障,而这些小故障在Studio的一个版本中却可以正常工作。

功能迁移

您迁移保留核心功能的软件。从开发人员的角度来看,这提供了最大的自由度,但是可能会引入错误,这可能导致公司怀疑这种做法的价值,除非还包括新的增值功能。

对于大多数开发人员而言,必杀技是关于现代技术的高质量培训,是一次实践您所学知识的机会,然后是一项初创项目,以切磋。

您应该做什么主要取决于您的人类型。嗜好者总是想与新事物打交道,而杂乱无章的人则认为旧技术是最好的。我们大多数人介于两者之间。您需要在舒适的地方锻炼。如果您觉得自己可以活在当下,那就太好了,否则,现在就拿硬币,把半只眼放在合适的位置上。


1

这可能不完全是您的要求,但是我有一些建议:

我认为最大的好处就是,当雇主最终意识到他们需要迁移时,可以为他们提供专业知识。XP将于今年停产,因此我想您的IT部门已经在考虑迁移策略。(如果没有,请准备好简历,因为他们的陪伴时间不长。)

考虑到这一点,开始编译与OS /平台迁移一起迁移主要软件工具集的优点列表可能是明智的。帮助您就有关新技术的投资回报率对技术上缺乏知识的管理链进行培训。您的经理不会对“神速爆炸”框架和技术玩具有任何疑问,但他们应该对您对持续维护费用,未来开发等的相对成本的长期预测非常感兴趣。

同样,您可能会借此机会找出客户(使用软件的员工)的满意度。他们希望看到哪些改进?哪些错误使他们疯狂?哪些功能将大大提高其效率?如果您可以向雇主表明对技术的新投资将对他们的底线产生示范性影响,那么您很可能会获得技术移民经理的头衔。

而且在任何简历上看起来都不错。

更新:看起来您并不孤单:“ 世界上95%的ATM运行XP ”。不要误会我的意思:XP很棒-我一直都是粉丝。但是现实是,一旦安全补丁和更新结束,XP对于银行来说将不是可行的产品。您的工作(为了您的银行客户)是要客气而持久地通知您的经理,他们最终将付出更多的钱(通过延长服务安排或缓解攻击)来维持XP到其退役日期为止。正如@RobbieDee的链接所指出的:截止日期为2015年7月14日。这足以(如果您现在就开始)设计,实施和部署替代系统。

(但不要试图将这个想法卖给刚刚在企业范围内安装XP的人。他不是您的盟友。通过这样的判断,他担任该职位的日子已经不多了。只是安静地在他周围工作直到明智的头脑为准。)


仅供参考-支持(至少部分)已超出了2014年的原始期限:bbc.co.uk/news/technology-25758308
Robbie Dee

嗨,谢谢您的回复。这完全不是一件令人遗憾的事情,该公司(一家银行)最近(2013年下半年)经历了一次PC更新,在该更新中,他们花了很多钱用Dell的新套件来替换链中的每台计算机。然后,他们从IBM雇人擦拭了所有这些机器,并安装了XP!我认为,如果他们想升级到更现代的操作系统,那将是一个千载难逢的机会。通常情况下,您的答案会是可靠的建议,尽管如此+1
囚犯

@RobbieDee-给user114764足够的时间。
kmote 2014年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.