📜  如何为项目选择编程语言?

📅  最后修改于: 2021-10-19 05:13:47             🧑  作者: Mango

如果您是非技术人员,那么这里有一些问题要问您……

使用斧或电锯?你选择什么?

您可能会想到的第一个问题是……为了什么?

如果我们回答 ŝtitching布…你会说NO,如果我们回答劈柴,那么你可以用YES响应

现在让我们来回答另一个问题……

如果您需要从头开始建造房屋,您会选择什么?锤子还是钻子?

为项目选择一种编程语言

跳跃前 对于任何答案,你不认为知道你想要建造多大的房子很重要吗?你要几间房?你希望你的房子建在哪块土地上?它会用木头还是砖头建造?

如果您是技术人员或从事软件开发,请考虑以下问题……

  • 如果只有两种语言,你会如何为 iPhone 选择一种语言?
  • 如果只有“一个”,你会如何为 Android 选择一种语言?

在软件开发中如果我们需要为一个项目选择一种语言,我们需要先问自己几个问题,然后再做任何决定。例如,它是一个什么样的项目?应用程序的可扩展性、应用程序复杂性、开发预算、开发时限、应用程序安全性、可用资源。项目团队总是希望应用程序能够长期存在并实现 即使稍后发生业务变化,也能满足客户的需求。

Stackoverflow 编程语言调查

图片来源:Stackoverflow 调查

一些快速提示

  • 企业IT 部门的项目选择语言是技术经理面临的一大问题 与。在选择编程语言时,您应该考虑的最重要的事情是生态系统、社区和程序员的可用性。
  • 许多开发人员犯错误并选择编程语言只是因为它更流行、时尚、更酷。如果你为一个项目选择 Lisp 只是因为它是一种非常干净和漂亮的函数式语言,那么以后它可能会变成一个错误的决定。所以最好避免这个错误。
  • 项目的编程语言应该基于您的业务需求,而不仅仅是因为它有一些语法糖或被炒作。也许您觉得既然您是开发人员,就应该完全取决于您,您可以选择实现任何语言。只有您拥有选择任何您想要的技术的全部自由,但这在 IT 组织中不起作用,并且可能适得其反。
  • 作为技术经理,首先您需要关注项目的所有动态部分。您应该了解所有组件以获得更好的视图,这将帮助您选择特定的编程语言。项目开始时的良好视图有助于选择一种合理的编程语言,这会减少在维护项目、扩展项目和稍后保护项目上花费的时间
  • 在编程中,如果你能用Java、C#、 Python、 PHP或任何其他语言编写好的软件,那么你也可以用这些语言编写坏软件。没有一种语言是任何软件的最佳选择。某些语言和框架比其他语言和框架更适合项目。考虑Java的例子。它在创建的那一刻就不是一种好语言。它只是比竞争对手更方便。在选择语言时,您需要以这种方式思考。

现在让我们讨论一些您在为项目选择编程语言时应该问的问题……

选择编程语言时要问的问题

  • 该语言是否有适当的生态系统支持?它会长期工作吗?供应商支持是否适用于该语言?
  • 项目的环境是什么(网络、移动等)?
  • 我们是否需要考虑一些基础设施,例如新硬件?我们需要什么样的部署
  • 客户的偏好是什么?
  • 对编程语言的库、功能和工具有任何特定要求吗?
  • 开发人员是否可以使用这种语言进行编码,或者我们是否需要雇用新的开发人员?他们在使用这种语言时是否有经验和习惯,或者他们需要快速学习该语言?
  • 什么这个项目的一些重要的制约因素?时间、预算、资源?
  • 性能方面的考虑是什么,语言是否适合适应这种性能?
  • 什么是安全考虑,我们是否需要使用任何第三方工具?

上面给出的许多问题消除了为项目选择编程语言的困惑。

现在在编程中假设您有一项非常繁重的数字运算任务。在这种情况下您需要一种支持某些库的语言来为您执行复杂的数学运算,并且可以轻松处理数字。您可以考虑的另一个示例是处理大量文本。在这种情况下您需要一种语言,其功能集允许您轻松地对文本数据进行切片、切块和搜索。

要为您的项目选择正确的编程语言,您需要考虑不同的因素,例如性能、应用程序类型、安全性等,我们在需要提出的问题部分已经讨论过这些因素。现在让我们详细讨论这些因素,以便为项目使用合适的语言,但请记住,这总是需要权衡取舍。

一、申请类型

在为项目选择编程语言之前,您应该有一个明确的目的或目标。语言的选择在很大程度上取决于应用程序的类型。您要构建什么样的应用程序?它是 Web 应用程序或移动应用程序还是嵌入式固件等。这是您在为项目选择任何编程语言之前应该考虑的第一个也是最大的因素之一。

此外,您需要考虑应用程序的复杂性或大小。一些小项目,比如网页申请表、作品集展示、简单的营销网站,或者简单的个人博客,都可以用一些CMS系统来搭建,比如WordPress(需要PHP知识)或Umbraco(需要C#知识)。 Java或 C# 可用于中等规模的项目,例如电子商务网站、内部企业应用程序和 IoT 解决方案。

例如,面向对象的语言最适合 Web 应用程序。对于Android应用程序, Java或Kotlin都不错,对于系统编程,可以使用C等中级语言。

  • 前端开发:JavaScript、HTML 和 CSS
  • 后端开发: Python、C# 或 JavaScript
  • 2D 游戏开发:JavaScript 或 C#
  • 3D 游戏开发:C# 或 C++
  • 数据科学/机器学习/分析: Python、 R、Clojure、Julia
  • 数学与科学计算:Matlab、FORTRAN、ALGOL、APL、Julia、R、C++
  • 大数据: Java、 Python、R、Scala、Clojure
  • 操作系统:C、C++
  • 分布式系统:C、Go、Rust

2. 目标平台

您需要考虑的另一个因素是您要运行程序的目标平台。假设您有Java和 C 两种语言。如果您用 C 编写了一个程序,并且想在 Windows 和 Linux 上运行它。在这种情况下,您需要平台编译器和两个不同的可执行文件。

在Java语言的情况下,将生成字节码,要在任何机器上运行它,您应该安装Java虚拟机。网站也有类似的情况。它在所有浏览器中的外观和工作方式都应该相同。如果您使用 CSS3 和 HTML5 标签,那么您的网站在不同浏览器中的外观和行为可能会有所不同。

3. 可维护性

无论我们选择何种技术和语言,我们都能获得库和供应商支持的生态系统。我们需要关注应用程序的可维护性,这就是我们应该始终查看最新版本的语言或技术堆栈的原因。确保我们选择的任何东西都是最新的,并在很长一段时间内保持最新。

在构建应用程序时,您需要考虑长期与客户互动,在某些时候,您必须将代码库转移到另一个团队。您将不得不根据您将使用的技术聘请您所在地区的内部开发人员,并且您必须为此支付维护费用。

此维护成本将受到您所在地区开发团队的可用性和熟练程度的影响。例如,在中西部,招聘 C# 和Java开发人员比招聘 Ruby、 Python和PHP开发人员更容易。重点是……在为您的项目选择编程语言时,您需要考虑易于维护和应用程序的长期生存。

4. 可扩展性和性能

应用程序的性能在很大程度上取决于编程语言的选择。当开发环境没有提供太多扩展空间时,这很重要。为了从您的应用程序中获得如此多的性能,您需要选择正确的编程语言。

您的应用程序可以处理多少用户,如果用户数量增加,将来会发生什么?越来越多的用户会降低您的应用程序的性能还是会破坏您的应用程序?考虑应用程序的可扩展性。您的应用程序是否足够灵活,可以在不影响应用程序性能的情况下接受更多附加组件?

已经进行了大量研究来衡量应用程序的性能。然而,结果并不是对编程语言性能的具体评估。这种环境的一个例子是手持设备。一些具有良好可扩展性的流行技术栈是 Ruby on Rails (RoR)、.NET、 Java Spring、LAMP 和 MEAN。

5. 安全

在为项目选择编程语言时,您还需要考虑应用程序的安全性。每个应用程序都有不同类型的安全要求。例如,与医疗保健相关的应用程序需要 HIPAA 合规性,金融应用程序需要 PCI 合规性。如果您密切关注应用程序的安全性,您的应用程序将变得更加健壮。

您还需要保护您的应用程序免受网络威胁和黑客攻击。在为您的应用程序选择任何编程语言之前,您需要遵循安全准则。

6. 社区支持

在任何应用程序的开发过程中,您都会面临许多问题,如果没有足够的社区支持,可能会造成大问题。在构建应用程序时,您可能随时会卡住,您可能不得不求助于某些资源或其他开发人员。这就是你也应该注意这个因素的原因。

如果您选择的语言没有很多教程或要学习的文章,那么您将很难适应该语言并进行相关工作。在选择任何编程语言之前,最好先查看视频教程、文章、论坛和一些社区支持,例如 GitHub、Reddit 或 StackOverflow。

7. 开发时间限制

每个组织都希望尽快发布应用程序。业务利益相关者还希望尽快准备好新功能或应用程序。这就是您应该注意这个因素的原因,即……开发时间。

您应该选择一种可以帮助您尽快构建应用程序的语言。如果有足够的库支持、包或模块可用于一种语言,那么您就不必从头开始构建所有内容,并且可以节省应用程序的开发时间。

在这里,您需要注意所选语言的体验。您对语言越熟悉,开发所需的时间就越少。换句话说,如果一种语言易于学习,那么您就不会花太多时间来学习它、生成代码并使您的应用程序在服务器上运行。

最后的想法

有了要问的问题列表、可用的编程语言列表,并考虑到不同的因素,您可以就所使用的编程语言做出明智的决定。最好根据上述因素比较语言,为您的项目选择合适的语言。