博客 阅读时间 4 分钟

谨防编程语言“唯我独尊”综合症

分享本文
Beware of Programming Language Domination Syndrome

在多年使用同一个操作系统、同一门编程语言、同样的技术和工具之后,我们可能会深信自己的选择是最好的,并开始排斥其他替代方案。从某种意义上说,我们成了这些选择的奴隶。无论项目的性质如何、客户的需求怎样,我们都一成不变地做出同样的决定。

您只要在论坛上挑起一场论战就能轻易观察到这一点:只要说一句“.NET 比 Java 好”或者“Windows 优于 Linux”, 反应可能会让您大吃一惊。许多开发者对其中一方忠贞不渝,并断然拒绝另一方,而很少有人愿意停下来讨论一个事实:两者各有优劣。

最终,开发者可能沦为某门特定编程语言的奴隶,让这门语言来左右自己的选择。

我们都知道,没有任何一种方案能解决所有问题。Windows 在某些情况下可能是最佳选择,但在另一些情况下则不然;C++ 亦然,它适合某些项目,却不适合另一些。因此,不要落入“某个操作系统、语言或技术永远最好”的陷阱。保持开放的心态,探索其他可能性,思考它们可能在何处派上用场。

关注其他主流语言的演进、探索新的编程语言,永远是值得的。

主流编程语言的演进

C++:许多开发者认为 C++ 非常复杂、难以学习——一门“专家友好型”语言。然而,自 2011 年以来,情况发生了很大变化。看一看所有的新特性,也许会改变许多开发者的看法。

.NET 与 C#:每个新版本都带来许多有趣的新特性,而且这个框架最近发生了一次重大变革:开源框架.NET Core的崛起。强烈建议您去看一看,发掘它的所有优点。

Java:在 Java 9 之前,Java 停滞了许多年。不过,当许多 Java 开发者发现 Java 10 于本周发布时,着实惊喜了一把。这对 Java 开发者来说是个好消息——证明 Java 不再停滞不前。

探索新的编程语言

Rust

Rust是一门由 Mozilla Research 赞助的系统编程语言。Mozilla 将其描述为一门“安全、并发、实用的语言”,支持函数式和命令式-过程式编程范式。Rust 在语法上与 C++ 相似,但其设计者希望在保持性能的同时提供更好的内存安全性。

Rust 是一门开源编程语言。它的设计者通过编写 Servo 浏览器排版引擎

[

以及 Rust 编译器的实践,不断打磨这门语言。目前该项目很大一部分提交都来自社区成员。

Rust 在 2016、2017 和 2018 年的 Stack Overflow 开发者调查中蝉联“最受喜爱的编程语言”第一名。

Crystal

Crystal 是一门通用编程语言,其口号是“快如 C,优雅如 Ruby”。

它是一门高级的、静态类型的、编译型的、完全面向对象的编程语言,具备高级类型推断和垃圾回收功能。

Crystal 的设计目标是:

  • 拥有与 Ruby 相似的语法(但与 Ruby 兼容并不是目标)。
  • 进行静态类型检查,但无需指定变量或方法参数的类型。
  • 能够通过在 Crystal 中编写绑定来调用 C 代码。
  • 支持编译期代码求值与生成,以避免样板代码。
  • 编译为高效的本地代码。

Clojure

Clojure 是一门动态的通用编程语言,将脚本语言的平易近人和交互式开发体验,与高效而健壮的多线程编程基础设施结合在一起。Clojure 是一门编译型语言,同时保持完全动态——Clojure 支持的每个特性在运行时都可用。Clojure 提供了对 Java 框架的便捷访问,并支持可选的类型提示和类型推断,以确保对 Java 的调用可以避免反射。

Go

Go(通常称为golang)是 Google 于 2009 年由 Robert Griesemer、Rob Pike 和 Ken Thompson 创造的一门编程语言。它是一门编译型、静态类型的语言,继承了 Algol 和 C 的传统,并加入了垃圾回收、有限的结构化类型、内存安全特性以及 CSP 风格的并发编程特性。最初由 Google 开发的编译器和其他语言工具全部是自由且开源的。

结语

始终对新的可能性保持开放,持续探索行业中正在发生的事情。这正是身为开发者的魅力之一:没有例行公事,每天都有新事物。

分享本文