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

一些著名的软件都用什么语言编写?,第1张

一、 *** 作系统:

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

1.到http://www.apache.org/dyn/closer.cgi/hive/ 上下载hive0.14.0的版本

2.使用cp命令拷贝到Linux主机的hadoop用户下

我这里使用的hadoop用户为qhg

3.使用tar -zxvf 命令进行解压,解压完后由于名字太长,使用mv进行重命名

4.配置Hive的环境变量

在.bash_profile文件中添加HIVE_HOME,然后在PATH中加入HIVE_HOME/bin目录

然后source .bash_profile,使环境变量生效

5.修改hive的配置文件

a.在hive/conf/下有几个模板文件

b.复制hive-env.sh.template 文件并命名为hive-env.sh

命令为cp hive-env.sh.template hive-env.sh

c.hive-env.sh 是hive的环境配置问价,需要修改hadoop的目录和hive的conf目录等

使用vi 打开hive-env.sh文件

wq保存退出。

d.复制文件hive-default.xml.template并重命名为hive-site.xml

命令:cp hive-default.xml.template hive-site.xml

删除<configuration></configuration>之间的内容,(在vi命令模式下输入:21,3395d 回车)

将以下内容拷过去

关于元数据库的设置

<property>

<name>hive.metastore.local</name>

<value>true</value>

</property>

这项配置已经被废弃,如果不是local模式则指定下面的信息,不指定则默认为local模式<property>

<name>hive.metastore.uris</name>

<value>thrift://hadoopmaster:9083</value>

</property>

1 <property>

2 <name>hive.metastore.local</name>

3 <value>true</value>

4 </property>

5 <property>

6 <name>javax.jdo.option.ConnectionURL</name>

7 <value>jdbc:mysql://localhost:3306/hive?characterEncoding=UTF-8</value>

8 </property>

9 <property>

10 <name>javax.jdo.option.ConnectionDriverName</name>

11 <value>com.mysql.jdbc.Driver</value>

12 </property>

13 <property>

14 <name>javax.jdo.option.ConnectionUserName</name>

15 <value>root</value>

16 </property>

17 <property>

18 <name>javax.jdo.option.ConnectionPassword</name>

19 <value>root</value>

20 </property>

其中jdbc:mysql://localhost:3306/hive?characterEncoding=UTF-8,localhost:3306/hive为MySQL服务器的地址和端口号

hive为MySQL中作为hive metastore的数据库,需要在后面装MySQL的时候进行创建。

6.使用MySQL作为hive的metastore

a.切换到root用户安装MySQL

yum install mysql / yum install mysql-server

b.启动MySQL服务

service mysqld start (可以使用service mysqld status查看MySQL服务是否正确启动)

c.将mysqld服务设置为开机自启动

chkconfig mysqld on

d.使用mysql_secure_installation 命令来设置mysql密码

运行该命令后,会提示是否更改mysql密码,这里输入Y。

然后输入新密码 root,再一次输入新密码root,接下来询问是否删除匿名用户,输入 n;

紧接着询问是否关闭 root的远程登录,输入 n;

询问是否删除mysql的测试数据库,输入 n ,然后询问是否重新刷新权限表,输入 Y。

e.为了使hive拥有远程登录和访问MySQL的权限,使用mysql -u用户名 -p密码

我在d过程中将root的密码设置为root了,所以执行的命令为 mysql -uroot -proot 回车进入MySQL shell

在mysql shell 中执行 grant all on hive.* to 'root'@'%' identified by 'root'命令

在这里,如果root的密码不是root则进行相应的修改

并在MySQL中创建名为hive的数据库,(数据库的名字由javax.jdo.option.ConnectionURL 的 value 中的hive指定)

f.切换到root用户,使用service mysqld restart重启MySQL服务

g.最后还需要安装jdbc的驱动,

利用rpm -qfl mysql-connector-java命令,查找mysql的JDBC驱动jar文件所在位置,

通常情况放在/usr/share/java/mysql-connector-java.jar,将其拷贝至 $HIVE_HOME/lib目录中,同时修改该文件的权限

7.启动hive,启动之前确保hadoop成功启动

输入hive 回车

进入hive的命令行模式后执行一条简单sql验证hive

例: show databases


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/8621434.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-18
下一篇 2023-04-18

发表评论

登录后才能评论

评论列表(0条)

保存