为什么会有这么多编程语言?
为什么会有这么多编程语言?
在编程语言如此丰富的今天,相信许多开发者都有过上面的疑问。不过早在 1960 年代初,人们就已经提出了这个问题。
《ACM通讯》期刊近日发表了题为《Why Are There So Many Programming Languages?》的文章,作者在文中指出了一个重要原因:公司基于商业利益的诉求,希望控制编程语言,所以会发明由自己主导的语言。
1990 年代中期,Visual Basic 和 Visual C++ 是微软主力开发和维护的编程语言。这两种语言都是从已有的编程语言衍生而来,Visual Basic 的优势是为 Windows 桌面平台构建前端应用程序,但它缺乏许多高级语言功能(如数据结构、线程)。Visual C++ 虽然几乎可以处理所有问题,但它十分复杂。然后,Java 在 1996 年问世了,Java 是全功能的面向对象的编程语言,不像 C++ 那么复杂。
Java 的核心功能之一是平台可移植性,但这不是微软希望看到的,因此 Java 背后的公司 Sun Microsystems 与微软产生了冲突,并且从 1997 年开始发起诉讼。双方紧张的关系最终导致微软在 2002 年发布了一门名为 C# 的编程语言,它看起来很像 Java,但事实上并不是。当然两者最重要的不同点在于,C# 是微软可以在自家 Windows 平台上控制的编程语言。
除了公司对于控制和财富的诉求,编程语言之所以如此多与当时的技术环境和水平密切相关。现在许多看起来理所当然的事情在过去并非如此,早期计算机的存储、内存和处理能力都是有限而昂贵的。人们不得不费尽周折,只为到计算机实验室,通宵熬夜以获得计算机使用时间。
在那个时代,编程语言通常是为某些任务或工作而设计的,编程语言的命名也更简单——因为命名空间尚未被开发。在 1950 年代和 1960 年代,最初的程序可以“奢侈地”用其所作的事情精确命名:FORTRAN(公式翻译器)、COBOL(面向商业的通用语言)、BASIC(初学者通用符号指令代码)、ALGOL(算法语言)、LISP(列表处理器)。大多数人可能没有听说过 SNOBOL(面向字符串和符号语言,1962),但是通过名字稍微猜测就可以知道它的用途。如果那个时代对面向对象的编程概念有更多了解,相信会有人使用“OBJOL”之类的名字命名——明确命名为面向对象语言,至少按照那时的命名模式会是这样。
到了现在,更多的编程语言在许多方面都像是重新造轮子——它们许多都是满足下面属性的多种组合:
- License
- 开源;商业
- 平台
- 操作系统、硬件支持
- 语言范式
- 面向过程、函数式、面向对象等
- 类型系统
- 动态、静态等
- 并发
- 单线程、多线程
- 内存管理
- 垃圾回收(自动或手动)
- 执行
- 解释、编译到虚拟机、原生编译等
- ……

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
Ubuntu 21.10 生命周期已结束
自 2022 年 7 月 14 日起,Ubuntu 21.10 ”Impish Indri“ 生命周期已结束,不再接受任何包更新,并将在接下来的几周内将其存档到 old-releases.ubuntu.com。 Ubuntu 21.10 ”Impish Indri“ 于2021 年 10 月 14 日发布,是一个 9 个月的短期版本,其支持期现已结束,Ubuntu 的任何安全声明将不再提供关于 Ubuntu 21.10 的信息或更新包。 使用 Ubuntu 21.10 的用户可以直接升级到 Ubuntu 22.04 LTS。升级说明和注意事项可在以下位置找到:https://help.ubuntu.com/community/JammyUpgrades。 Ubuntu 22.04 LTS 将继续得到积极的安全更新和错误修复,该版本的安全公告更新将发送到 ubuntu-security-announce 邮件列表,相关信息可在以下位置找到: https://lists.ubuntu.com/mailman/listinfo/ubuntu-security-announce
- 下一篇
模糊照片秒变高清大图,飞桨PPDE带你复现图像恢复模型CMFNet
本文已在飞桨公众号发布,查看请戳链接: 模糊照片秒变高清大图,飞桨PPDE带你复现图像恢复模型CMFNet 图像恢复技术,就是使用各种图像算法对有缺陷的图像进行修复还原的技术,常见的图像恢复需求有:图像降噪、图像锐化、图像去雾、图像去雨水等等,本篇文章将介绍一种基于复合多分支特征融合的现实图像恢复模型CMFNet[1],并使用飞桨框架实现CMFNet模型,加载官方提供的预训练模型,完成去模糊、去雾霾和去雨水三种图像恢复任务。 点击获得项目链接,欢迎STAR https://aistudio.baidu.com/aistudio/projectdetail/3732305 开始之前,先来看看模型的恢复效果如何? 图像修复的效果是不是还不错呢?接下来,我们一起了解一下技术原理吧。 CMFNet模型介绍 CMFNet包含三个主要的模块,其总体的模型结构如图4所示。 图4 CMFNet模型结构 本文用简单的块结构将多个复杂块叠加到多个分支中,分离出不同的注意特征。图4中的三个U-Net结构使用不同的注意力模块,如图5所示。 图5 U-Net模型结构 本文还基于监督注意模块 (SAM)[2] 提...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- Hadoop3单机部署,实现最简伪集群
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- CentOS7编译安装Gcc9.2.0,解决mysql等软件编译问题
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- SpringBoot2整合Redis,开启缓存,提高访问速度
- Windows10,CentOS7,CentOS8安装Nodejs环境
- MySQL8.0.19开启GTID主从同步CentOS8
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- Eclipse初始化配置,告别卡顿、闪退、编译时间过长
- 设置Eclipse缩进为4个空格,增强代码规范