C,java,Python,这些名字背后的江湖!

还记得高中的时候,有一次我们计算机老师问我们班要不要去参加市里面的C语言比赛,当时还小的我对编程世界压根就一片空白。那时候我就想啊,为什么是C语言,那么A语言,B语言或者是D语言又是什么呢?

后来就到了大学,学习了计算机知识后才知道C语言是什么东西。但是,你有没有过一瞬间感到奇怪,为什么它就叫做C语言,Java就叫java而不是叫J语言?今天我就带大家了解一下编程语言名字背后的故事吧~

Java

今天Java技术栈运用已经如此广泛,Web,Android,大数据等等。但你可能不知道,Java最初是为交互式电视而设计的,而且最开始它的名字也不是叫Java,而是叫Oak。

但是后面发现,不能使用Oak这个名字,因为它已经被注册了。为了这个事,Sun公司特地组织了一次头脑风暴。我们都知道,起名字这种事情,一个人来起最容易,但每增加一个人,起名难度呈指数上升。而当时参与起名的人得有十来个。大家广泛讨论,胡思乱想,最终产生了几十个名字,而经过一番评选讨论,名字个数缩小到十几个,名单上的名字除了Java外,还有Silk,Lyric,Pepper,NetProse,Neon...等等。

当时会议的人决定从这十几个名字中选出最终的名字,排名第一的名字叫“Silk”,很多人都表示同意(好险啊,Java差点就变成Silk了),但 James Gosling(Java之父)墙裂表示反对,大伙只好作罢,而排第二第三的都让律师否掉了,最终,排第四的Java被所有人接受(鼓掌),这也就有了现在我们熟知Java语言。

再说点关于Java这个名字的知识,Java是印度尼西亚爪哇岛的英文名称,因盛产咖啡而闻名。国外的许多咖啡店用Java来命名或宣传,以彰显其咖啡的品质。Java语言中的许多库类名称,多与咖啡有关,如JavaBeans(咖啡豆)、NetBeans(网络豆)以及ObjectBeans(对象豆)等等。

Python

Python最近几年可谓是炙手可热(这个词不能这样用,但大家好像都喜欢这样用,所以我就这样用了)。它的名字也挺有意思的,意思是蟒蛇。这缘于Python的创造者Guido van Rossum当时喜欢看一款BBC的节目“Monty Python’s Flying Circus”。而正好 Guido van Rossum需要一个简短,独特且略显神秘的名字,因此他决定将语言称为Python(大神就是任性啊)。

江湖有传说Guido van Rossum去Google面试的时候在简历上写了句“I write Python”。Hr以为是个写Python的,没想到是个写了Python的。2333

C

C可以说是大多数人的启蒙语言(起码对我而言是),那你有没有想过C语言为什么叫做C语言,它前面的A B哪去了,它后面的D语言又是谁?其实啊,B语言确实存在,C语言叫做C语言也是因为它是在B语言之后被创造的,甚至它和B语言也有不小的渊源。

C语言是由着名的美国程序员Dennis Ritchie(C语言之父)创建的,此时他就职于贝尔实验室。而在这之前,贝尔实验室就已经有了一门语言叫做B语言。而B语言是由Thompson创建的高级语言,它本身是由编程语言BCPL(又是一个古老的名字)的实现。

C语言与Unix系统息息相关,不过最初Unix系统是打算用B语言写的,只是因为B语言存在某些缺陷,于是C语言之父就打算弄出一种新的高级编程语言来完善它,于是就搞出了C,而这个过程是借鉴了B语言的。

C对Unix操作系统有很大影响。事实上,大多数Unix系统包括其内核的很大一部分现在都可以用C语言提供。而后C语言不断改进,一度成为最流行的语言,哪怕到了后面,也一直不断被其他语言借鉴。

一直被模仿,某些方面也从未被超越,说的就是C语言了吧。

PHP

PHP虽然有鼎鼎大名,但它的全称很多人可能还不知道吧(滑稽)。它的全称是Hypertext Preprocessor,虽然按道理应该是叫HPP,但可能是因为不大好听所以叫成PHP。最开始在1994年,当时Rasmus Lerdorf(PHP 之父)在C中编写了几个CGI程序,并用来维护自己的个人主页。他将它们扩展为一种使用Web表单并与数据库进行通信的工具,并将此实现称为PHP/FI(Personal Home Page/Forms Interpreter)。

Lerdorf最初是在1995年6月8日于Usenet讨论组上宣布发布PHP/FI为“个人主页工具(也就是PHP1.0)。

细心的读者可能会奇怪了,上面不是说PHP是Hypertext Preprocessor,怎么变成Personal Home Page了。这是因为啊,Zeev Suraski和Andi Gutmans在1997年重写了解析器并构建了PHP3的基础,将语言名称改为递归缩写PHP:Hypertext Preprocessor。

所以以后请不要叫PHP为“拍黄片”好吗。。。

如果觉得不错的话,不妨在留言区留言你对什么语言的名字感兴趣,后面可以继续更新~~

原文地址:https://www.cnblogs.com/listenfwind/p/10561277.html

时间: 2024-10-15 19:55:42

C,java,Python,这些名字背后的江湖!的相关文章

[LeetCode] 011. Container With Most Water (Medium) (C++/Java/Python)

索引:[LeetCode] Leetcode 题解索引 (C++/Java/Python/Sql) Github: https://github.com/illuz/leetcode 011.Container_With_Most_Water (Medium) 链接: 题目:https://oj.leetcode.com/problems/container-with-most-water/ 代码(github):https://github.com/illuz/leetcode 题意: 给一些

[LeetCode] 012. Integer to Roman (Medium) (C++/Java/Python)

索引:[LeetCode] Leetcode 题解索引 (C++/Java/Python/Sql) Github: https://github.com/illuz/leetcode 012.Integer_to_Roman (Medium) 链接: 题目:https://oj.leetcode.com/problems/integer-to-roman/ 代码(github):https://github.com/illuz/leetcode 题意: 把十进制转为罗马数. 分析: 模拟即可.

[LeetCode] 013. Roman to Integer (Easy) (C++/Java/Python)

索引:[LeetCode] Leetcode 题解索引 (C++/Java/Python/Sql) Github: https://github.com/illuz/leetcode 013.Roman_to_Integer (Easy) 链接: 题目:https://oj.leetcode.com/problems/roman-to-integer/ 代码(github):https://github.com/illuz/leetcode 题意: 把罗马数转为十进制. 分析: 跟 012. I

[LeetCode] 004. Median of Two Sorted Arrays (Hard) (C++/Java/Python)

索引:[LeetCode] Leetcode 题解索引 (C++/Java/Python/Sql) Github: https://github.com/illuz/leetcode 004.Median_of_Two_Sorted_Arrays (Hard) 链接: 题目:https://oj.leetcode.com/problems/Median-of-Two-Sorted-Arrays/ 代码(github):https://github.com/illuz/leetcode 题意: 求

[LeetCode] 005. Longest Palindromic Substring (Medium) (C++/Java/Python)

索引:[LeetCode] Leetcode 题解索引 (C++/Java/Python/Sql) Github: https://github.com/illuz/leetcode 005.Longest_Palindromic_Substring (Medium) 链接: 题目:https://oj.leetcode.com/problems/Longest-Palindromic-Substring/ 代码(github):https://github.com/illuz/leetcode

[LeetCode] 006. ZigZag Conversion (Easy) (C++/Java/Python)

索引:[LeetCode] Leetcode 题解索引 (C++/Java/Python/Sql) Github: https://github.com/illuz/leetcode 006.ZigZag_Conversion (Easy) 链接: 题目:https://oj.leetcode.com/problems/zigzag-conversion/ 代码(github):https://github.com/illuz/leetcode 题意: 把一个字符串按横写的折线排列. 分析: 直

常见的几种语言C,C#,JAVA,Python的运行原理

相对于常见的几种语言C,C#,JAVA,Python的运行原理 由于CPU只能识别机器码,即我们常说的二进制码01010101 有任何语言在计算机上运行最终都要转化成CPU能够识别的机器码010101 对于C语言:通过C语言代码编译器将C语言写出的代码进行编译得到机器码,然后机器码就可以交给CPU去识别,即运行 对于其他语言:代码编译器将代码编译成字节码,然后通过各自的虚拟机将字节码进一步处理(转换)成机器码(0101010101),然后在处理器上运行 Python和C 首先Python是用C开

[LeetCode] 020. Valid Parentheses (Easy) (C++/Java/Python)

索引:[LeetCode] Leetcode 题解索引 (C++/Java/Python/Sql) Github: https://github.com/illuz/leetcode 020.Valid_Parentheses (Easy) 链接: 题目:https://oj.leetcode.com/problems/valid-parentheses/ 代码(github):https://github.com/illuz/leetcode 题意: 判断一个括号字符串是否是有效的. 分析:

[LeetCode] 015. 3Sum (Medium) (C++/Java/Python)

索引:[LeetCode] Leetcode 题解索引 (C++/Java/Python/Sql) Github: https://github.com/illuz/leetcode 015.3Sum (Medium) 链接: 题目:https://oj.leetcode.com/problems/3sum/ 代码(github):https://github.com/illuz/leetcode 题意: 在给定数列中找出三个数,使和为 0. 分析: 先排序,再左右夹逼,复杂度 O(n*n).