开发人员面临的一个常见问题是为特定项目选择语言的哪个版本。一些开发人员认为语言的最新版本总是最好的,但事实并非如此——更新的版本并非如此总是更好的。实际上,选择错误的语言版本可以将一个项目注入几乎某些故障,或者至少使成功更加困难。

代码中的问号为了让您避免发生,避免危险假设,了解语言更新的好处和成本,检查您自己的个人偏好,并询问自己一些关键问题。

3致命的假设

开发环境通常充满了不可预见的挑战,即使是最好的计划。为了帮助确保不会发生这种情况,这里有三个致命的假设要避免:

  1. 在使用现有应用程序时,许多开发人员认为他们应该使用原始语言的相同版本。但是一种语言的旧版本可能不包括最新的安全特性,或者可能缺乏其他特性,这就要求开发人员投入更多的时间来实现进一步的解决方案。亚博直播平台
  2. 当创建一个新的应用程序时,一个常见的选择是依赖于语言的最新版本。然而,一种语言的新版本可能还没有广泛的库支持或完全测试的功能。
  3. 组合应用程序环境时,组织经常强迫开发人员使用他们喜欢的语言版本,而不管它是否是当前特定应用程序的最佳选择。在整个组织中对特定的语言版本进行标准化,可以更容易地重用工具和库,并且可以帮助开发人员在从一个项目转移到另一个项目时避免因版本差异而绊倒。然而,它也可能导致灵活性的丧失,不能使用现有代码,并浪费开发人员的时间重写首选语言版本的代码。

所有三种情况都反映了应用程序地位。问题是项目状态远非唯一考虑的因素。为了选择项目的正确版本,我建议称重许多因素,包括功能,易用性,可靠性和安全性。

更新的好处

语言更新通常旨在以某种方式增加功能,并且通常会提供功能。一个经典的例子是微软的实体框架。每个新版本Visual Studio提供了更新版本的实体框架(以及更新版本的语言和相关的库)。每个更新都已交付功能上的主要改进。关于最新版本的C ++可以说是相同的:最新的可用版本优惠大量新功能

更新还可以使语言更容易理解和更一致。例如,Python 2.7支持打印同时作为命令和函数,这可能会导致混乱的代码。Python 3.4一致视图打印()作为一个函数,所以您创建的任何代码都更加一致,并且可能更加可靠。

语言更新可以大大提高应用可靠性和速度。例如,根据SitePoint的说法,例如,HTML5和JavaScript已经变得如此可靠且快速该组合迅速成为移动应用程序的首选语言。当然,您仍然需要担心安全问题,但关键是,这些更新使得创建一个可以在几乎任何设备上快速而可靠地工作的应用程序成为可能。

安全性是使用新语言版本的另一个关键原因。例如,在处理Java安全问题时,最新版本是迄今为止最安全的开发选择,安全专家Brian Krebs说。

最新的隐藏成本

更新显然具有价值,但它们也携带成本。更新的最显着成本是向后兼容性。也许是最糟糕的罪犯思维。例如,在Visual Studio的新版本中加载旧项目之前,必须执行不可逆转的更新。更新过程检查各种各样的东西,包括IDE不再支持的项目特性。您可能会发现,您真正喜欢的语言特性已经被删除,无法替换。更糟糕的是,在更新失败后,您甚至可能会得到一个不可用的项目

有时,更新成本可能隐藏在语言优惠的支持级别中。例如,许多数据科学家继续使用Python 2.7因为它提供了3.4版本尚未采用的库支持。此外,版本3.4有打破变化在执行任何更新时,将数据师的数据师们非常沉重。对于一个简单的例子,打印“你好”在2.7中完全有效,但您必须使用打印(“Hello”)相反,在3.4中。

缺少特性是更新的另一个常见问题。缺失的特性可能没有很好的文档化,或者可能产生一个不太有用的错误消息。每当您看到“deprecated”一词作为新版本更新列表的一部分时,都需要特别注意,因为这种更改可能会使您的应用程序失去功能(或至少难以修复)。

个人喜好

在考虑语言版本决定的方面之后,您可能会发现不同的版本有很多要提供,但您可能更喜欢彼此。在许多情况下,个人偏好达到熟悉。当您知道特定版本良好并且另一个版本包含足够的更改以强加学习曲线时,可以有意义地选择熟悉的地面,特别是当应用程序变化特别复杂或时间至关重要时。

Dual-version支持

一个有趣的版本决策的古怪是某些语言实际提供双重版本支持,这意味着语言可能同时正式支持多个版本。例如,如报道的那样信息世界,Python 2.7和3.4的更新历史表明,开发人员将3.4版中的许多特性反向移植到2.7版!此外,版本2.7.9实际上是一个比版本3.4.2更新的版本。但是,不要太舒服。Python 2.7释放最终会消失,因此它不会永远可用。

做出决定

优化应用程序开发可能取决于为作业选择合适的语言,然后选择正确版本的该语言。在许多情况下,您可以将版本的选择归结为这六个问题:

  1. 该版本是否提供了创建健壮应用程序所需的库支持?
  2. 这个版本安全可靠吗?
  3. 新旧版本之间的变更是否小到足以将开发人员的负担降到最低?
  4. 版本是否提供了适当的功能级别?
  5. 该版本能否灵活地解决不可预见的问题?
  6. 该语言是否为旧版本和新版本提供了双向支持?

这些都不是微不足道的问题。选择正确的编程语言版本对于确保成功的应用程序发行版能够满足用户的需求,并且只需要最少的初始开发工作。

代码问号图片来源:shutterstock.com.

约翰·穆勒(John Mueller)是一名自由作家和技术编辑,著有108本书和600多篇文章,主题从网络到人工智能,从数据库管理到埋头编程。他目前的书籍包括Python初学者、人工智能(AI)、机器学习、数据科学、c# 7.0和亚马逊Web服务(AWS)。你可以在http://blog.johnmuellerbooks.com/上阅读他的博客。查看贴子

有兴趣为New Relic博客写作吗?亚搏体育登入网送我们一个球场!