编程语言烽火台
编程语言烽火台
v11.1 2013年1月
Chipset于2013年02月10日译, For English version, please visit: http://www.lextrait.com/vincent/implementations.html
该表包含了主要软件产品或应用,以及实现所用的编程语言详细信息。有关信息很难找到,个别小错误可能会掠过作者的眼帘,欢迎给出修改、添加、以及引用的建议。该列表不会面面俱到,仅仅列出主要应用。具体到产品家族的次序没有什么特别的规则,读者应该理解这不是排名。
主要的编程语言,完成的新开发高亮显示,古老时期使用过也给出来,仅仅使用很少一部分开发也指出来。软件列表通常很大,编程语言不够全面,杂七杂八 的语言没有涉及到。有时候一行有多种产品(例如”游戏”),或者一行有多种实现(例如JVM 实现),此时指出主流方向,忽略掉不同性质的例子。
一些读者认为列出的多数应用是基于古老的代码,使用的新技术表明其时间趋势。这种观点不对,介绍涉及了一些日期,像 这里, 或 这里 表明什么是”新”或”旧”技术跟直觉无关。
C和C++的区别有点人为因素,争论多数C代码是C++代码永远可能,或者反过来也一样(因为有些人使用C++或多或少像使用C没什么两样),大概怎样就凭直觉。
表示当前进化使用的主要编程语言。
表示该技术仍在用,可能稳定可能衰减。
表示该产品已经死亡,死时在用那种技术。
表示向指向栏目进化。
当只有箭头时,表明该技术相关的代码现在已经荡然无存或者微不足道,已经向箭头方向进化。
觉得网页内容似是而非的读者可以在这里找到该现象的细微解释。 阅读"Time will come when computers will be fast enough"部分。
在2012年4月12日的24小时内有11,425次访问,打破历史记录 。
版本注释:
2013年1月25日, v11.1: 宣布Symbian死亡。
2013年1月20日, v11: 更新了Amazon, 添加了Evernote, LinkedIn, DropBox。
2012年4月21日, v10.8: 更新了SAP部分。
2012年4月14日, v10.7: 蜂拥的反馈信息,把gcc退到C。Android 系统上添加了Java, Open Office重命名。
2012年4月10日, v10.6: 添加了C#实现的注释,还有Roslyn 项目的参考。更新Visual Studio 添加了C#,感谢Hrvoje。
2012年4月6日, v10.5: 把gcc从C转向了C++,添加了Python上添加了youtube。
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++。Windows内核用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 Chrome以Linux 和 Chrome为基础 |
手机操作系统 |
||||||||
Symbian OS |
|
|
|
|
|
|
|
Symbian在2010年仍旧是手机系统的领头羊,在2012年第2季度市场份额降到了4.4%。在2013年1月24日宣布死亡。 |
Google Android |
2008 |
|
|
|
|
|
|
Android基于Linux,Linux用C来写的。用户接口用了Java。应用(此处没有涉及到)多数是Java写的。 |
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 Touch和iPad使用 Mac OS的变种 |
图形接口层 |
||||||||
Microsoft Windows UI |
|
|
|
|
|
|
|
|
Apple MacOS UI (Aqua) |
|
|
|
|
|
|
|
|
Gnome |
|
|
|
|
|
|
|
|
KDE |
|
|
|
|
|
|
|
|
桌面搜索 |
||||||||
Google Desktop Search |
|
|
|
|
|
|
|
|
Microsoft Windows Desktop Search |
|
|
|
|
|
|
|
|
Beagle |
|
|
|
|
|
|
|
|
办公产品 |
||||||||
Microsoft Office |
|
|
|
|
|
|
|
传统的MS Office使用了汇编,后来用C,C++出现后,任何新东西都用C++做。目前没有计划转变的倾向。几年前有一个小的尝试用C#开发一个面板,不清楚这种做法是否维持下来。 |
Apache OpenOffice |
|
|
|
|
|
|
|
Apache Open Office, 于1999从Star Division获得。没有企图尝试把代码转向Java,Java用在一些杂项模块。 |
Corel Office/WordPerfect Office |
|
|
|
|
|
|
|
Corel Office最初用汇编和C开发,Corel Office 转向了Java,处于移植性考虑于1996年全部用Java开发,于1997年8月放弃, 因为速度太慢。代码后来用C和C++重新开发。 |
Adobe Systems Acrobat Reader/Distiller |
|
|
|
|
|
|
|
|
Evernote |
|
|
|
|
|
|
|
Evernote v3.5 C#写的。为了提升速度技术上不得不改变。 从4.0开始编程语言用C++。 |
关系数据库管理系统 |
||||||||
Oracle database |
|
|
|
|
|
|
|
核心代码只有汇编、C和C++ |
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 |
08年9月2日 |
|
|
|
|
|
|
Chrome用了26种不同的库。最基本的代码来自Safari。处于核心地位之一的是特别快的 V8 JavaScript引擎, 用C++编写。 |
Sun HotJava |
|
|
|
|
|
|
|
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 |
|
|
|
|
|
|
|
Visual Studio 2010 仍然主要使用原生代码,对于UI展示,采用了 托管WPF框架 后来的版本也是如此,插件越来越多使用了C# |
Eclipse |
|
|
|
|
|
|
|
Eclipse主要位于MS Visual Studio没有覆盖的市场。为了编译它,开发了一种特殊的图形库,SWT用来取代Java传统的AWT。不同于AWT全部用Java,大量用户反映它速度太慢,SWT是C/C++代码上薄薄的一层。SWT现在是Eclipse富客户机平台的一部分。 |
虚拟机 |
||||||||
Microsoft .Net CLR |
|
|
|
|
|
|
|
|
Java Virtual Machine (JVM) |
|
|
|
|
|
|
|
|
ERP |
||||||||
SAP mySAP ERP |
|
|
|
|
|
|
|
SAP ERP用ABAP编写,生成C代码。SAP核心本身用C和C++编写。 |
Oracle Peoplesoft |
|
|
|
|
|
|
|
Peoplesoft依赖于BEA Tuxedo 和C++代码,现在转向了BEA WebLogic和Java, 保留了 POOPL语言。C++ 代码明显没有重写。 |
Oracle E-Business Suite |
|
|
|
|
|
|
|
|
商业智能 |
||||||||
Business Objects |
|
|
|
|
|
|
|
|
图形编辑器 |
||||||||
Adobe Photoshop |
|
|
|
|
|
|
|
|
The GIMP |
|
|
|
|
|
|
一些Perl |
|
搜索引擎 |
||||||||
|
|
|
|
|
|
|
|
|
网站 |
||||||||
eBay |
|
|
|
(2002) |
|
|
|
关于eBay的架构和从C++迁移到Java的信息在这里 |
PayPal |
|
|
|
|
|
|
|
|
Amazon |
|
|
|
|
|
|
|
Amazon开始时大量使用了C++,现在使用Java的代码量持续上升。 |
|
2006年9月26日 |
|
|
|
|
|
|
这里仅仅涉及了facebook, 不包括插件。插件可以用多种技术开发,这多亏了facebook的ORB/应用服务器Thrift。Thrift 包含了一个用C++编写的编译器。facebook 人这样描述 Thrift: "多语言代码合作适合用于搜索,因为这允许应用开发位于高效的服务器端(C++) 而且允许基于PHP的网络应用程序使用Thrift PHP 库调用搜索服务" 在使用C++的一边, facebook采纳 了一个 LAMP 架构。 |
YouTube |
|
|
|
|
|
|
|
如果怀疑的话看下 这里 。YouTube涉及到很多I/O操作,跟技术商业逻辑很可能没啥关系。 |
|
|
|
|
|
|
|
|
|
DropBox |
|
|
|
|
|
|
|
详细信息在 这里。 |
游戏 |
|
|
|
|
|
|
|
很多智能手机上的游戏用Java写的。这里仅仅指代”全伺服”磁盘游戏。 |
编译器/解释器 |
||||||||
Microsoft Visual C++ |
|
|
|
|
|
|
|
|
Microsoft Visual Basic |
|
|
|
|
|
|
|
|
Microsoft Visual C# |
|
|
|
|
|
|
|
值得一提的是微软有一个项目Roslyn 包含了用 C# 编写的C#编译器 |
gcc (GNU C 编译器) |
|
|
|
|
|
|
|
|
javac (Java 编译器) |
|
|
|
|
|
|
|
|
Perl |
|
|
|
|
|
|
|
|
PHP |
|
|
|
|
|
|
|
|
3D引擎 |
||||||||
Microsoft DirectX |
|
|
|
|
|
|
|
|
OpenGL |
|
|
|
|
|
|
|
|
OGRE 3D |
|
|
|
|
|
|
|
|
网络服务器 |
||||||||
Apache |
|
|
|
|
|
|
|
|
Microsoft IIS |
|
|
|
|
|
|
|
|
邮件服务器 |
||||||||
Microsoft Exchange Server |
|
|
|
|
|
|
|
|
Postfix |
|
|
|
|
|
|
|
|
hMailServer |
|
|
|
|
|
|
|
|
Apache James |
|
|
|
|
|
|
|
|
Web 2.0 |
||||||||
MediaWiki |
|
|
|
|
|
|
|
推动着维基百科 |
TWiki |
|
|
|
|
|
|
|
|
Google Blogger |
|
|
|
|
|
|
|
细节不清楚,翻工多次,例如在2002-2006年期间 |
Google Wave |
2009 |
|
|
|
|
|
|
Google Wave用户接口使用 Google Web Toolkit.,这样使得用Java编写UI和生成Java脚本代码成为可能,服务器也用Java。 |
Flickr |
|
|
|
|
|
|
|
|
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 |
|
|
|
|
|
|
Motorola VIAMOTO 是一个智能手机"连接" GPS实现,有一个Java客户端。被一些汽车出售公司重新树立品牌。例如Avis Assist是 Motorola VIAMOTO 产品的另外一个名字。Avis已经撤销这个产品 提供在美国提供Garmin 在欧洲提供TomTom。 Motorola 在2007年6月撤销该产品。Alamo/National重新树立品牌系统"Navigation Station" 也不再继续该服务。 |
通用远程 |
||||||||
Logitech Harmony 1000/1100 |
2009 |
|
|
|
|
|
|
系统 Harmony 1100现在以Flash为基础, Harmony 1000以Java为基础 |
The Programming Languages Beacon
v11.1 - January 2013
This table contains a list of major software products or utilities, with details about the programming languages used to implement them. Information on this is difficult to find, and a few small mistakes might have escaped the author's attention. Corrections, suggestions for additions or even references are welcome. The list is not supposed to be exhaustive but the most significant products are tentatively listed. The order of the products in each family obeys no specific rule, the reader should not understand it as a ranking.
The main programming language, the one with which most of new developments are done, is highlighted, while the ones used in older times and still present, or used only for a minority of the developments are indicated too. The pieces of software listed are usually very large, and the list of programming languages cannot be exhaustive. Miscellaneous languages are not mentioned. Sometimes, there are different products under the same line (eg "Games"), or different implementations of a single line (eg JVM implementations). In this case, the overwhelming trend is indicated. Miscellaneous counter examples are ignored.
Some readers believe that most of the applications presented are based on old code, and that the technologies in use reflect the trends of the time. As it is an erroneous belief, some introduction dates are mentioned, like here, or here to show that what is "new" or "old" technology does not necessarily correspond to intuition.
The difference between C and C++ is a bit artificial, as it is always possible to argue that most of C code is C++ code, or conversely (as more than a few people use C++ more or less like C). The approximation made in this document tries to correspond to intuition.
indicates the major programming language for current evolutions.
refers to a technology which is present, but is either stable or decreasing.
means that the product has died, and when it died, it used that technology
is meant to show an evolution towards the column it points to.
When the arrow is alone, it means that the amount of code corresponding to the technology in this column is either now null or negligible, having evolved in the direction of the arrow.
The readers who might find the content of this page paradoxical will find a tentative explanation of the phenomenons at stake here. Read the section entitled "Time will come when computers will be fast enough".
11,425 visits to this page on the 12th of April 2012 over 24h, record beaten!
Release notes:
25th of January 2013, v11.1: Symbian declared dead.
20th of January 2013, v11: updated Amazon, added Evernote, LinkedIn, DropBox.
21st of April 2012, v10.8: updated the SAP section.
14th of April 2012, v10.7: following overwhelming feedback, reverting gcc to C. Also added Java on Android OS, and renamed Open Office.
10th of April 2012, v10.6: added a note for C# implementation, with a reference to project Roslyn. Updated also Visual Studio technology to add C#. Thanks Hrvoje.
6th of April 2012, v10.5: changed gcc from C to C++, added youtube on Python
24th of November 2010, v10.4: fixed Perl line (C and not C++), added termination of Google Wave
14th of July 2010, v10.3: added info on iPad OS, iPod Touch OS in addition to iPhone OS. Added info on Eclipse RCP
5th of March 2010, v10.2: added PayPal entry
8th of February 2010, v10.1: added reference to HipHop in the facebook entry
2nd of January 2010, v10.0: added Pike to Opera Mini. Changed release numbering to year.release
15th of November 2009, v3.9: added Google Wave, Apple iPhone OS and Amazon Kindle OS entries.
15th of August 2009, v3.8: added a universal remotes section.
9th of July 2009, v3.7: added Google Chrome OS.
17th of May 2009, v3.6: update the Lotus Notes entry.
11th of May 2009, v3.5: updated the Compilers/Interpreters section (thanks, Northwood).
14th of April 2009, v3.4: added facebook.
1st of April 2009, v3.3: page is now color blind friendly.
8th of September 2008, v3.2: added Google Chrome.
4th of July 2008, v3.0: fixed BlackBerry OS info.
22nd of November 2007, v2.9: added Google Android.
21st of October 2007, v2.8: added a mail servers section.
Family/Product |
Date |
ASM |
C |
C++ |
Java |
C# |
Others |
Notes |
|
Operating Systems |
|
||||||||
Microsoft Windows |
|
|
|
|
|
|
|
Some attempts were made to put some C# in Windows Mobile (e.g. the soft keyboard). The result was judged too slow to be incorporated in the final product and was reverted to C++. |
|
Linux |
|
|
|
|
|
|
|
|
|
Apple MacOS |
|
|
|
|
|
|
Objective-C |
The first version of user interface of the MacOS was inspired by the Xerox Alto user interface which introduced the WIMP concept. The user interface was implemented in SmallTalk, and to run it, the hardware was far too expensive for mass market. Early versions of MacOS used Assembler and Pascal |
|
Sun Solaris |
|
|
|
|
|
|
|
|
|
HP-UX |
|
|
|
|
|
|
|
|
|
Google Chrome OS |
2009 |
|
|
|
|
|
|
Google Chrome is based on Linux and Chrome. |
|
Operating Systems for Mobiles |
|
||||||||
Apple iPhone iPod Touch and iPad OS |
2007 |
|
|
|
|
|
Objective-C |
The iPhone, iPod Touch and iPad use a modified version of Mac OS. |
|
Google Android |
2008 |
|
|
|
|
|
|
Android is based on Linux, which is coded in C. The user interface is Java. Apps (not covered here) are mostly Java. |
|
RIM BlackBerry OS 4.x |
|
|
|
|
|
|
|
RIM makes it mandatory for application developers to use Java as a programming language on BlackBerry. People tend to confuse this with the technology used to develop the operating system. The BlackBerry OS itself is developed using C++. |
|
Amazon Kindle OS |
2007 |
|
|
|
|
|
|
The Kindle runs Linux. |
|
Symbian OS |
|
|
|
|
|
|
|
Symbian was still the leading operating system for phones in 2010. Its market share dropped to 4.4% in Q2 2012. It has been declared dead on January 24, 2013. |
|
Graphical Layers |
|
||||||||
Microsoft Windows UI |
|
|
|
|
|
|
|
|
|
Apple MacOS UI (Aqua) |
|
|
|
|
|
|
|
|
|
Gnome |
|
|
|
|
|
|
|
|
|
KDE |
|
|
|
|
|
|
|
|
|
Desktop Search |
|
||||||||
Google Desktop Search |
|
|
|
|
|
|
|
|
|
Microsoft Windows Desktop Search |
|
|
|
|
|
|
|
|
|
Beagle |
|
|
|
|
|
|
|
|
|
Office Products |
|
||||||||
Microsoft Office |
|
|
|
|
|
|
|
Traditionally, MS Office was developed using assembler, then development moved to C, later, when C++ arose, everything new was done using C++. Currently there is no plan to change. A small attempt was made to develop a miscellaneous single panel in C#, a few years back. It is not known if it has been kept. |
|
Apache OpenOffice |
|
|
|
|
|
|
|
Apache Open Office, acquired in 1999 by Sun Microsystems from Star Division. No attempt has been made by Sun to convert the code into Java. Java is however used for some miscellaneous modules. |
|
Corel Office/WordPerfect Office |
|
|
|
|
(August 1997) |
|
|
Corel Office, initially developed in Assembler and C, moved to Corel Office for Java, fully developed in Java for portability in 1996, and abandoned in August 1997 because it was too slow. The code was later redeveloped using C and C++. |
|
Adobe Systems Acrobat Reader/Distiller |
|
|
|
|
|
|
|
|
|
Evernote |
|
|
|
|
|
(October 2010) |
|
Evernote v3.5 was coded in C#. The technology had to be changed to gain speed. The current programming language from v4.0 is C++. |
|
RDBMS |
|
||||||||
Oracle database |
|
|
|
|
|
|
|
Only Assembler, C and C++ in the core. |
|
MySQL |
|
|
|
|
|
|
|
|
|
IBM DB2 |
|
|
|
|
|
|
|
|
|
Microsoft SQL Server |
|
|
|
|
|
|
|
|
|
IBM Informix |
|
|
|
|
|
|
|
|
|
SAP DB/MaxDB |
|
|
|
|
|
|
|
|
|
Web Browsers |
|
||||||||
Microsoft Internet Explorer |
|
|
|
|
|
|
|
|
|
Mozilla Firefox |
|
|
|
|
|
|
|
|
|
Netscape Navigator |
|
|
|
see Mozilla |
|
|
|
The code of Netscape browser was written in C, and Netscape engineers, all bought to Java (see M. Cusumano book and article) redeveloped the browser using Java. It was too slow and abandoned. Mozilla, the next version, was later developed using C++. |
|
Safari |
7-Jan-03 |
|
|
|
|
|
|
Browser for Apple Mac OS, its foundation is WebKit, a C++ framework. |
|
Google Chrome |
2-Sept-08 |
|
|
|
|
|
|
Chrome has been introduced as the combination of 26 different libraries. The base code comes from WebKit (C++) which powers Safari as well. One of its key propositions is the ultra fast V8 JavaScript engine, written essentially in C++. |
|
Sun HotJava |
|
|
|
|
|
|
|
HotJava never took off, it was far too slow compared to other browsers. It became a showcase for the Java applet technology and the product is now frozen since 1999. |
|
Opera |
|
|
|
|
|
|
|
|
|
Opera Mini |
|
|
|
|
|
|
Pike |
Opera Mini (2007) has a very funny architecture, and is indeed using C++, Java and Pike. The browser is split in two parts, an ultra thin (less than 100Kb) "viewer" client part and a server side responsible of rendering. The first uses Java and receives the page under the OBML format, the latter reuses classical Opera (C++) rendering engine plus Opera's Small Screen Rendering, on the server. A significant part of the server uses Pike. This original architecture allows Opera to penetrate various J2ME-enabled portable devices, such as phones, while preserving excellent response time. This comes obviously with a few sacrifices, for instance on JavaScript execution. |
|
Mosaic |
|
|
|
|
|
|
|
Mosaic was the first widely spread browser, it morphed into Netscape. |
|
Mail Clients |
|
||||||||
Microsoft Outlook |
|
|
|
|
|
|
|
|
|
IBM Lotus Notes |
|
|
|
|
|
|
|
|
|
Development Environments |
|
||||||||
Microsoft Visual Studio |
|
|
|
|
|
|
|
Visual Studio 2010 was still mostly native code, but for the UI presentation it adopted the managed WPF framework. This holds true for later versions. plug-ins are also using more and more C#. |
|
Eclipse |
|
|
|
|
|
|
|
To build Eclipse, a specific graphical toolkit was developed, SWT to replace Java classical AWT or Swing (considered too slow). SWT is a thin Java layer on top of native C/C++ code. SWT is now part of Eclipse RCP. |
|
Virtual Machines |
|
||||||||
Microsoft .Net CLR |
|
|
|
|
|
|
|
|
|
Java Virtual Machine (JVM) |
|
|
|
|
|
|
|
|
|
ERP |
|
||||||||
SAP ERP |
|
|
|
|
|
|
|
SAP ERP is programmed in ABAP, which generates C code. The SAP kernel is itself coded using C and C++. |
|
Oracle Peoplesoft |
|
|
|
|
|
|
|
Peoplesoft relied on BEA Tuxedo and C++ code, now moving to Oracle WebLogic and Java, keeping the PeopleCode language. The C++ code is apparently not reengineered. |
|
Oracle E-Business Suite |
|
|
|
|
|
|
|
|
|
Business Intelligence |
|
||||||||
Business Objects |
|
|
|
|
|
|
|
|
|
Graphics Editors |
|
||||||||
Adobe Photoshop |
|
|
|
|
|
|
|
|
|
The GIMP |
|
|
|
|
|
|
Some Perl |
|
|
Search Engines |
|
||||||||
|
|
|
|
|
|
|
|
|
|
Web Sites |
|
||||||||
eBay |
|
|
|
(2002) |
|
|
|
Information on eBay architecture and the move from C++ to Java can be found here. |
|
PayPal |
|
|
|
|
|
|
|
|
|
Amazon |
|
|
|
|
|
|
|
Amazon initially using C++ extensively is now using an increasing amount of Java. |
|
|
26-Sep-2006 |
|
|
|
|
|
|
This line is only about facebook, not its plugins. Plugins can be developed in many different technologies, thanks to facebook's ORB/application server, Thrift. Thrift contains a compiler coded in C++. facebook people write about Thrift: "The multi-language code generation is well suited for search because it allows for application development in an efficient server side language (C++) and allows the Facebook PHP-based web application to make calls to the search service using Thrift PHP libraries." Aside the use of C++, facebook has adopted a LAMP architecture. |
|
YouTube |
|
|
|
|
|
|
|
In case of doubt, just have a look here. YouTube is i/o bound, so the technology business logic is made of is probably a bit irrelevant. |
|
|
|
|
|
|
|
|
|
|
|
DropBox |
|
|
|
|
|
|
|
For details, have a look here. |
|
Games |
|
|
|
|
|
|
|
A lot of games on smart phones are developed using Java. This entry refers to "full service" disk based games. |
|
Compilers/Interpreters |
|
||||||||
Microsoft Visual C++ |
|
|
|
|
|
|
|
|
|
Microsoft Visual Basic |
|
|
|
|
|
|
|
|
|
Microsoft Visual C# |
|
|
|
|
|
|
|
It is worth noting that Microsoft is running a project called Roslyn which contains a C# compiler written in C#. |
|
gcc (GNU C compiler) |
|
|
|
|
|
|
|
|
|
javac (Sun Java compiler) |
|
|
|
|
|
|
|
|
|
Perl |
|
|
|
|
|
|
|
|
|
PHP |
|
|
|
|
|
|
|
It must be noted that PHP is a script running a lot of imported libraries, themselves either programmed in C or C++. |
|
3D Engines |
|
||||||||
Microsoft DirectX |
|
|
|
|
|
|
|
|
|
OpenGL |
|
|
|
|
|
|
|
|
|
OGRE 3D |
|
|
|
|
|
|
|
|
|
Web Servers |
|
||||||||
Apache |
|
|
|
|
|
|
|
|
|
Microsoft IIS |
|
|
|
|
|
|
|
|
|
Mail Servers |
|
||||||||
Microsoft Exchange Server |
|
|
|
|
|
|
|
|
|
Postfix |
|
|
|
|
|
|
|
|
|
hMailServer |
|
|
|
|
|
|
|
|
|
Apache James |
|
|
|
|
|
|
|
|
|
Web 2.0 |
|
||||||||
MediaWiki |
|
|
|
|
|
|
|
Powers Wikipedia |
|
TWiki |
|
|
|
|
|
|
|
|
|
Google Blogger |
|
|
|
|
|
|
|
Unknown details, the software has been re-engineered several times, for instance in 2002 and 2006. |
|
Google Wave |
2009 |
|
|
|
|
|
|
Google Wave user interface used Google Web Toolkit. which allowed to program the UI using Java and generate JavaScript code. The server used Java too. |
|
Flickr |
|
|
|
|
|
|
|
|
|
CD/DVD Authoring |
|
||||||||
Nero Burning ROM |
|
|
|
|
|
|
|
|
|
K3B |
|
|
|
|
|
|
|
|
|
Multimedia Players |
|
||||||||
Nullsoft Winamp |
|
|
|
|
|
|
|
|
|
Microsoft Windows Media Player |
|
|
|
|
|
|
|
|
|
Apple iPod software |
|
|
|
|
|
|
|
|
|
Peer to Peer |
|
||||||||
eMule |
|
|
|
|
|
|
|
|
|
µtorrent |
|
|
|
|
|
|
|
|
|
Azureus |
|
|
|
|
|
|
|
Azureus is built on top of SWT, see notes corresponding to Eclipse. |
|
GPS Systems |
|
||||||||
TomTom |
|
|
|
|
|
|
|
|
|
Hertz NeverLost |
|
|
|
|
|
|
|
|
|
Garmin |
|
|
|
|
|
|
|
|
|
Motorola VIAMOTO |
2003 |
|
|
|
|
|
|
Motorola VIAMOTO was a smart phone "connected" GPS implementation, with a Java client-side. It was re-branded by a number of car rental companies. For instance, Avis Assist was another name for the Motorola VIAMOTO product. Avis have withdrawn this product and are now offering Garmin in the USA and TomTom in Europe. Motorola withdrew the product in June 2007. Alamo/National who had re-branded the system "Navigation Station" will also discontinue the service. |
|
Universal remotes |
|
||||||||
Logitech Harmony 1000/1100 |
2009 |
|
|
|
|
|
|
The UI of the Harmony 1100 is now Flash based vs the Java UI found in the Harmony 1000. |
|
This page is maintained by Vincent Lextrait (e-mail [email protected])