编程语言烽火台

http://www.cppblog.com/Chipset/archive/2011/12/21/162552.html


编程语言烽火台
v10.4 – 2010
11

该表包含了主要软件产品或应用,以及实现所用的编程语言详细信息。有关信息很难找到,个别小错误可能会掠过作者的眼帘,欢迎给出修改、添加、以及引用的建议。该列表不会面面俱到,仅仅列出主要应用。具体到产品家族的次序没有什么特别的规则,读者应该理解这不是排名。

主要的编程语言,完成的新开发高亮显示,古老时期使用过也给出来,仅仅使用很少一部分开发也指出来。软件列表通常很大,编程语言不够全面,杂七杂八 的语言没有涉及到。有时候一行有多种产品(例如游戏”),或者一行有多种实现(例如JVM 实现),此时指出主流方向,忽略掉不同性质的例子。

一些读者认为列出的多数应用是基于古老的代码,使用的新技术表明其时间趋势。这种观点不对,介绍涉及了一些日期,像 这里 这里 表明什么是技术跟直觉无关。

CC++的区别有点人为因素,争论多数C代码是C++代码永远可能,或者反过来也一样(因为有些人使用C++或多或少像使用C没什么两样),大概怎样就凭直觉。

 

*** 表示当前进化使用的主要编程语言。

*     表示该技术仍在用,可能稳定可能衰减。
#     
表示该产品已经死亡,死时在用那种技术。
=>  
表示向指向栏目进化。

当只有箭头时,表明该技术相关的代码现在已经荡然无存或者微不足道,已经向箭头方向进化。

觉得网页内容似是而非的读者可以在这里找到该现象的细微解释。 阅读2.7.4部分。

版本注释:

20101124, v10.4: 修正了Perl(CC++), 添加了Google Wave终止信息。

2010714, v10.3: iPad OS, iPod Touch OS以及iPhone OS添加了信息。给Eclipse RCP加了点信息。

201035, v10.2: 添加了PayPal项。

201028, v10.1: facebook项添加了HipHop项。
201012, v10.0: 
添加了Pike Opera Mini,把发布号改为发布年。

2009915, v3.9: 添加了Google Wave, Apple iPhone OS and Amazon Kindle OS几项。
2009815, v3.8: 
添加了一个universal remotes栏目。
200979, v3.7: 
添加了Google Chrome OS
2009517, v3.6: 
更新了Lotus Notes项。

2009511, v3.5: 更新了编译器/解释器栏目 (感谢, Northwood)

2009414, v3.4: 添加了 facebook
200941, v3.3: 
页面颜色看上去舒服一些。
200898, v3.2: 
添加了Google Chrome
200874, v3.0: 
修订了BlackBerry OS信息
2007922, v2.9: 
添加了Google Android
2007821, v2.8: 
添加了邮件服务器部分。

产品类别

日期

汇编

C

C++

Java

C#

其它

注释

操作系统

Microsoft Windows

 

* =>

* =>

***

 

 

 

Windows Mobile中做了一些尝试使用部分C# (例如软键盘)。结果发现速度太慢,最终产品只好回退到C++

Linux

 

 

***

 

 

 

 

 

Apple MacOS

 

 

***

*

 

 

一些Objective-C

最初版本的Mac OS用户接口受WIMP Xerox Alto 用户接口的影响,用SmallTalk实现,试运行,批量投放市场硬件成本过高。早期版本的MacOS使用汇编和Pascal

Sun Solaris

 

 

***

 

 

 

 

[Chipset译注: Solaris现在在Oracle门下]

HP-UX

 

 

***

 

 

 

 

 

Google Chrome OS

2009

 

***

***

 

 

 

Google ChromeLinux Chrome基础

手机操作系统

Symbian OS

 

*

 

***

 

 

 

Symbian是手机系统的领头羊 [Chipset译注诺基亚已经从Symbian转向了微软的WPSymbian已经日趋没落]

Google Android

2008

 

***

 

 

 

 

AndroidLinux为基础

RIM BlackBerry OS 4.x

 

 

 

***

 

 

 

RIM要求开发人员必须用Java 开发BlackBerry,开发人员对此困惑不解,BlackBerry OS 本身用C++开发。

Amazon Kindle OS

2007

 

***

 

 

 

 

Kindle运行Linux

Apple iPhone iPod Touch and iPad OS

2007

 

***

*

 

 

一些Objective-C

iPhone, iPod TouchiPad使用 Mac OS的变种

图形接口层

Microsoft Windows UI

 

 

 

***

 

 

 

 

Apple MacOS UI (Aqua)

 

 

 

***

 

 

 

 

Gnome

 

 

***

*

 

 

 

 

KDE

 

 

 

***

 

 

 

 

桌面搜索

Google Desktop Search

 

 

 

***

 

 

 

 

Microsoft Windows Desktop Search

 

 

 

***

 

 

 

 

Beagle

 

 

 

 

 

#
(2009)

 

 

办公产品

Microsoft Office

 

* =>

* =>

***

 

 

 

传统的MS Office使用了汇编,后来用CC++出现后,任何新东西都用C++做。目前没有计划转变的倾向。几年前有一个小的尝试用C#开发一个面板,不清楚这种做法是否维持下来。

Sun Open Office

 

 

 

***

*

 

 

Sun Micro Open Office,1999Star Division获得。没有企图尝试把代码转向JavaJava用在一些杂项模块。[Chipset译注: Open Office已经在Oracle门下]

Corel Office/WordPerfect Office

 

 

 

***

<=

(19978)

 

 

Corel Office最初用汇编和C开发,Corel Office 转向了Java,处于移植性考虑于1996全部用Java开发,于19978月放弃,因为速度太慢。代码后来用CC++重新开发。

Adobe SystemsAcrobat Reader/Distiller

 

 

 

***

 

 

 

 

关系数据库管理系统

Oracle database

 

*

*

***

*

 

 

核心代码只有汇编、CC++

MySQL

 

 

 

***

 

 

 

 

IBM DB2

 

*

***

*

 

 

 

 

Microsoft SQL Server

 

* =>

* =>

***

 

 

 

 

IBM Informix

 

*

***

*

 

 

 

 

SAP DB/MaxDB

 

 

 

***

 

 

 

 

网页浏览器

Microsoft Internet Explorer

 

 

 

***

 

 

 

 

Mozilla Firefox

 

 

 

***

 

 

 

 

Netscape Navigator

 

 

*** =>

 Mozilla

<= #

 

 

Netscape浏览器用C编写的,但Netscape 工程师都热衷Java (M. Cusumano 文章)于是用Java重新开发了该浏览器,太慢,只能弃之。下一版本Mozilla,用C++开发。

Safari

03年元月7

 

 

***

 

 

 

苹果 Mac OS的浏览器,基础是WebKit一个 C++框架.

Google Chrome

0892

 

 

***

 

 

 

Chrome用了26种不同的库。最基本的代码来自Safari。处于核心地位之一的是特别快的 V8 JavaScript引擎C++编写。

Sun HotJava

 

 

 

 

#
(1999)

 

 

HotJava 没有真正派上用场,跟其它浏览器相比,速度太慢。它成了Java applet 技术的展览品,1999年后冻结。

Opera

 

 

 

***

 

 

 

 

Opera Mini

 

 

 

***

***

 

Pike

Opera Mini (2007) 的架构十分滑稽用了C++Java。该浏览器分为两部分,一个极 薄的(少于100KB)可视端部分和用于执行的服务器端。Java的最初使用来接受OBML格式的网页,后来复用的传统Opera (C++)执行引擎以及它的小屏幕执行在服务器上。这允许Opera嵌入支持J2ME的便携设备,例如手机,却保持很好的相应速度。当然,很明显做出一些 牺牲,例如执行JavaScript

Mosaic

 

 

#

 

 

 

 

Mosaic是第一个被广泛使用的浏览器,后来变成了Netscape

邮件客户端

Microsoft Outlook

 

 

 

***

 

 

 

 

IBM Lotus Notes

 

 

 

 

***

 

 

 

开发环境

Microsoft Visual Studio

 

 

 

***

 

 

 

 

Eclipse

 

 

 

 

***
(
见注释)

 

 

Eclipse主要位于MS Visual Studio没有覆盖的市场。为了编译它,开发了一种特殊的图形库,SWT用来取代Java传统的AWT。不同于AWT全部用Java,密集用户反映速度太慢,SWTC/C++代码上薄薄的一层。

虚拟机

Microsoft .Net CLR

 

 

 

***

 

 

 

 

Java Virtual Machine (JVM)

 

 

 

***

 

 

 

 

ERP

SAP mySAP ERP

 

 

*

 

 

 

***
ABAP/4

 

Oracle Peoplesoft

 

 

 

* =>

***

 

***
PeopleSoft 面向对象编程语言

Peoplesoft依赖于BEA Tuxedo C++代码,现在转向了BEA WebLogicJava, 保留了 POOPL语言。C++ 代码明显没有重写。

Oracle E-Business Suite

 

 

 

 

***

 

 

 

商业智能

Business Objects

 

 

 

***

 

 

 

 

图形编辑器

Adobe Photoshop

 

 

 

***

 

 

 

 

The GIMP

 

 

***

 

 

 

一些Perl

 

搜索引擎

Google

 

*

 

***

 

 

 

 

网站

eBay

 

 

 

(2002) =>

***

 

 

关于eBay的架构和从C++迁移到java的信息在这里

PayPal

 

 

 

***

 

 

 

 

Amazon

 

 

 

***

 *

 

 

 

facebook

2006926

 

 

***

 

 

***
PHP

这里仅仅涉及了facebook, 不包括插件。插件可以用多种技术开发,这多亏了facebookORB/应用服务器ThriftThrift 包含了一个用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]

Perl

 

 

***

 

 

 

 

 

PHP

 

 

***

 

 

 

 

 

三位引擎

Microsoft DirectX

 

 

 

***

 

 

 

 

OpenGL

 

 

***

 

 

 

 

 

OGRE 3D

 

 

 

***

 

 

 

 

网络服务器

Apache

 

 

***

*

 

 

 

 

Microsoft IIS

 

 

 

***

 

 

 

 

邮件服务器

Microsoft Exchange Server

 

 

* =>

***

 

 

 

 

Postfix

 

 

***

 

 

 

 

 

hMailServer

 

 

 

***

 

*

 

 

Apache James

 

 

 

 

***

 

 

 

Web 2.0

MediaWiki

 

 

 

 

 

 

***
PHP

推动着Wikipedia

TWiki

 

 

 

 

 

 

***
Perl

 

Google Blogger

 

 

 

 

 

 

 

细节不清楚,翻工多次,例如在2002-2006年期间

Google Wave

2009

 

 

 

#
(2010
8)

 

 

Google Wave用户接口使用 Google Web Toolkit.,这样使得用Java编写UI和生成Java脚本代码成为可能,服务器也用Java

Flickr

 

 

 

 

 

 

***
PHP

 

CD/DVD刻录

Nero Burning ROM

 

 

 

***

 

 

 

 

K3B

 

 

 

***

 

 

 

 

媒体播放器

Nullsoft Winamp

 

 

 

***

 

 

 

 

Microsoft Windows Media Player

 

 

 

***

 

 

 

 

Apple iPod software

 

 

 

***

 

 

 

 

P2P

eMule

 

 

 

***

 

 

 

 

µtorrent

 

 

 

***

 

 

 

 

Azureus

 

 

 

 

***

 

 

Azureus建立在SWT之上,见Eclipse相关注释

GPS系统

TomTom

 

 

 

***

 

 

 

 

Hertz NeverLost

 

 

 

***

 

 

 

 

Garmin

 

 

 

***

 

 

 

 

Motorola VIAMOTO

2003

 

 

 

#
(2007
6)

 

 

Motorola VIAMOTO 是一个智能手机"连接" GPS实现,有一个Java客户端。被一些汽车出售公司重新树立品牌。例如Avis AssistMotorola VIAMOTO 产品的另外一个名字。. Avis已经撤销这个产品 提供在美国提供Garmin 在欧洲提供TomTomMotorola 20076撤销该产品。Alamo/National重新树立品牌系统"Navigation Station" 也不再继续该服务。

通用远程

Logitech Harmony 1000/1100

2009

 

 

 

#
(2009)

 

***
Flash

操作系统 Harmony 1100现在以Flash为基础, Harmony 1000Java为基础

该网页由Vincent Lextrait (e-mail vincent@lextrait.com)维护。

Chipset译,错误不妥之处在所难免,欢迎给出更正建议,谢谢。

英文版见:http://www.lextrait.com/vincent/implementations.html


posted @ 2011-12-23 22:55  好好学习,天天进步  阅读(269)  评论(0编辑  收藏  举报