探索未来:哪种后端开发语言最具潜力?

发表时间: 2024-06-03 14:08

有志于成为开发人员的人经常问我,哪种编程语言最适合学习。就我个人而言,我主要使用 JS——这是一个不错的选择,但现在每个人和他们的狗都在学习 JS,所以也许是时候增加一些多样性了。我很好奇——哪种编程语言对你来说用途最广泛,并在未来几年为你提供最多的职业机会?这就是我们今天要回答的问题。

以下是计划。我列出了 8 个技术专长:

竞争者是 TIOBE 前 20 名中的常见语言:Python、C、C++、Java(以及 Kotlin 和其他 JVM 语言)、C#(同样是 VB 和其他 .NET 语言)、JavaScript(和 TypeScript)、PHP、Go、Swift、Ruby、Rust。我排除了 SQL 和 Scratch,因为它们不是通用语言,而排除了 Fortan 和 Matlab,因为它们在科学/工程计算之外并不常用。

1 分表示该语言是其领域的行业标准 - 拥有庞大的社区和生态系统,大量的就业机会。0.5 分表示对该领域的某些任务有用。

那么,我们来看看哪些语言可以让你成为最全能的工程师?

后端

让我们从简单的开始——Java、C#、Python、PHP、Go 和 Ruby 都是优秀的后端编程语言。其中,我认为 PHP 更有用一些,因为许多低代码解决方案都依赖于它,而 Ruby 正在逐渐衰落。然而,所有这些语言都获得了 1 分。

接下来是0.5分:

这里唯一失败的语言是 Swift(从技术上讲它可以在服务器上使用,例如通过 vapor,但我在这个领域找不到任何工作)和 C。

前端

显然,JavaScript 是前端开发人员的语言,它在浏览器中原生运行。但令人惊讶的是,其他语言也可以完成这项工作!

所有可靠的后端语言(Java、C#、Python、PHP、Go、Ruby)都会得到 0.5 分,因为你可以使用传统的服务器端渲染 HTML 解决许多 UI 问题。C# 在这里略占优势,因为 Blazor 非常聪明且受欢迎。

C、C++ 和 Rust 获得 0.5 分,因为它们可以编译为 WebAssembly 并在浏览器中运行 - 看看 figma 就知道了。Rust 还支持一些很酷的 JS 工具,如 biome 和 swc。

唯一失败的语言是 Swift。

质量保证自动化

质量保证自动化这个主题实际上非常简单。

Java 和 Python 最受欢迎 - Allure、Selenium、JUnit 和 pytest 是当今市场上最热门的自动化工具。

Playwright 和 Cypress 给 JS 打了 0.5 分,它们是测试复杂 Web 前端的首选工具。一些自动化工具支持 C# – 0.2。

移动应用程序

另一个领域的事情相当简单。Android 应用程序是用 JVM 语言(Java/Kotlin)编写的,而 iOS 已集成 Swift(终于)。

JS 获得 0.5 分,因为可以使用 React Native 有效地构建应用程序,但您也可以使用 PWA 或老式的 WebView 获得良好的效果。

由于 Xamarin 和 MAUI,C# 获得 0.5 分。

桌面应用程序(Windows/Linux/MacOS)

C++、C# 和 Java 是这方面的三巨头。JS 获得 0.5 分,同样是因为 electron — 无论它是否令人厌恶,它都被广泛使用。Swift 获得另外 0.5 分,因为您可以使用它来构建 MacOS 应用程序,但 MacOS 计算机相对小众。

Rust 有一个备受关注的 Tauri 项目,用于构建桌面应用程序,但它并没有那么普及,我也不知道有任何知名的应用程序使用它。让我们给每个人的努力 0.2 分,看看以后会发生什么。

嵌入式系统

嵌入式系统通常资源受限,所以编译型语言是首选。基本上任何嵌入式工作都需要C和C++。

Rust 一如既往地前景光明,但目前还不是很流行,因此它得到 0.5 分。此外,Python 的得分只有后者的一半——用于边缘计算机视觉和原型设计,但对内存要求较高。

游戏开发

大型游戏开发的主要语言是C++(用于Unreal Engine)和C#(用于Unity)。

对于移动游戏来说,Java 和 Swift 各得 0.5 分,因为这些是你很可能使用的语言。JS(浏览器游戏)再得 0.5 分。

Rust 应该非常适合游戏,但是(正如现在所预料的)它还没有完全成熟。

数据分析与机器学习

毫无疑问,Python 是所有与数据相关的工作的首选语言,并且大多数前沿工作都是用 Python 完成的。

但是你知道还有另一种顶级语言可以帮助你获得数据和机器学习热潮吗?大公司有很多数据,对吧?大公司喜欢 Java。许多大数据工具(尤其是来自 Apache 的工具 - Hadoop、Spark、Jena)都使用 Java,而且大多数数据工作都需要 Python 或 Java 经验,因此 Java 又是一个优势。

更多惊喜 许多数据密集型 Python 库实际上是用 C/C++ 编写的,例如,超过三分之一的 numpy 或大部分的 LlamaCPP,两者都是半分。正如您所预料的那样,Rust 也通过 pola.rs 等产品在这个用例中获得了关注,因此它又获得了 0.2 分!

最后半分归于 JS,因为它为大多数 UI/可视化应用程序(如 bokeh)提供支持。

在公布最终排名之前,让我们先对每个类别进行一些权重,因为它们的规模并不相等。我使用了一些招聘信息、reddit/linkedin 群组和个人经验的分析。使用后端作为参考,我认为前端的规模大致相同。移动开发出人意料地大——我们给它的权重是 0.6。至于 QA,我认为 0.2 是合理的,因为每 3-5 名开发人员有 1 名 QA 是一个正常比例,并且仍然存在手动 QA。桌面是最小的区域,我认为应该是 0.1。对于游戏开发,0.5 只是我的随机猜测。最后,数据人员出人意料地多——薪水很高,所以我们给它 0.6。

总之:

Java 在所有五个类别中都名列前茅,并且具备一些游戏开发/前端能力,因此遥遥领先。其他 JVM 语言(尤其是 Kotlin)也在这个列表中,但由于使用不广泛而被打了折扣。接下来的三种语言非常接近,但 JS 略微领先,因为它在嵌入式之外的所有方面表现一般,尽管它只是前端开发的首选。Python 和 C# 并列第三。这两种语言都是顶级后端语言,在其他方面都有优势(Python 的 QA/ML,C# 的桌面和游戏开发)。C++ 也不甘落后,因为它在效率方面仍然是顶级语言。当其他语言需要加速时,C++ 也会进入它们的领域(WebAssembly/ML)。接下来是“后端三友”——Go、PHP 和 Ruby。它们都是构建网络后端的顶级语言,但其他就不多了。其中 Ruby 正在没落,而 PHP 和 Go 各有优势。 Rust 的得分并不高,但仍排在前十名,对于这样一种新语言来说,这还不错。Rust 有很大的潜力通过蚕食传统 C++ 的领地而发展,我们非常期待看到它在 3-5 年后的表现。我们都喜欢老牌的 C 语言,但 C++ 看起来更适合复杂的系统。Swift 排在最后——对于一种仅适用于一家公司产品的语言来说,这是公平的。

意外的是,最有用的语言是 Java。Python 和 JS 也是强大的语言,是初学者的最爱,但侧重点截然不同。C# 可能更值得关注。

总而言之,今天我们了解了很多让语言相互渗透的惊人技巧。如果你重新开始,你会学习哪种语言?

本文及图片来自最有用的编程语言

您对这篇文章有何反应:

看起来您已经点击过此内容!

抱歉,您最多只能订购三份!

您也可能对。。。有兴趣: