计算机编程语言为何层出不穷?化解开发者痛点才是关键

在 7 月上旬的一篇 CACM 博客文章中,Doug Meil 谈论了《为何有这么多编程语言?》这个话题。而在 1990 年代,曾有一位精通计算机、但并非身为全职开发者的朋友向他提问“为何没有一种好用的编程语言?”当时他的回答是,编程语言同行为特定的人物或工作语言而设计。

计算机编程语言为何层出不穷?化解开发者痛点才是关键

(来自:BLOG@CACM)

计算机编程语言为何层出不穷?化解开发者痛点才是关键

从这个意义上说,大多数语言的区别,并不在于它们使什么成为可能、而更多地表现在它们使什么变得容易。

几年前,Doug Meil 有机会参观了位于加州山景城的计算机历史博物馆。有趣的是,在众多展品中,有一幅关于编程语言演变的超大号壁纸图标。

这张图是如此之大,想必任何编写过“Hello World”语句人们,都可以在上面找到对应的编程语言。

在本能的趋势下,人们会忍不住沿着时间的正序方向去查看。但若回头望,你又会领略到不同的视角。

这张图表显示了已经发明的数千种编程语言里的大约 150 种,其中一些较为通用、另一些则是为特定类型的应用程序而设计。

图表上的箭头,显示了较新诞生的语言如何受到了老语言的影响。不过就算复杂如此图,它也只能算是更大范围里的一个样本。

计算机编程语言为何层出不穷?化解开发者痛点才是关键

(图 via Coding Across America)

软件世界里的新语言依然层出不穷,但很少有全新的语言冒出来。回顾早期,计算机的资源内存、存储和处理能力都相当昂贵且有限。

为此,人们不得不逆风上坡,甚至经常需要通宵熬夜来争取计算机的使用时间。而 1950-1960 年代初始的命名空间,可以精确地处理底层事务。

时至今日,年轻开发者们已鲜有涉足 FORTRAN(公式翻译)、COBOL(通用商业导向语言)、BASIC(初学者通用符号指令代码)、ALGOL(算法语言)、LISP(List Processor)。

不过就算大多数人可能根本没有听说过描述字符串处理算法的 SNOBOL 语言(1962)或 OBJOL,但只要充分理解了面向对象的编程理念,就不难推测它可以用来干什么 —— 至少年代的命名模式就是如此。

1964 年的 PL/I,致力于成为一种更好用的编程语言。虽然它没有如设计者预期那样发展,但早在 1960 年代初,人们就已经提出过“为何有这么多编程语言”的疑问。

时间快速翻到千禧年后,我们陆续迎来了 Scala(2003)、Go(2009)、Rust(2010)、Kotlin(2011)和 Swift(2014)。

计算机编程语言为何层出不穷?化解开发者痛点才是关键

当下的技术环境,似乎所有这些基本语言的属性,都被重组到了特定的解决方案中。

其能够满足任何平台上的所有低级 / 高级功能、过程 / 对象、单线程 / 多线程、编译 / 脚本需求。

在此情况下,继续创造新语言的最大因素,反而是出于控制的考量。

1990 年代中期,微软主要提供了 Visual Basic 和 Visual C++ 开发语言,两者都源于计算机历史博物馆壁纸上的旧节点。

VB 流行于为 Windows桌面平台构建前端应用程序,但缺乏许多高级语言功能 —— 比如数据结构和线程。

VC++ 处于光谱的另一端 ——开发者几乎可以做到任何事情,但难点在于语言本身太过复杂。

正因如此,一些人看到了打造一款“中间语言”的机会,于是 Java 在 1996 年迎来了爆发。

据悉,Java 是一种功能齐全的面向对象语言,且涉及重点之一是跨平台的可移植性,可惜这并不是微软的首要目标。

随后 Sun Microsystems 和微软在 1997 年陷入了旷日持久的冲突,并最终推动后者在 2022 年推出了 C# 。

乍一看 C# 和 Java 很像,但实际上并非如此。其填补了微软开发堆栈的‘中间’位置,且该公司能够更好地掌控该语言。

最后从总体设计控制角度来看,维护和发展现有系统,很容易变成一项艰巨的挑战。而管理编程语言的增长,也是最困难的案例之一。

作为编程语言的用户,优秀开发者们不仅具有生产力、还能够以创造性的方式去使用相关特性,即便这么做并不是语言作者所期望的。

2009 年的 Go 语言,就是一个相当有趣的例子。其诞生的一个主要推动因素,就是需要能够在 Google 的容器化云环境中,高效且可预测地部署。

其次是对强大语言的渴望,尤其在网络和并发性方面。从人才角度来看,Google 显然有能力为现有语言构建一套新的编译器和运行时引擎。

但要改变开发者的习惯,则需要费力地改变编程语言的语法和功能 —— 尤其是被告知某些事情不再被允许、或必须以不同方式去完成时。

以上内容来源于网络,由“WiFi之家网”整理收藏!

原创文章,作者:电脑教程,如若转载,请注明出处:https://www.224m.com/216441.html

(0)
电脑教程电脑教程
FW150RM无线路由器怎么设置Repeater中继模式?
上一篇 2022年12月29日 09:47
192.168.1.1手机入口登录-192.168.1.1登录入口在哪里.
下一篇 2022年12月29日 09:58

相关推荐

  • 如何快速实现整机备份还原(电脑如何备份还原)

    多数人的电脑中都存着重要的资料和数据,一旦丢失后果不堪设想,多种数据备份方式又很麻烦,可当电脑丢了、硬盘坏了、数据没了,怎么办? 选对备份方法很重要,有木有备份整机的方法? 为什么…

    2023年2月22日
    2.5K
  • 系统定时关机设置方法

    原标题:"WinXP系统怎么定时关机 XP定时关机设置教程"相关电脑问题教程分享。 - 来源:WiFi之家网。WinXP系统电脑怎么设置定时关机呢?WinXP系统用什么软件可以实现定时关机功能?下面给大

    2021年8月3日
    11.5K
  • 宿舍路由器宽带设置教程(宿舍宽带怎么连接路由器)

    宿舍路由器宽带设置教程 在宿舍中,如何连接宽带并设置路由器呢?下面为大家详细介绍: 1. 先连接宽带 首先,我们需要将宽带连接到我们的路由器上。根据宽带的类型,连接方法也有所不同。…

    网络 2024年12月3日
    2.2K
  • 如何打开lnk文件 文件后缀ink是什么意思?

    如何打开lnk文件 lnk打开文件的程序是什么?文件后缀ink是什么意思? lnk文件是指向其他文件(如程序)的文件。双击打开或查看属性以查看源文件的位置。工具:电脑。打开电脑桌面上的这台电脑。2

    投稿 2022年7月21日
    5.8K
  • 安卓手机怎么设置路由器?(安卓手机如何设置路由器?)

    请问:安卓手机如何设置路由器上网? 答:在手机的浏览器中,打开路由器的设置页面后,就可以设置路由器了。所以,其实不管手机是什么系统,设置路由器的步骤都是一样的,下面会演示。 提示:…

    常见问题 2022年2月2日
    6.7K
  • 路由器设置ip地址是空的(路由器设置进不去设置页面怎么办)

    路由器设置ip地址是空的(路由器设置进不去设置页面怎么办) 路由器是我们日常生活中使用网络的重要设备之一,它能够将网络信号进行转发,保障我们的网络连接稳定,但是,在日常使用中,我们…

    网络 2023年12月2日
    557
  • 192.168.3.1手机登陆

    有网友问我,设置华为/荣耀路由器的时候,如何用手机登录到192.168.3.1管理页面?192.168.3.1手机登录的方法很简单,将你的手机连接到路由器的wifi信号,然后在浏览器中输入192.168.3.1,可以打开登录页面;输入正确的登录密码,点击“登录”就能进入管理页面。考虑到很多新手用户缺

    192.168.3.1 2021年5月14日
    10.2K
  • 笔记本怎么换硬盘,自己动手更换笔记本硬盘方法

    在笔记本内部硬件中,硬盘、光驱等硬件是最容易出现故障的,在笔者已经用过的3台笔记本中,有2台都是硬盘最先坏掉的。笔记本硬盘坏掉了怎么办呢?相信很多朋友会选择拿去维修,其实小编认为完全不用,自己动手换笔记本硬盘就非常简单,以下是笔记本换硬盘方法步骤,感兴趣的朋友一起看看。第一步:准备好一块新笔记本硬

    2021年9月9日
    123.4K
  • 无线路由器开启WMM、ap隔离、Short GI三者之间的作用和区别

    摘要:无线路由器中有开启WMM、ap隔离、Short GI三者之间的作用和区别?分别代表什么意思,以及具体功能?下面三点对这三项无线高级设置做了下解释。需要的朋友可以参考下......

    路由器百科 2022年11月19日
    12.0K
  • 360t6u路由器设置(联通360t6u路由器)

    360t6u路由器设置(联通360t6u路由器) 想要让自己的家庭网络更加稳定、畅通?那么你一定需要一台好的路由器。今天,我们就来介绍一下联通360t6u路由器的设置方法。 第一步…

    网络 2024年12月14日
    2.2K