为什么有这么多以字母 “C” 为开头的编程语言?

yumo6662周前 (07-01)技术文章9

在Reddit上有个提问:

为什么有这么多以字母 “C” 为开头的编程语言?

题主从4个月前开始学习编程,对编程语言的数量印象深刻,但后来他意识到有很多字母为“C”的编程语言,例如:C、C++、CSS、Objective-C……这是为什么呢?

这些名字虽然看着像一家人,但其实各有各的故事。

今天我们就来聊聊,这些语言的名字到底是怎么来的,它们之间又有什么关系呢?


从B到C:C语言的诞生


故事要从20世纪60年代的一门语言BCPL讲起。

这是一种早期的系统编程语言,名字听起来很学术,而它也确实为后来的编程语言打下了基础。

后来,BCPL被简化成了B语言。

B是Ken Thompson和Dennis Ritchie在贝尔实验室开发的,主要用来编写Unix系统。

但很快,B就显得有些吃力了,于是Dennis Ritchie又在B的基础上开发了C语言。

至于为什么叫 C?原因特别简单:

因为C是字母表里排在B后面的字母,就这么随意。但这随意的命名,却开启了编程语言历史上的一个新篇章。


C和C的后代


C语言凭借其高效、简洁、贴近硬件的特点,成为了一代经典,也成了许多编程语言的“祖宗”。接下来,让我们看看那些以C为名的“后代”们。


1. C++:C的进化版

C++是由Bjarne Stroustrup在1980年代开发的。它基于C,但加入了面向对象编程(OOP)的特性,解决了C在开发大型软件时的一些短板。

至于名字,C++里的 “++” 是C语言中的自增运算符,意思就是“比C更进一步”。可以说,这个名字既geek又直白。


2. C#:更高一级的C

C#是微软开发的语言,专门用来构建Windows应用程序和企业级软件。

它的名字读作 “C Sharp”,源于音乐中的升音符号#,寓意“比C更高一级”。

也有一种说法是,C#的名字来源于 “C++++”,四个加号组成了一个“#”。不管是哪种解释,这个名字确实很有创意。


3. Objective-C:目标导向的C

Objective-C是由Brad Cox和Tom Love开发的,它在C的基础上增加了面向对象的特性,是苹果macOS和iOS开发的主要语言之一。

它的名字虽然听起来冷峻又正式,但其实就是“目标导向的C”。可以说,Objective-C是C的“苹果特别版”。


4. Carbon:C++的新挑战者

2022年,Google发布了一种名为Carbon的语言,目标是解决C++的一些问题,同时与C++保持兼容。

虽然名字里没有直接出现“C”,但它显然是受到了C和C++的启发。


那…CSS 又是什么?

这名字看着像是C家族的一员,但其实完全不沾亲带故。CSS的全称是Cascading Style Sheets,意思是“级联样式表”,用来定义网页的外观和布局。

它名字里的 “C” 代表的是Cascading(级联),而不是C语言。可以说,CSS是个“撞名”的无关亲戚。


有人调侃“A生B,B生C,C生万物”,C语言可以说是编程史上的里程碑。

无论是C++、C#,还是Go和Rust,这些语言或多或少都继承了C的思想——简洁、高效、贴近硬件。

学习编程的第一步,或许就在C语言。

相关文章

C++ 与 C 的那些事儿:深度剖析两者区别

在编程的世界里,C++ 和 C 就像是一对有着紧密血缘关系却又各具特色的兄弟。对于很多初学者或者有一定编程经验的人来说,分清它们之间的差异至关重要。今天,我们就来深入探讨一下 C++ 和 C 的区别。...

简述 C语言 有和 C++ 的基本区别,你真的懂吗?(新手面试必学)

1、c和c++的头文件不同c的头文件------#include c++的头文件---#include2、输入输出不同输入: int i = 10; c:scanf("%d",&...

C 语言和 C++ 有什么区别?老程序员居然这样理解,不怕你不懂

差不多是win98跟winXP的关系。C++是在C的基础上增加了新的理论,玩出了新的花样。所以叫C加加。C是一个结构化语言,它的重点在于算法和数据结构。C程序的设计首要考虑的是如何通过一个过程,对输入...

C++和C语言的区别在哪里?

C++是目前国内信息学奥赛的指定语言,它也是现如今最为流行的编程语言之一,因此不少孩子在选择编程语言学习时,会选择C++这一编程语言。由C++的名字不难看出,它与老牌语言C语言之间关系匪浅。那么,C+...

C++和C语言已经不是一种语言了,现代C++与C不一样了

C++和 C 完全不一样。学 C++前可以不用学 C,它和 C 的相似度都比不过 Java。在 C++11 之前,C++可以说是包含类的...

Java培训:C++和Java有什么区别?

  众所周知,C++和Java这两种编程语言都是面向对象的,但是这两种语言在几个方面有所不同。C++是C语言的衍生物,具有面向对象和过程编程语言的特征。基本上,C++是为应用程序和系统开发而设计的,而...