一些著名的软件都用啥语言编写?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了一些著名的软件都用啥语言编写?相关的知识,希望对你有一定的参考价值。

参考技术A

一、操作系统:

Microsoft Windows : 汇编 -> C -> C++

备注:曾经在智能手机的操作系统(Windows Mobile)考虑掺点C#写的程序,比如软键盘,结果因为写出来的程序太慢,实在无法和别的模块合并,最终又回到C++重写。

相信很多朋友都知道Windows Vista,这个系统开发早期比尔盖茨想全部用C#写,但是最终因为执行慢而放弃,结果之前无数软件工程师日夜劳作成果一夜之间被宣告作废。

Linux :C

Apple MacOS : 主要为C,部分为C++。 备注: 之前用的语言比较杂,最早是汇编和Pascal。

Sun Solaris : C

HP-UX : C

Symbian OS : 汇编,主要为C++。 (诺基亚手机)

Google Android :2008 年推出: C语言(有传言说是用Java开发的操作系统,但最近刚推出原生的C语言SDK)

RIM BlackBerry OS 4.x : 黑莓 C++



二、图形界面层

Microsoft Windows UI : C++

Apple MacOS UI (Aqua) : C++

Gnome (Linux图形界面之一,大脚): C和C++, 主要是C。

KDE (Linux图形界面) ,C++。



三、桌面搜索工具

Google Desktop Search : C++

Microsoft Windows Desktop Search : C++

Beagle (Linux/Windows/UNIX 下): C# (基于开源的 .net : Mono)



四、办公软件

Microsoft Office : 在 汇编 -> C -> 稳定在C++

Sun Open Office : 部分JAVA(对外接口),主要为C++ (开源,可下载其源代码)

Corel Office/WordPerfect Office : 1996年尝试过Java,次年被抛弃,重新回到C/C++

Adobe Systems Acrobat Reader/Distiller : C++



五、关系型数据库

Oracle : 汇编、C、C++、Java。主要为C++。

MySQL : C++

IBM DB2 : 汇编、C、C++,主要为C。

Microsoft SQL Server : 汇编 -> C->C++

IBM Informix : 汇编、C、C++,主要为C。

SAP DB/MaxDB : C++



六、Web Browsers/浏览器

Microsoft Internet Explorer : C++

Mozilla Firefox : C++

Netscape Navigator : 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 : (2003年1月发布)C++

Google Chrome : (2008的发布)C++

Sun HotJava : Java (死于1999年)

Opera : C++ (手机上占用率比较大)

Opera Mini : Opera Mini (2007) has a very funny architecture, and is indeed using both C++ and Java. 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. This 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 : 鼻祖(已死) C 语言



七、邮件客户端

Microsoft Outlook : C++

IBM Lotus Notes : Java

Foxmail : Delphi



八、软件开发集成环境/IDE:

Microsoft Visual Studio : C++

Eclipse : Java (其图形界面SWT基于C/C++)

Code::Blocks : C++

易语言: C++

火山中文: C++

火山移动: C++



九、虚拟机

Microsoft .Net CLR (.NET的虚拟机): C++

Java Virtual Machine (JVM) : Java 虚拟机:C++



十、ERP软件 (企业应用)

SAP mySAP ERP : C,后主要为“ABAP/4”语言

Oracle Peoplesoft : C++ -> Java

Oracle E-Business Suite : Java



十一、商业智能(Business Intelligence )

Business Objects : C++



十二、图形处理

Adobe Photoshop : C++

The GIMP : C



十三、搜索引擎

Google : 汇编 与 C++,主要为C++



十四、著名网站

eBay : 2002年为C++,后主要迁至Java

facebook : C++ 和 php

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.

阿里巴巴和淘宝: php->C++/Java(主要用)



十五、 游戏 :

汇编、C、C++

星际争霸、魔兽争霸、CS、帝国时代、跑跑卡丁车、传奇、魔兽世界.... 数不胜数了,自己数吧

都是用C++开发的,C++语言靠近系统地称,执行速度最快。比如你的两个朋友与你分别玩用VB、Java、与C++编写的“跑跑卡丁车”,你玩C++编写的 游戏 已经跑玩结束了,发现你的两个朋友还没开始跑呢,那是相当的卡啊,



十六、编译器

Microsoft Visual C++ 编译器: C++

Microsoft Visual Basic 解释、编译器: C++

Microsoft Visual C# : 编译器: C++

gcc (GNU C compiler) : C

javac (Sun Java compiler) : Java

Perl : C++

PHP : C



十七、3D 引擎

Microsoft DirectX : C++

OpenGL : C

OGRE 3D : C++



十八、Web Servers (网页服务)

Apache : C和C++,主要为C

Microsoft IIS : C++

Tomcat: Java

Jboss: Java



十九:邮件服务

Microsoft Exchange Server : C->C++

Postfix : C

hMailServer : C++

Apache James : Java



二十:CD/DVD 刻录

Nero Burning ROM : C++

K3B : C++



二十一:媒体播放器

Nullsoft Winamp : C++

Microsoft Windows Media Player : C++

Microsoft Windows Media Player : C++



二十二:Peer to Peer (P2P软件)

eMule : C++

μtorrent : C++

Azureus : Java (图形界面使用基于C/C++的SWT,类Eclipse)



二十三:全球定位系统(GPS)

TomTom : C++

Hertz NeverLost : C++

Garmin : C++

Motorola VIAMOTO : 2007年6月,停止服务。 Java。



二十四:3D 引擎

Microsoft DirectX : C++(相信玩 游戏 的同学都知道这个,现在最高版本是DX11)

OpenGL : C

OGRE 3D : C++


二十五:服务器软件

Apache: C

Nginx: C

IIS: C


二十六:其他相关

OpenStack: Python

综述

著名的软件一般是系统软件,软件一般都分为系统软件和应用软件。开发软件分为一次开发和二次开发,比如开发操作系统(系统软件),就是一次开发;在操作基础上进行应用软件的开发,比如开发 游戏 ,就是二次开发。


一次开发的系统软件,要直接调用硬件资源,必须使用简单、直接的底层语言和中层语言,比如汇编和C语言;二次开发应用软件等,因为应用软件的类别比较多的,针对的情况比较复杂和具体,因此可以选择的语言很多,比如,大数据人工智能方面的有Python;安卓手机APP就是Java等等。

这里还有一个误区,其实语言不重要,每种语言都差不多,重要的是开发环境和编程思想。要学习编程开发,学的不是语言,而是对于开发环境工具的使用和编程思维的锤炼。很多著名的软件都是用C等底层语言编写的,但是也可以用其他语言编写,不过很少学C了,其中有商业的原因。(后面会解释)

集成开发环境软件

计算机语言是不可以单独拿出来说的,比如我们说C语言,指的是C语言编译器,而Python语言,指的是Python解释器。而编译器和解释器却都是用C语言编写,是不是很意外,所以著名的软件一般都是系统软件,使用的是C语言,一个语言就要初中水平就可以学会了,但必须了解IDE开发环境。


要使用计算机语言,就必须安装编译器,或者是解释器,程序员是在TXT文本上编写语言的,用编译器可以一次性编译为可执行文件exe,用解释器则可以逐条翻译成机器语言并逐条执行。编译器速度快,解释器可以跨系统,到了别的系统,不需要程序员改写程序,换一个解释器就行了。

IDE集成开发环境具备图形操作界面、编译器、调制器、控制台,是非常重要的开发工具的,只会一个计算机的语言语法,却不会使用IDE,基本上是没用的!

编程思想

很多著名的软件都是使用C等底层语言编写的,而且所用的都是编译器。当然还有另外一个原因,就是编程思想,C语言是面向过程,Python是面向对象。很明显,一次开发的系统软件肯定是面向过程的,而面向具体使用场景的应用软件肯定是面向对象的。


高手可以自由使用编程思想、程序编写时,交替使用各种语言、切换解释器或者编译器,达到隐藏核心代码目的;又或者软件的核心模块采用C等底层代码,保证软件的运行速度。毕竟开发时都是模块化的,不同模块使用不同的方法都是可以的!

所以很多著名的软件,往往是混合着各种语言,核心部分是C,其他部分则根据不同的情况选用不同语言,之所以会这样做,是因为使用C开发软件要耗费大量的时间太。摩尔定律推动硬件发展,软件开发也受到影响,一个软件晚几天推出市场,效果完全不同,所以程序员经常加班赶工,速度才是最重要的。

总结

如上所述,著名的软件是使用C等底层语言、编译器语言、面向过程的语言编写的,更多的是在一个软件的核心部分使用C等底层语言、编译器语言、面向过程的语言,其他则见机行事。

现在主流的语言是java、python和go

编写的C语言程序,怎样制作一个UI界面?用啥软件好?

如果用C语言在windows下做GUI应用,要看看windows系统编程。这个可以用Windows自己的SDK开发。或者可以用GTK做界面,C的话可以用这个SDK(开发包)。此外还有wxwidget,FLTK等。 参考技术A C语言中要做图形见面,首先需要设置为图形模式,确定显卡类型,对屏幕进行初始化等等,相关的函数如下:
1. detectgraph() 显示卡检测函数
2. initgraph() 图形初始化函数
3. getdrivername() 获取图形驱动程序名的指针
4. getgraphmode() 获取图形模式函数
5. getmoderange()获取模式值范围函数
6. getmaxmode()获取最大显示模式函数
7. getmodename()获取显示模式名函数
8. graphdefaults()图形设置复位缺省值函数
9. setgraphmode() 设置图形模式函数
10. restorecrtmode() 恢复文本显示模式函数
11. graphresult() 图形操作结果函数
12. grpaherrormsg() 图形错误信息函数
13. setgraphbufsize()设置图形缓冲区大小函数
14. setactivepage() 设置可输出显示页函数
15. setvisualpage() 设置可见显示页数
16. closegraph()关闭图形模式函数

以上是关于一些著名的软件都用啥语言编写?的主要内容,如果未能解决你的问题,请参考以下文章

现在一般的软件是用啥语言编写的?

股票行情软件是用啥语言编写的?

现在软件开发,一般都用啥语言啊?

现在软件开发、一般都用啥语言啊!

制作网页都用啥工具和语言?都有哪些呢?

现在软件开发,一般都用啥语言啊,要怎么学?