主题:C++的应用(C++ Applications)
2008年12月2日更新
[size=3] 这里有一个有关系统、应用程序和库的列表,列表中的全部或者大部分代码用C++编写,当然,该列表并不全面。即使我如何努力,我也不能列举一个含有1000个主要由C++编写的程序列表,但是这里的列表可能包含我听说过程序之中的第1000个。这是一个包括系统、应用程序和库的列表,读者可能熟悉其中的一些,新手可能有个概念C++能做什么,或者我仅仅觉得它很“酷”。
[这里有一个本文翻译的中文连接]
我(Bjarne Stroustrup)不能保证该列表的完全准确,但是我相信它是准确的,我信任那些发给我例子的人,不过我个人并没有见到源代码。我宁愿C++风格的代码,而不是大部分代码用C编写却尽力避免列出C或者C程序而称谓C++。列表中很多细节的描述来自开发人员和用户而不是我。
该列表的组织形式实在有点说不过去。我把那些明显和一个公司有关的应用程序列在该公司名下,但是有一些系统没有用这样的组织方式。
我并不知道列表中所有的缩写都什么意思。我也的确列出了一些C++的应用,即使他们依赖于C++的扩展,我欣赏更多的例子--尤其主要的应用。如果你发给我一个有URL地址的例子会更好一点。我并没有列出某些应用、系统或者库,除非我认为他们会让很多人感兴趣--我并不想尝试给出一个很完整的列表。我不会列出一种尚没有得到广泛应用的软件(抱歉)。这个列表意味着主要的应用,但在包含新产品方面则不太全面。我并不想表示“公平”,比如给出某个应用而不是某特定领域的所有产品--该列表试图给出一个整体印象,而不是帮助你选择某个产品。我尽量少重新描述某个产品,但会删除那些明显的广告性用语。
谢谢所有发给我例子的人!欢迎给出更多的例子,欢迎纠正错误。
其他人的列表:
* 谁在使用Boost?
* ACE和TAO用户
* 不断更新中的主要工业应用和工具。
明显跟一个组织相关的应用:
* 12D 解决方案:计算机辅助系统,用于测量、民用工程等等。
* Adobe系统:所有主要的应用用C++开发
o Photoshop和ImageReady,
o Illustrator,
o Acrobat,
o InDesign,
o GoLive,
o Frame (大部分C, 部分C++)
* Alias|Wavefront: Maya. Maya 自从开发出来以后一直用于制作电影特效, 包括星球大战前传I,蜘蛛侠,指环王,精灵鼠小弟等。“我爱三维动画”。
* Amadeus: 正在运行中最大的欧洲非军用数据中心 (每秒超过5000个交易,连接20万个终端,24/7负载)大多数开发用C++语言。所有基于Unix服务器的应用全部用C++开发,例如:
o 汽车预订
o 客户端服务
o 电子订票
o TCP/IP 前端
* Amazon.com:大型电子商务应用软件。
* Apple:OS X 操作系统使用很多语言开发,但是几个重要的部分用C++开发的。两个比较诱人的部分分别是,
o 搜索器(Finder)
o IOKit设备驱动 (IOKit 是内核里面仅有使用C++的地方)
还有,
o AppleWorks
o iPod用户接口(Pixo应用框架用C++写的)
o 成千上万的Macintosh应用程序估计半数以上用C++开发的。
o Frameworks: 有3个广泛使用的Macintosh应用框架工程用C++开发,分别是Apple's MacApp, Symantec's Think Class Libraries和 Metrowerks' PowerPlant。
* Arium:资源点,Intel和ARM系统硬件调试和仿真(包括多处理器系统)。
* AT&T:美国最大的电信供应商
o 1-800 服务
o 配置系统
o 网络失败应急系统
* Autodesk:在CAD领域有很多市场 。
* BeOS:一种多处理器多媒体个人操作系统。
* BigFix, Inc.: BigFix 是一个用来发布技术支持信息的通信系统。很多公司用它做技术支持支持硬件和软件,例如Autodesk和eMachines. 所有的BigFix 产品都用C++开发。
* Bloomberg:为投资者提供实时的金融信息。
* Cabot Communications: 便携式游戏机和数字电视软件 (包括ISO MHEG-5).
* Caldera:系统管理软件的OpenWBEM的WBEM标准开源实现 (www.openwbem.com)。用了较多的C++98标准机制。
* callas Software:PDF文件的分析纠错和优化软件,有pdfInspektor, Acrobat Preflight以及其他插件。
* CERN:数据分析-尤其用于大规模高能物理实验-使用了ROOT工具集和库。
* Codemill:SuperDoc: 一种掌上操作系统文件阅读器,能显著的平滑字体。
o SecurityContext: 一种 Win32 COM组件,用来简化当前线程的上下文安全查询。
o Map: 一种Win32 COM 组件用于COM变量数据类型线程映射,例如:用于IIS网络应用数据缓存
* Code Synthesis Tools: 提供XSD, 一种XML 数据捆绑产生器。XSD 用可移植性好的C++编写,用了很多的C++编译器编译。XSD广泛用于电信、金融、高性能计算以及电路设计。
* Coverity:C/C++静态源代码分析工具,用于查找Linux的bug。
* CoWare:系统/芯片标准
* Credit Agricole Indosuez Cheuvreux:欧洲证券交易市场指令跟踪软件,全部用C++编写。
* Dantz Development Corporation: Retrospect用于备份Windows的软件.
* D-Cubed:用于几何约束解决、动作模拟、碰撞检测、隐藏线消除和形态管理的组件,重点是精确性和速度,在CAD领域获得了广泛应用 (例如 CATIA, SolidWorks, AutoCAD, NX, SolidEdge)。
* D E Shaw:金融分析和贸易软件。
* Digiquant:Internet网络管理系统(IMS), IP网络基础设施软件服务. 一些AAA服务器拓展, 服务准备, 引擎标定, 和端口服务服务用C++编写.
* Dassault Systems:Catia v5,很领先的CAD软件, 所有近来的空中客车 (A380, ...),还有波音787的软件全部用C++编写,使用了 STL。
* 荷兰交通部, 公用工程, 水资源管理:浪涌屏障控制。BOS控制系统的保护屏障Maeslant使得Rotterdam免受洪害。该项极高极高级安全系统(按照IEC 61508,最高的安全级别)使用C++, Z和PROMELA 编写。[这里有一些漂亮的图片。]
* Efficient Networks:(Siemens的子公司)出售量超过800万套,它的PPPoE 用户端软件用于Macintosh, Windows and Linux系统。新的Macintosh 上开发全部用C++,Windows上开发用的C/C++。下面这些产品用C++开发:
o EnterNet: PPPoE 用户端驱动和应用设置
o Tango Qualifier:用户环境预攫取预测
o Tango Installer:向导型安装器
o Tango Access: PPPoE用户端驱动和应用设置
o Tango Support:用户层网络诊断工具
* Ericsson:
o TelORB–面向对象的分布式操作系统
o 分布式RAM数据库, TSP应用的基础
o 服务器平台
o TDMA-CDMA HLR
o GSM-TDMA-CDMA移动网关
o AAA服务器
* FlightGear:开源飞行模拟器使用了JSBSim
* Geant4:粒子干涉模拟,用于高能物理、核物理试验,太空和医疗应用的工具箱。Geant4 工程世界范围内100多位科学家合作,进行10余次试验,分别在欧洲、俄罗斯、日本、加拿大和美国。用C++编写,源代码超过500K行。
* Google: 网络搜索引擎等
o Chromium 浏览器
o Google文件系统
o MapReduce 大聚簇数据处理
* Havoc:实时的物理用特效以及游戏
* HP:下面是很小一部分C++应用
o C, C++, Fortran90 HP IA64 平台编译器和连接器 (加了1百万行C++源代码).
o SAM (HP的系统管理应用)
o 一些HP-UX的网络库
o Java虚拟机内核
o Openview的一部分
o Non-stop XML语法分析器 (来自最初的compaq)
* IBM:
o OS/400.
o K42: 一种高性能开源的多处理器操作系统内核
* Image Systems: TrackEye 和TEMA, 世界上顶尖动作分析软件 (基于数字图像处理)。多数汽车厂商用它分析碰撞试验效果,也有的汽车厂商和飞机厂商用它来分析新模型性能。
* Intel:
o Vtune 性能分析软件
o 编译器和优化器
o 很多芯片的设计和制造软件
* Intuit: Quicken (个人理财软件).
* ILOG: 在ILOG上, C++编写的库用于:
o 图形. 该库用来编写可移植性GUI和高级图行机制
o 优化. 该库用来编写控制程序行为应用
o 规则. 该库用来编写规则引擎
[/size][续]