The Programmng Language Beacon (fwd)
The Programmng Language Beacon
v3.4 -- 2009年4月
該表包含了主要軟件產品或應用,以及實現所用的編程語言詳細信息。有關信息很難找到,一些小錯誤可能會掠過作者的眼簾,歡迎給出修改、添加、以及引用的建議。該列表不會面面俱到,僅僅列出主要應用。具體到產品家族的次序沒有什么特別的規則,讀者應該理解這不是排名。
主要的編程語言,完成的新開發突出顯示,古老時期使用過也給出來,僅僅使用很少一部分開發也指出來。軟件列表通常很大,編程語言不夠全面,雜七雜八的語言沒有涉及到。有時候一行有多種產品(例如”游戲”),或者一行有多種實現(例如JVM 實現),此時指出主流方向,忽略掉不同性質的例子。
一些讀者認為列出的多數應用是基于古老的代碼,使用的新技術表明其時間趨勢。這種觀點不對,介紹涉及了一些日期,像 這里, 或 這里 表明什么是”新”或”舊”技術跟直覺無關。
C和C++的區別有點人為因素,爭論多數C代碼是C++代碼永遠可能,或者反過來也一樣(因為有些人使用C++或多或少像使用C沒什么兩樣),大概怎樣就憑直覺。
*** 表示當前進化使用的主要編程語言。
* 表示該技術仍在用,可能穩定可能衰減。
!!! 表示該產品已經死亡,死時在用那種技術。
==> 表示向指向欄目進化。
當只有箭頭時,表明該技術相關的代碼現在已經蕩然無存或者微不足道,已經向箭頭方向進化。
覺得網頁內容似是而非的讀者可以在這里找到該現象的細微解釋。 閱讀2.7.4部分。
版本注釋:
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: 添加了郵件服務器部分。
Family/Product |
Date |
ASM |
C |
C++ |
Java |
C# |
Others |
Notes |
|
操作系統 |
|
||||||||
Microsoft Windows |
|
* ==> |
* ==> |
*** |
|
|
|
在Windows Mobile中做了一些嘗試使用部分C# (例如軟鍵盤)。結果發現速度太慢,最終產品只好再轉向C++。 |
|
Linux |
|
|
*** |
|
|
|
|
|
|
|
|
*** |
* |
|
|
部分Objective-C |
最初版本的Mac OS用戶接口受WIMP 中Xerox Alto 用戶接口的影響,用SmallTalk實現,試運行,結果需求硬件太貴,早期版本的MacOS使用匯編和Pascal |
|
|
Sun Solaris |
|
|
*** |
|
|
|
|
|
|
HP-UX |
|
|
*** |
|
|
|
|
|
|
移動設備操作系統 |
|
||||||||
|
* |
|
*** |
|
|
|
Symbian是手機操作系統的領頭羊。 |
|
|
2008年 |
|
*** |
|
|
|
|
|
|
|
|
|
|
*** |
|
|
|
RIM要求開發人員使用Java 作為BlackBerry的編程語言,人們對此困惑不解,BlackBerry OS 本身用C++開發。 |
|
|
圖形接口層 |
|
||||||||
Microsoft Windows UI |
|
|
|
*** |
|
|
|
|
|
|
|
|
*** |
|
|
|
|
|
|
|
|
*** |
* |
|
|
|
|
|
|
|
|
|
*** |
|
|
|
|
|
|
桌面搜索 |
|
||||||||
|
|
|
*** |
|
|
|
|
|
|
|
|
|
*** |
|
|
|
|
|
|
|
|
|
|
|
*** |
|
|
|
|
Office產品 |
|
||||||||
|
* ==> |
* ==> |
*** |
|
|
|
傳統的MS Office使用了匯編,后來用C,C++出現后,任何新東西都用C++做。目前沒有計劃轉變的傾向。幾年來有一個小的嘗試開發一個面板用C#,不清楚這種做法是否維持下來。 |
|
|
|
|
|
*** |
* |
|
|
Sun Micro Open Office, 于1999從Star Division獲得。沒有企圖嘗試把代碼轉向Java,Java用在一些雜項模塊。 |
|
|
|
|
|
*** |
<== (1997年8月) |
|
|
Corel Office最初用匯編和C開發,Corel Office 轉向了Java,為何移植性考慮于1996年全部用Java開發,于1997年8月放棄, 因為速度太慢。代碼后來用C和C++重新開發。 |
|
|
Adobe Systems Acrobat Reader/Distiller |
|
|
|
*** |
|
|
|
|
|
關系數據庫管理系統 |
|
||||||||
Oracle |
|
* |
* |
*** |
* |
|
|
核心只用匯編、C和C++ |
|
MySQL |
|
|
|
*** |
|
|
|
|
|
IBM DB2 |
|
* |
*** |
* |
|
|
|
|
|
Microsoft SQL Server |
|
* ==> |
* ==> |
*** |
|
|
|
|
|
IBM Informix |
|
* |
*** |
* |
|
|
|
|
|
SAP DB/MaxDB |
|
|
|
*** |
|
|
|
|
|
網頁瀏覽器 |
|
||||||||
|
|
|
*** |
|
|
|
|
|
|
|
|
|
*** |
|
|
|
|
|
|
|
|
*** ==> |
見 Mozilla |
<== !!! |
|
|
Netscape瀏覽器用C編寫的,但Netscape 工程師都熱衷Java (見M. Cusumano 的書和文章) 于是用Java重新開發了該瀏覽器,太慢,只能棄之。下一版本Mozilla,用C++開發。 |
|
|
2003年7月7日 |
|
|
*** |
|
|
|
|
||
2008年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。 |
|
|
郵件客戶端 |
|
||||||||
Microsoft Outlook |
|
|
|
*** |
|
|
|
|
|
IBM Lotus Notes |
|
|
|
*** |
|
|
|
|
|
開發環境 |
|
||||||||
|
|
|
*** |
|
|
|
|
|
|
|
|
|
|
*** |
|
|
Eclipse主要位于MS Visual Studio沒有覆蓋的市場。為了編譯它,開發了一種特殊的圖形庫,SWT用來取代Java傳統的AWT。不同于AWT全部用Java,密集用戶反映速度太慢,SWT是C/C++代碼上薄薄的一層。 |
|
|
虛擬機 |
|
||||||||
|
|
|
*** |
|
|
|
|
|
|
|
|
|
*** |
|
|
|
|
|
|
ERP |
|
||||||||
|
|
* |
|
|
|
*** |
|
|
|
|
|
|
* ==> |
*** |
|
Peoplesoft依賴于BEA Tuxedo 和C++代碼,現在轉向了BEA WebLogic和Java, 保留了 POOPL語言。C++ 代碼明顯沒有重寫。 |
|
||
|
|
|
|
*** |
|
|
|
|
|
Business Intelligence |
|
||||||||
|
|
|
*** |
|
|
|
|
|
|
Graphics Editors |
|
||||||||
Adobe Photoshop |
|
|
|
*** |
|
|
|
|
|
|
|
*** |
|
|
|
部分Perl |
|
|
|
搜索引擎 |
|
||||||||
|
* |
|
*** |
|
|
|
|
|
|
網站 |
|
||||||||
|
|
|
(2002年) ==> |
*** |
|
|
有關eBay 架構從C++ 轉向Java 的信息在這里。 |
|
|
|
|
|
*** |
* |
|
|
|
|
|
2006年9月26日 |
|
|
*** |
|
|
*** |
這里僅僅涉及了facebook, 不包括插件。插件可以用多種技術開發,這多虧了facebook的ORB/應用服務器Thrift。Thrift 包含了一個用C++編寫的編譯器。facebook 人這樣描述 Thrift: "多語言代碼和適合用于搜索,因為這允許應用開發位于高效的服務器端(C++) 而且允許基于PHP的網絡應用程序使用Thrift PHP 庫調用搜索服務" 在使用C++的一邊, facebook采納 了一個 LAMP 架構。 |
|
|
游戲 |
|
* |
* |
*** |
|
|
|
|
|
編譯器和解釋器 |
|
||||||||
Microsoft Visual C++ |
|
|
|
*** |
|
|
|
|
|
gcc |
|
|
*** |
|
|
|
|
|
|
javacc |
|
|
*** |
* |
* |
|
|
|
|
|
|
|
*** |
|
|
|
|
|
|
|
|
*** |
|
|
|
|
|
|
|
3D引擎 |
|
||||||||
Microsoft DirectX |
|
|
|
*** |
|
|
|
|
|
OpenGL |
|
|
*** |
|
|
|
|
|
|
|
|
|
*** |
|
|
|
|
|
|
網絡服務器 |
|
||||||||
Apache |
|
|
*** |
* |
|
|
|
|
|
Microsoft IIS |
|
|
|
*** |
|
|
|
|
|
郵件服務器 |
|
||||||||
|
|
* ==> |
*** |
|
|
|
|
|
|
|
|
*** |
|
|
|
|
|
|
|
IBM Lotus Notes Server |
|
|
|
*** |
|
|
|
|
|
|
|
|
*** |
|
* |
|
|
|
|
|
|
|
|
*** |
|
|
Apache James當前版本是2.3.1從2007年4月至今一直未變。 |
|
|
Web 2.0 |
|
||||||||
|
|
|
|
|
|
*** |
推動著Wikipedia |
|
|
|
|
|
|
|
|
*** |
|
|
|
|
|
|
|
|
|
|
細節不清楚,該軟件重設計好幾次,例如2002一次,2006年一次。 |
|
|
|
|
|
|
|
|
*** |
|
|
|
CD/DVD刻錄 |
|
||||||||
|
|
|
*** |
|
|
|
|
|
|
|
|
|
*** |
|
|
|
|
|
|
多媒體播放器 |
|
||||||||
|
|
|
*** |
|
|
|
|
|
|
|
|
|
*** |
|
|
|
|
|
|
|
|
|
*** |
|
|
|
|
|
|
P2P |
|
||||||||
|
|
|
*** |
|
|
|
|
|
|
|
|
|
*** |
|
|
|
|
|
|
|
|
|
|
*** |
|
|
Azureus 建在SWT之上,見 關于Eclipse的notes。 |
|
|
GPS系統 |
|
||||||||
TomTom |
|
|
|
*** |
|
|
|
|
|
|
|
|
*** |
|
|
|
|
|
|
Garmin |
|
|
|
*** |
|
|
|
|
|
2003 |
|
|
|
!!! |
|
|
Motorola VIAMOTO 是一個智能手機"連接" GPS實現,有一個Java客戶端。被一些汽車出售公司重新樹立品牌。例如Avis Assist是 Motorola VIAMOTO 產品的另外一個名字。. Avis已經撤銷這個產品 提供在美國提供Garmin 在歐洲提供TomTom。 Motorola 在2007年6月 |