我见过一些语言变化很快(例如,我说它们每年都在改进),而另一些语言则进展缓慢。
我的问题是,如果语言快速变化,这对程序员来说是好事还是坏事?程序员是否喜欢学习该语言中的新事物,还是喜欢坚持使用已有知识?
我见过一些语言变化很快(例如,我说它们每年都在改进),而另一些语言则进展缓慢。
我的问题是,如果语言快速变化,这对程序员来说是好事还是坏事?程序员是否喜欢学习该语言中的新事物,还是喜欢坚持使用已有知识?
Answers:
如果语言快速变化,这对程序员来说是好事还是坏事?
好
坏
程序员是否喜欢学习该语言中的新事物,还是喜欢坚持使用已有知识?
许多程序员通过玩这些新功能来满足自己的好奇心。但是,这并不意味着新功能始终适用于生产代码。这是逐案决策,必须权衡新功能的优势与特定情况下的升级成本。
我可能会很开心或喜欢学习新功能,但是最终,我真正关心的是向某人提供有用的产品。我必须选择足够现代的工具集,以具有合理的支持和稳定性,但又不能太古老,以至于我无法合理地进行生产。
语言稳定性对于企业和开发人员来说都是必须的。如果语言可以解决问题或引入早期版本中缺少的功能,则欢迎进行语言更改,但是更改语言以使其成为新潮或者仅仅因为您想赶上竞争对手而没有那么好。
语言稳定后,随着时间的流逝,开发人员将不再专注于学习该语言,因为他们会精通该语言,并开始将精力集中在利用他们所了解的知识为企业提供服务上。结果是缩短了项目,使最终用户满意,并为开发人员感到骄傲!
变革还伴随着学习成本和时间。并非所有的雇主都愿意对开发人员进行新功能的教育。这给开发人员进行自学或其他培训带来了沉重负担-这并非微不足道,专门课程的费用为每门$ 1500- $ 3500!
持续的更改可能会将开发人员锁定在“旧版”软件中。例如,从现在起两年内未使用MVVM的ASP开发人员,或未学习WPF的Windows Forms开发人员。这种锁定可能会严重损害开发人员的职业。
随着时间的流逝,企业中的软件体系结构看起来像花园沙拉。各种各样的工具和版本,您发现项目什么也没做,只是将软件从一个版本升级到另一个版本而没有任何业务收益。
我认为没有任何答案是正确的。
一般而言,当一种语言相对年轻时,就有较大的自由来相对快速地进行相对较大的更改。现有代码的基础不大,因此人们通常更愿意进行试验。
随着语言的老化,假设有足够的用户供任何人真正关心,那么现有代码的基础开始对可以进行的更改施加越来越严格的限制。不仅有更多的代码利用了更多的功能,所以很难猜测可能会破坏代码的更改,而且人们的期望也随之变化。
举例来说,假设编写Ruby和Fortran的人数大约相同。此外,我们假设两者中的代码量大致相同。我想说的机会是非常好的,这打破了每一个准确的相同比例的变化(和的方式,花了大约相同的工作,以正确的),将是一个很大红宝石用户比Fortran的用户更容易接受作为一般规则(至少假设他们认为这是一种改进)。
我认为这在很大程度上还取决于人们对语言的理解。选择语言的人是因为它是“最前沿” 的语言,如果这样才能使它保持在最前沿,那么他们更有可能忍受破坏许多现有代码的重大更改。
另一个因素是使用该语言的项目的规模和预期寿命。迎合相对较小的项目或我们很早就知道的预期寿命较短的语言(例如,Web UI)可以相对频繁地破坏事物,因为很多人不太可能继续使用相同的代码库不管怎么说,十年。一种语言(例如C ++或Java)可以满足更大,更长寿的项目的需要(例如,可能需要5年才能达到初始版本),这种语言可能会定期使用(并持续开发)三到四十年,这显然需要一个伟大的交易更稳定。
我有一个人告诉我他喜欢他的C ++,而且它将保持这种状态。他不在乎D,也没有兴趣,他不想了解或使用C#。他之所以学习Java,是因为他热衷于他需要做的许多项目,并且他显然以他所知道的语言做得很好。
另一个人喜欢C#,不了解每个关键字,也不了解.NET 4库(异步和全部),并且没有使用抽象关键字或已使用的属性。
我只是说大多数人不关心
现在,升级的影响正在破坏(对于库或编译的代码)人们将关心的问题。