• 编程语言烽火台


    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


  • 相关阅读:
    [angularjs] angularjs系列笔记(五)Service
    [android] 隐式意图的配置
    [android] 隐式意图激活另外一个activity
    [angularjs] angularjs系列笔记(四)过滤器
    [android] 显示意图激活另外一个activity
    [android] smartimageview&常见的开源代码
    [angularjs] angularjs系列笔记(四)控制器
    [android] 上传文件到服务器
    [android] 异步http框架与实现原理
    [android] 采用httpclient提交数据到服务器
  • 原文地址:https://www.cnblogs.com/marryZhan/p/2497567.html
Copyright © 2020-2023  润新知