编程语言烽火台
http://www.cppblog.com/Chipset/archive/2011/12/21/162552.html
编程语言烽火台
v10.4 – 2010年11月
该表包含了主要软件产品或应用,以及实现所用的编程语言详细信息。有关信息很难找到,个别小错误可能会掠过作者的眼帘,欢迎给出修改、添加、以及引用的建议。该列表不会面面俱到,仅仅列出主要应用。具体到产品家族的次序没有什么特别的规则,读者应该理解这不是排名。
主要的编程语言,完成的新开发高亮显示,古老时期使用过也给出来,仅仅使用很少一部分开发也指出来。软件列表通常很大,编程语言不够全面,杂七杂八 的语言没有涉及到。有时候一行有多种产品(例如”游戏”),或者一行有多种实现(例如JVM 实现),此时指出主流方向,忽略掉不同性质的例子。
一些读者认为列出的多数应用是基于古老的代码,使用的新技术表明其时间趋势。这种观点不对,介绍涉及了一些日期,像 这里, 或 这里 表明什么是”新”或”旧”技术跟直觉无关。
C和C++的区别有点人为因素,争论多数C代码是C++代码永远可能,或者反过来也一样(因为有些人使用C++或多或少像使用C没什么两样),大概怎样就凭直觉。
*** 表示当前进化使用的主要编程语言。
* 表示该技术仍在用,可能稳定可能衰减。
# 表示该产品已经死亡,死时在用那种技术。
=> 表示向指向栏目进化。
当只有箭头时,表明该技术相关的代码现在已经荡然无存或者微不足道,已经向箭头方向进化。
觉得网页内容似是而非的读者可以在这里找到该现象的细微解释。 阅读2.7.4部分。
版本注释:
2010年11月24日, v10.4: 修正了Perl行(C非C++), 添加了Google Wave终止信息。
2010年7月14日, v10.3: 给iPad OS, iPod Touch OS以及iPhone OS添加了信息。给Eclipse RCP加了点信息。
2010年3月5日, v10.2: 添加了PayPal项。
2010年2月8日,
v10.1: 给facebook项添加了HipHop项。
2010年1月2日, v10.0: 添加了Pike至 Opera
Mini,把发布号改为发布年。
2009年9月15日,
v3.9: 添加了Google Wave, Apple iPhone OS and Amazon Kindle OS几项。
2009年8月15日, v3.8: 添加了一个universal
remotes栏目。
2009年7月9日, v3.7: 添加了Google
Chrome OS
2009年5月17日, v3.6: 更新了Lotus Notes项。
2009年5月11日, v3.5: 更新了编译器/解释器栏目 (感谢, Northwood)。
2009年4月14日,
v3.4: 添加了 facebook。
2009年4月1日, v3.3: 页面颜色看上去舒服一些。
2008年9月8日, v3.2: 添加了Google
Chrome
2008年7月4日, v3.0: 修订了BlackBerry OS信息
2007年9月22日, v2.9: 添加了Google Android。
2007年8月21日, v2.8: 添加了邮件服务器部分。
产品类别 |
日期 |
汇编 |
C |
C++ |
Java |
C# |
其它 |
注释 |
操作系统 |
||||||||
Microsoft Windows |
|
* => |
* => |
*** |
|
|
|
在Windows Mobile中做了一些尝试使用部分C# (例如软键盘)。结果发现速度太慢,最终产品只好回退到C++。 |
|
|
*** |
|
|
|
|
|
|
|
|
*** |
* |
|
|
一些Objective-C |
最初版本的Mac OS用户接口受WIMP 中Xerox Alto 用户接口的影响,用SmallTalk实现,试运行,批量投放市场硬件成本过高。早期版本的MacOS使用汇编和Pascal |
|
Sun Solaris |
|
|
*** |
|
|
|
|
[Chipset译注: Solaris现在在Oracle门下] |
HP-UX |
|
|
*** |
|
|
|
|
|
2009 |
|
*** |
*** |
|
|
|
||
手机操作系统 |
||||||||
|
* |
|
*** |
|
|
|
Symbian是手机系统的领头羊 [Chipset译注: 诺基亚已经从Symbian转向了微软的WP,Symbian已经日趋没落] |
|
2008 |
|
*** |
|
|
|
|
Android以Linux为基础 |
|
|
|
|
*** |
|
|
|
RIM要求开发人员必须用Java 开发BlackBerry,开发人员对此困惑不解,BlackBerry OS 本身用C++开发。 |
|
2007 |
|
*** |
|
|
|
|
Kindle运行Linux |
|
2007 |
|
*** |
* |
|
|
一些Objective-C |
iPhone, iPod Touch和iPad使用 Mac OS的变种 |
|
图形接口层 |
||||||||
Microsoft Windows UI |
|
|
|
*** |
|
|
|
|
|
|
|
*** |
|
|
|
|
|
|
|
*** |
* |
|
|
|
|
|
|
|
|
*** |
|
|
|
|
|
桌面搜索 |
||||||||
|
|
|
*** |
|
|
|
|
|
|
|
|
*** |
|
|
|
|
|
|
|
|
|
|
# |
|
|
|
办公产品 |
||||||||
|
* => |
* => |
*** |
|
|
|
传统的MS Office使用了汇编,后来用C,C++出现后,任何新东西都用C++做。目前没有计划转变的倾向。几年前有一个小的尝试用C#开发一个面板,不清楚这种做法是否维持下来。 |
|
|
|
|
*** |
* |
|
|
Sun Micro Open Office,于1999从Star Division获得。没有企图尝试把代码转向Java,Java用在一些杂项模块。[Chipset译注: Open Office已经在Oracle门下] |
|
|
|
|
*** |
<= (1997年8月) |
|
|
Corel Office最初用汇编和C开发,Corel Office 转向了Java,处于移植性考虑于1996年全部用Java开发,于1997年8月放弃,因为速度太慢。代码后来用C和C++重新开发。 |
|
Adobe SystemsAcrobat Reader/Distiller |
|
|
|
*** |
|
|
|
|
关系数据库管理系统 |
||||||||
|
* |
* |
*** |
* |
|
|
核心代码只有汇编、C和C++ |
|
|
|
|
*** |
|
|
|
|
|
|
* |
*** |
* |
|
|
|
|
|
|
* => |
* => |
*** |
|
|
|
|
|
|
* |
*** |
* |
|
|
|
|
|
SAP DB/MaxDB |
|
|
|
*** |
|
|
|
|
网页浏览器 |
||||||||
|
|
|
*** |
|
|
|
|
|
|
|
|
*** |
|
|
|
|
|
|
|
*** => |
见 Mozilla |
<= # |
|
|
Netscape浏览器用C编写的,但Netscape 工程师都热衷Java (见M. Cusumano 的书和文章)于是用Java重新开发了该浏览器,太慢,只能弃之。下一版本Mozilla,用C++开发。 |
|
03年元月7日 |
|
|
*** |
|
|
|
||
08年9月2日 |
|
|
*** |
|
|
|
Chrome用了26种不同的库。最基本的代码来自Safari。处于核心地位之一的是特别快的 V8 JavaScript引擎, 用C++编写。 |
|
|
|
|
|
# |
|
|
HotJava 没有真正派上用场,跟其它浏览器相比,速度太慢。它成了Java applet 技术的展览品,1999年后冻结。 |
|
|
|
|
*** |
|
|
|
|
|
|
|
|
*** |
*** |
|
Opera Mini (2007) 的架构十分滑稽,用了C++和Java。该浏览器分为两部分,一个极 薄的(少于100KB)可视端部分和用于执行的服务器端。Java的最初使用来接受OBML格式的网页,后来复用的传统Opera (C++)执行引擎以及它的小屏幕执行在服务器上。这允许Opera嵌入支持J2ME的便携设备,例如手机,却保持很好的相应速度。当然,很明显做出一些 牺牲,例如执行JavaScript。 |
||
|
|
# |
|
|
|
|
Mosaic是第一个被广泛使用的浏览器,后来变成了Netscape。 |
|
邮件客户端 |
||||||||
|
|
|
*** |
|
|
|
|
|
|
|
|
|
*** |
|
|
|
|
开发环境 |
||||||||
|
|
|
*** |
|
|
|
|
|
|
|
|
|
*** |
|
|
Eclipse主要位于MS Visual Studio没有覆盖的市场。为了编译它,开发了一种特殊的图形库,SWT用来取代Java传统的AWT。不同于AWT全部用Java,密集用户反映速度太慢,SWT是C/C++代码上薄薄的一层。 |
|
虚拟机 |
||||||||
|
|
|
*** |
|
|
|
|
|
|
|
|
*** |
|
|
|
|
|
ERP |
||||||||
|
|
* |
|
|
|
*** |
|
|
|
|
|
* => |
*** |
|
Peoplesoft依赖于BEA Tuxedo 和C++代码,现在转向了BEA WebLogic和Java, 保留了 POOPL语言。C++ 代码明显没有重写。 |
||
|
|
|
|
*** |
|
|
|
|
商业智能 |
||||||||
|
|
|
*** |
|
|
|
|
|
图形编辑器 |
||||||||
|
|
|
*** |
|
|
|
|
|
|
|
*** |
|
|
|
一些Perl |
|
|
搜索引擎 |
||||||||
|
* |
|
*** |
|
|
|
|
|
网站 |
||||||||
|
|
|
(2002) => |
*** |
|
|
关于eBay的架构和从C++迁移到java的信息在这里 |
|
|
|
|
*** |
|
|
|
|
|
|
|
|
*** |
* |
|
|
|
|
2006年9月26日 |
|
|
*** |
|
|
*** |
这里仅仅涉及了facebook, 不包括插件。插件可以用多种技术开发,这多亏了facebook的ORB/应用服务器Thrift。Thrift 包含了一个用C++编写的编译器。facebook 人这样描述Thrift: "多语言代码和适合用于搜索,因为这允许应用开发位于高效的服务器端(C++) 而且允许基于PHP的网络应用程序使用Thrift PHP 库调用搜索服务" 在使用C++的一边, facebook采纳 了一个 LAMP 架构。 |
|
游戏 |
|
* |
* |
*** |
|
|
|
很多智能手机上的游戏用Java写的。这里仅仅指代”全伺服”磁盘游戏。 |
编译器/解释器 |
||||||||
Microsoft Visual C++ |
|
|
|
*** |
|
|
|
|
Microsoft Visual Basic |
|
|
|
*** |
|
|
|
|
Microsoft Visual C# |
|
|
|
*** |
|
|
|
|
gcc (GNU C 编译器) |
|
|
*** |
|
|
|
|
|
javac (Sun Java编译器) |
|
|
|
|
*** |
|
|
[Chipset译注: 现在为Oracle Java] |
|
|
*** |
|
|
|
|
|
|
|
|
*** |
|
|
|
|
|
|
三位引擎 |
||||||||
Microsoft DirectX |
|
|
|
*** |
|
|
|
|
OpenGL |
|
|
*** |
|
|
|
|
|
|
|
|
*** |
|
|
|
|
|
网络服务器 |
||||||||
Apache |
|
|
*** |
* |
|
|
|
|
Microsoft IIS |
|
|
|
*** |
|
|
|
|
邮件服务器 |
||||||||
|
|
* => |
*** |
|
|
|
|
|
|
|
*** |
|
|
|
|
|
|
|
|
|
*** |
|
* |
|
|
|
|
|
|
|
*** |
|
|
|
|
Web 2.0 |
||||||||
|
|
|
|
|
|
*** |
推动着Wikipedia |
|
|
|
|
|
|
|
*** |
|
|
|
|
|
|
|
|
|
细节不清楚,翻工多次,例如在2002-2006年期间 |
|
2009 |
|
|
|
# |
|
|
Google Wave用户接口使用 Google Web Toolkit.,这样使得用Java编写UI和生成Java脚本代码成为可能,服务器也用Java。 |
|
|
|
|
|
|
|
*** |
|
|
CD/DVD刻录 |
||||||||
|
|
|
*** |
|
|
|
|
|
|
|
|
*** |
|
|
|
|
|
媒体播放器 |
||||||||
|
|
|
*** |
|
|
|
|
|
|
|
|
*** |
|
|
|
|
|
|
|
|
*** |
|
|
|
|
|
P2P |
||||||||
|
|
|
*** |
|
|
|
|
|
|
|
|
*** |
|
|
|
|
|
|
|
|
|
*** |
|
|
Azureus建立在SWT之上,见Eclipse相关注释 |
|
GPS系统 |
||||||||
TomTom |
|
|
|
*** |
|
|
|
|
|
|
|
*** |
|
|
|
|
|
Garmin |
|
|
|
*** |
|
|
|
|
2003 |
|
|
|
# |
|
|
Motorola VIAMOTO 是一个智能手机"连接" GPS实现,有一个Java客户端。被一些汽车出售公司重新树立品牌。例如Avis Assist是Motorola VIAMOTO 产品的另外一个名字。. Avis已经撤销这个产品 提供在美国提供Garmin 在欧洲提供TomTom。Motorola 在2007年6月撤销该产品。Alamo/National重新树立品牌系统"Navigation Station" 也不再继续该服务。 |
|
2009 |
|
|
|
# |
|
*** |
操作系统 Harmony 1100现在以Flash为基础, Harmony 1000以Java为基础 |
该网页由Vincent Lextrait (e-mail vincent@lextrait.com)维护。
Chipset译,错误不妥之处在所难免,欢迎给出更正建议,谢谢。
英文版见:http://www.lextrait.com/vincent/implementations.html