编程语言烽火台

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


原文地址:https://www.cnblogs.com/marryZhan/p/2497567.html