为什么会有这么多编程语言?(2015)

2020-10-12 22:26:49

在过去的一周里,与我们客户共事的同事两次问我这个问题。这听起来是个愚蠢的问题,但事实并非如此。

简而言之,我们不需要那么多语言,但我们需要它们。让我们进一步探讨这个问题。

从某种意义上说,是的。您可以使用Ruby、Java、Python、C#、Go或JavaScript创建网站。您可以使用C或C++或Haskell或Rust。或COBOL或PASCAL或PERL。

这一事实背后的原因是,所有这些语言都服务于同一个目的:将人类的思维转化为计算机能够理解的1和0。用夸张的计算机术语来说,它们都是“图灵完全的”。

在最基本的层面上,这些语言都是相同的。但在表面上-人类与它们互动的地方-它们有很大的不同。这就是其他担忧发挥作用的地方。

编程语言是工具,我们为不同的工作选择不同的工具。拖拉机拖车、自行车和特斯拉都是车辆-它们都有轮子和方向盘,可以把你从A点带到B点-但显然我们用它们来做不同的事情。

编程语言是相似的。Ruby和JavaScript非常适合构建网站;Java和C++经常用于金融交易;Python和R是分析统计数据的首选工具。

语言经常在便利性、安全性和速度方面进行权衡-很像交通工具。权衡取舍是由手头的工作决定的。

编程语言是人类向计算机表达思想的工具。虽然我们开发人员有很多共同之处,但我们的思维方式自然是多种多样的。

因为我们有很多好的编程语言可供选择,所以我们可以选择一种“按照我想的方式工作”的语言。一些开发人员喜欢Ruby的灵活性,而另一些开发人员则喜欢Java的严格。有些语言感觉像数学,有些语言看起来像散文。

超越了效用,超越了品味,企业是以人为本的。通常,您会根据您或您周围的人所知道的来选择一种编程语言。

堆栈溢出选择C#主要是因为我们的创始人知道这一点。反过来,这也是创始人的朋友和同事所知道的。这使得招聘变得更容易,并使Stack更快地进入市场。

技术得到“生态系统”的支持,“生态系统”是指提供每个开发人员所需的工具和帮助的社区和组织。一个好的生态系统-例如,Ruby有一个很好的生态系统-可以让单个开发人员更成功。

总而言之,我们有各种各样的编程语言,因为有各种各样的工作要做,而且有各种各样的人在做这些工作。这种多样性使有趣的项目、有趣的公司和有趣的职业成为可能。

您可以在Stack Overflow Job上发现使用C#、Ruby或任何适合您口味的语言进行开发的职业可能性。

Stack Overflow Podcast是一个每周一次的对话,主题是从事软件开发、学习编程以及计算机编程的艺术和文化。