这个数据主要根据TIOBE进行按序说明,目前是2016年10月,挑选前七名进行说明。
Java
- 生日:1995年5月
- 起源:20世纪90年代,sun公司为了在电视机顶盒等电子产品智能化过程中抢占先机,成立了一个叫Green的team。由于C++嵌入单片机过于复杂和庞大,另外由于跨平台的问题,Green在C++的基础上开发了Oak。1995年,由于网页传播的需要,sun公司使用Oak推出了Applet,并更名Oak为Java(原因是Oak已经被人注册了)
- Java的编译器和虚拟机(解释器)主要是用C和C++(界面)写的,夹杂少量汇编
- Java之父:詹姆斯·高斯林(James Gosling)
- 应用领域:
Android应用
在金融业应用的服务器程序
网站(只能说能用,绝不是好的选择)
嵌入式领域
大数据技术(hadoop)
高频交易的空间
科学应用(nlp包)
C
- 生日:1972年
- 起源:1967年,剑桥大学的Martin Richards对CPL语言进行了简化,于是产生了BCPL(Basic Combined Programming Language)语言。20世纪60年代,美国AT&T公司贝尔实验室的Ken Thompson闲着没事,背着老板想用一台闲置的没有系统的电脑打游戏,由于没有系统不行,他就开发了Unix系统,Dennis M.Ritchie为了更快玩上游戏,就改造了B语言。1972年,美国贝尔实验室的 D.M.Ritchie 在B语言的基础上最终设计出了C语言
- 第一个C语言编译器应该是用汇编写的,但是第一个成熟的C语言编译器应该是由汇编和C语言共同写的。使用“自举编译器”的原理。
自举编译器的一点说明(来自知乎):
你想创造一门V语言而且用V语言来写V编译器的话,你得按照下面的方法做:
1、用C++把那个编译器(A)写出来,顺便留下很多测试用例。
2、用V语言把那个编译器写(B)出来,用A.exe来编译B,修改直到所有测试用例都通过为止。
3、B.exe来编译B自己得到B2.exe,修改直到B2.exe所有测试用例都通过为止。这是为了保证,就算B本身有很多bug,至少编译自己是没有bug的,从而你就可以走到第四步。
4、当你觉得有信心了,用A.exe把B编译一遍,就得到了B.exe。然后A的代码和A.exe都在也不需要存在了,删掉他们。以后你就不断的用B.exe来编译下一个版本的B就好了。就自举了。
- C语言之父:丹尼斯·里奇(Dennis MacAlistair Ritchie)
- 应用领域:
应用软件(linux上大部分软件均用C开发)
对性能要求严格的领域
系统软件和图形处理(绘图能力)
数字计算
嵌入式设备开发
游戏软件开发
C++
- 生日:1983年
- 起源:20世纪70年代中期,Bjarne Stroustrup在剑桥大学计算机中心工作。他对Simula的类体系感受颇深,对ALGOL的结构也颇有好感,以C为背景,以Simula思想为基础,正好符合他的设想。1979年,Bjame Sgoustrup到了Bell实验室,从事改良C的工作,1983年该语言被正式命名为C++
- 据说cfont是让C++代码编译成c代码.然后用c语言编译器来编译成可执行文件
- C++之父:本贾尼·斯特劳斯特卢普(Bjarne Stroustrup)
- 应用领域:
游戏
科学计算(数值计算库)
网络软件(网络通信库)
分布式应用
操作系统
设备驱动程序
移动(手持)设备
嵌入式系统
C#
- 生日:2000年6月
- 起源:C#看起来与Java有着惊人的相似;它包括了诸如单一继承,界面,与Java几乎同样的语法,和编译成中间代码再运行的过程.但是C#与Java有着明显的不同,它借鉴了 Delphi的一个特点,与COM(组件对象模型)是直接集成的,而且它是微软公司.NET windows网络框架的主角
- C#之父:安德斯·海尔斯伯格 (Anders Hejlsberg)
- 应用领域:
Windows窗体应用程序
Web应用程序(中国移动的部分业务平台)
移动设备应用程序,即嵌入式开发领域
Python
- 生日:1991年
- 起源:1989年圣诞节期间,在阿姆斯特丹,Guido(龟叔)为了打发圣诞节的无趣,决心开发一个新的脚本解释程序,做为ABC 语言的一种继承
- Python的解释器有多种实现方式,通常意义上是用C
- Python之父:吉多·范罗苏姆(Guido van Rossum)
- 应用领域:
数据库
Windows编程
多媒体
科学计算
网络编程
图形用户界面
开发环境与编辑器
集成开发环境(IDE)
代码编辑器(gvim,emacs)
嵌入和扩展
游戏编程
企业与政务应用
Javascript
- 生日:1992年
- 起源:工作于 Netscape 的 Brendan Eich,开始着手为即将在 1995 年发行的 Netscape Navigator 2.0 开发一个称之为 LiveScript 的脚本语言,当时的目的是在浏览器和服务器(本来要叫它 LiveWire)端使用它。Netscape 与 Sun 及时完成 LiveScript 实现。就在 Netscape Navigator 2.0 即将正式发布前,Netscape 将其更名为 JavaScript,目的是为了利用 Java 这个因特网时髦词汇。
- JS一般都通过JS引擎去解析的,google chrome的js引擎是v8,使用C++编写的
- JS之父:布兰登·艾奇 (Brendan Eich)
- 应用领域:
网站开发
移动开发
桌面开发( chrome 等浏览器能把 js 写的程序打包成桌面应用)
插件开发
PHP
- 生日:1994年
- 起源:1994年Rasmus Lerdorf为了要维护个人网页而制作的一个简单的用Perl语言编写的程序
- 解释器开始是用Perl语言编写的,后来又用C语言重新编写
- PHP之父:拉斯姆斯·勒多夫(Rasmus Lerdorf )
- 应用领域:
服务端脚本
命令行脚本
编写桌面应用程序(PHP-GTK)