回 帖 发 新 帖 刷新版面

主题:C++的应用(C++ Applications)

维护这篇文章处于最新状态有些困难,尝试一下这里[url]http://www.cppblog.com/Chipset/archive/2008/12/17/69625.html[/url],这个版本可能更新一点。
                                                                          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][续]

回复列表 (共43个回复)

41 楼

[quote][quote]11楼,语言跟技术应该分开我同意,例如:微软的产品多少都离不开C++,但是懂C++的人太多,这些人中恐怕谁也编不出来Windows这样的系统和Office这样的办公软件,但是微软则能做到。[/quote]
正因为这样,我想大多数人是在这些软件(OS,DBMS)的基础上做应用开发的吧!快速应用开发是C++的致命伤!它适合于做一些低层的软件开发.而对一些MIS,ERP,CRM软件我想大家并不会用C++吧!把C++当作"母语"来学,在遇到一个新的语言和平台时,这样会上手容易一些!C++的强大在于它的"开发性"!我想这是我学习C++的原因!![/quote]
我并不同意这点喔,MIS,ERP,CRM完全可以用C++啊!我就用过C++Builder做过这方面的开发(除ERP外,不是开发不出来,而是没接触过)
如果从原始的C++出发,很多东西确实存在开发困难问题(时间成本太高)
但实际上,在开发工具提供给我们的库里、控件里都有极为丰富的资源——只是你也许一辈子也用不全,因为没那需求:)

42 楼

发现回复的人都是牛人,我一菜鸟不管是啥先表示感谢了,呵呵

43 楼

[quote]Bjarne Stroustrup说等我翻译完挂到网上了,给他一个连接。不过pfan有点慢,即使有人在它的主页上看到这个中文版本的连接了,也连接不到这里。

翻译这篇文章着实费了点劲,主要原因是C++应用涉及到各个领域,[url=http://www.thislove.com.cn]昕薇[/url]很多专业术语根本查不到汉语意思是什么。再者就是很多简写和缩写,连Bjarne Stroustrup也不知道什么意思,因为是别人发给他的,我只能凑合着给出英语吧。[/quote]

我来回复

您尚未登录,请登录后再回复。点此登录或注册