本文内容主观,纯属闲扯,且受限于我有限的视野,仅供娱乐。如有冒犯,纯属无意,请大家多多包涵。
一个人学会的第一门语言,可以很大程度地代表他的身份与背景。举个例子,一对大学情侣毕业后扎根大城市,结婚并有了下一代。父母二人学会的第一门语言是各自家乡的方言,而孩子学会的第一门语言是普通话。方言与普通话,便代表了两代人各自的年代与地域身份。
(举例而已,没有说普通话比方言好的意思)
我曾经想过,同样的概念其实也可以适用于编程语言。一个人学会的第一门编程语言,可以或多或少描述他的时代与群体,毕竟编程语言和人类语言一样,会带上地域与时代的印迹。
以我的大学举例子。我校计算机系有一位资历最深,声誉最高的老教授,我不知道他的年龄,但我听说他学的第一门编程语言是Ada。
with Ada.Text_IO; procedure My_Hello_World is begin Ada.Text_IO.Put_Line ("Hello, World!"); end My_Hello_World;
(这是Ada语言的Hello World)
比他年轻一些的教授,他们在大学里学的第一门编程语言是Pascal。更年轻的青年教师,入门编程用的是C语言。
而比他们都年轻的我,2015年9月在该大学里上了第一门编程课,用的语言是Java。
我们的第一(编程)语言,与计算机科学发展史紧密相连。
日本人用天皇年号标记世代,有“昭和男儿”和“平成废柴”的说法。计算机系也可以效仿,称老教授那代人为Ada世代(或Ada Generation),我这一代学生为Java世代,我们中间隔了Pascal世代和C世代。
计算机系之外,还有很多教授,学会的第一门编程语言是MATLAB。他们通常是其他院系的教授(工程类居多),学编程是出于科研需求。MATLAB也是他们身份的象征之一,有了Python之后,计算机系的基本上不学这个了。
我还听说物理系有一些德高望重的老教授,入门编程用的是Fortran。作为最古老的高级编程语言没有之一,Fortran很有生命力,在有些地方的土木工程系里至今还在使用。
module hello_world contains function hello() character(12) :: hello hello = 'Hello World' end function hello end module hello_world
(这是Fortran语言的Hello World)
大学环境之外,第一门编程语言也可能承载不少身份信息。
如果你学的第一门编程语言是Ruby,那很大概率你是在日本学的编程,或者你是日本文化爱好者。(Ruby是日本人设计的,日本对它很偏爱)
而如果你学的是Lua,很可能你入门编程是在巴西,或者你对游戏行业很感兴趣。(Lua是巴西人设计的,在游戏领域应用广泛)
如果一个中国人告诉我,他学编程用的是C++,我想他大概率是学生时代搞过编程竞赛。
而一个第一门语言是Python的人,很有可能是从别的专业转码的,或者最初只想学下编程试试看。(大部分大学以Python开设的编程课,都是面向非计算机专业的。Python也经常作为向大众介绍编程的语言使用)
(没有说Python或者转码不好的意思)
我的第一门编程语言是Java,你呢?
欢迎关注我的微信公众号【变量x的域】,里面是我的后端程序员日常,感谢!
变量x的域