分类对比高级语言操作系统前后端,数据库服务端

Posted yanying-fly

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了分类对比高级语言操作系统前后端,数据库服务端相关的知识,希望对你有一定的参考价值。

操作系统对比(包括服务器操纵系统):

Windows系统
windows服务器操作系统我们都比较熟悉,它是Microsoft公司开发的,Microsoft是全球最大的操作系统开发商。Windows系统在局域网配置中是最常见的,但由于它对服务器的硬件要求较高,且稳定性不是很好,作为WEB服务器使用时,巨大的内核通讯量不是windows可以承受的,所以微软的服务器操作系统一般只是用在中、低档服务器中。当然Windows系统也有自己的优点,windows在PC时代已经家喻户晓,在易用性方面,没有人比Windows做的更好,相比其他服务器系统来说,极大的降低了使用者的学习成本,这也是Windows系统经久不衰的原因之一。常见的WindowsServer系统有windows server 2003、windows server 2008、windows server 2012等。
Linux系统
Linux服务器操作系统是在Posix和Unix的基础上开发出来的,支持多用户、多任务、多线程、多CPU。最大的特点就是开源,开源就是所有人,包括相关企业,政什么的,开发人员共同监督,在这样的监督之下,一套成熟的方案几乎很少出现漏洞。基于这种平台的开发和使用不需要用户支付任何版权费用,是很多创业者的基石,也是一些保密机构对服务器操作系统采购的首选。另外,Linux还有一套完整的权限机制,没有相关权限,想要对系统造成破坏根本无从下手,安全性和稳定性相对较高,受到中、高级开发人员的青睐。也正是因为Linux的安全性和稳定性,国内外很多保密机构服务器操作系统采购的首选,这类操作系统主要应用于中、高档服务器中。
Unix系统
Unix服务器操作系统由AT&T公司和SCO公司共同推出,主要支持大型的文件系统服务、数据服务等应用。功能强大。这种网络操作系统稳定和安全性能非常好,但由于它多数是以命令方式来进行操作的,不容易掌握,特别是初级用户。正因如此,小型局域网基本不使用Unix作为网络操作系统,UNIX一般用于大型的网站或大型的企、事业局域网中。因其体系结构不够合理,UNIX的市场占有率呈下降趋势。Unix在一些人眼中属于高端操作系统,因为很多的服务器商生产的高端产品只支持Unix操作系统。
NetWare系统
NetWare服务器操作系统相对来说使用的不是很多,多数人不是特别的熟悉,因为它在市场中的份额是比较局限的,在一些特定行业和事业单位中,NetWare优秀的批处理功能和安全、稳定的系统性能也有很大的生存空间。NetWare操作系统兼容DOS命令,其应用环境与DOS相似,具有相当丰富的应用软件支持,技术完善、可靠,以对网络硬件的要求较低而受到一些设备比较落后的中、小型企业,特别是学校的青睐。而且NetWare服务器对无盘站和游戏的支持较好,常用于教学网和游戏厅。这种操作系统有市场占有率呈下降趋势。

前端开发语言:

HTML 和带样式的 HTML 
html 就是一组标签和文本的组合,是一个最基本的网页。它已经包含了网页常见的元素,实际上在 Web 早期的很长一段时期内,网页都是这个样子。后来随着使用网络的人群越来越广泛,在 HTML3.0 中引入了对网页样式的定义,某种程度上可以说,也是从这个时候开始产生了网页设计师的角色。 
CSS 
带样式的 HTML 也拥有一个缺点,它需要为每个标题和文字都设定样式,工作量非常庞大。 CSS 就是在这样的情况下诞生了。CSS ,又称叠层样式表,简言之是一种用来表现 HTML 文件样式的样式设计语言。CSS 能够对网页中的对象的位置排版进行像素级的精确控制,实现基础的静态的交互设计;而CSS 目前的最新版本 CSS3 能够真正做到网页表现与内容分离。 
Javascript 
差不多在 CSS 诞生的同一时间,大家开始觉得这样静态的网页似乎略显无聊,能不能给网页加入一些可以动起来的元素?比如点击一个按钮之后变个颜色。当时网景公司的工程师Brendan Eich 就给他们自家的浏览器引入了这种实现动态效果的脚本语言,这就是 javascript(简称 JS)的诞生。所以通俗来说,Javascript 就是用来给 HTML 网页增加动态功能,实现更炫酷的交互。 
jQuery 
jQuery 是一个优秀的 Javascript 库。jQuery 使用户能更方便地处理 HTML ,它能够使用户的 HTML 页面保持代码和 HTML 内容分离,通过 jQuery ,可以不用在 HTML 里面插入一堆 JS 来调用命令,只需要定义 ID 即可。此外,由 Twitter 设计师 Mark Otto 和 Jacob Thornton 合作开发的 Bootstrap 也是一个受欢迎的前端框架。

 

后台开发语言:

Java
Java比较成熟:1995年就已出现。对于商业网站而言,Java是使用最广泛的语言,性能好,适合大中项目,跨平台,安全性高,稳定可靠,运行效率高(尤其是JIT的出现之后差距更大了),不容易犯错(强类型、预编译、必须拦截异常等等),能有效的提高复用度,提升性能和吞吐能力,能规避安全问题。但是开发复杂,开发和发布的效率相对较低,维护成本高,开发人员费用高。Java的生态系统非常成熟(IDE、框架等)。

优点:性能好,适合大中项目,跨平台,安全性高,稳定可靠,运行效率高(尤其是JIT的出现之后差距更大了),不容易犯错(强类型、预编译、必须拦截异常等等),能有效的提高复用度,提升性能和吞吐能力,能规避安全问题。
缺点:开发复杂,开发和发布的效率相对较低,维护成本高,开发人员费用高


PHP
灵活,上手快,易修改,发布快捷,环境好部署。容易犯错,行效率不高,缺乏全局缓存。由于php是运行在服务器端的脚本,可以运行在UNIX、LINUX、WINDOWS、Mac OS、android等平台。语法吸收了C语言、Java和Perl的特点,利于学习,使用广泛,主要适用于Web开发领域。PHP 独特的语法混合了C、Java、Perl以及PHP自创的语法。它可以比CGI或者Perl更快速地执行动态网页。用PHP做出的动态页面与其他的编程语言相比,PHP是将程序嵌入到HTML(标准通用标记语言下的一个应用)文档中去执行,执行效率比完全生成HTML标记的CGI要高许多。PHP最大的优势是学习门槛低。它基本可以在任何地方被执行,托管和非常简单。

优点:灵活,上手快,易修改,发布快捷,环境好部署
缺点:容易犯错,行效率不高,缺乏全局缓存


ASP.NET
微软公司推出的新一代脚本语言。ASP.NET基于.NET Framework的Web开发平台,不但吸收了ASP以前版本的最大优点并参照Java、VB语言的开发优势加入了许多新的特色,同时也修正了以前的ASP版本的。跨语言, 中小型项目上性能好,开发快,适合windows平台,维护成本低。代码逻辑混乱,难于管理,代码的可重用性差。ASP.NET具备开发网站应用程序的一切解决方案,包括验证、缓存、状态管理、调试和部署等全部功能。在代码撰写方面特色是将页面逻辑和业务逻辑分开,它分离程序代码与显示的内容,让丰富多彩的网页更容易撰写。同时使程序代码看起来更洁净、更简单。

优点:跨语言, 中小型项目上性能好,开发快,适合windows平台,维护成本低
缺点:代码逻辑混乱,难于管理,代码的可重用性差
 

Python
简单易学,开发快,语言简洁,易于维护,开源,可移植,可扩展。速度慢,格式强制,容易犯错。用Python可以做日常任务,比如自动备份你的MP3;可以做网站,很多著名的网站包括YouTube就是Python写的;可以做网络游戏的后台,很多在线游戏的后台都是Python开发的。

优点:简单易学,开发快,语言简洁,易于维护,开源,可移植,可扩展
缺点:   速度慢,格式强制,容易犯错


Node.js
Node.js自从2009年发布一下,使用十分广泛。Node.js具有异步,事件驱动以及可扩展的特性。Node.js应用是由JavaScript开发的,因此它具有JavaScript的所有优点:享受到了JavaScript V8引擎的好处,灵活而轻量级的语法,跟Java一样,JavaScript出现在1995年。所以语言本身发展历史很长,相对稳定。 Node.JS逐渐发展成一个成熟的开发平台,吸引了许多开发者。有许多大型高流量网站都采用Node.JS进行开发,此外,开发人员还可以使用它来开发一些快速移动Web框架。Node可以在不新增额外线程的情况下,依然可以对任务进行并发处理 —— Node.js是单线程的。它通过事件循环(event loop)来实现并发操作,对此,我们应该要充分利用这一点 —— 尽可能的避免阻塞操作,取而代之,多使用非阻塞操作。

优点:RESTful API,单线程,非阻塞IO,V8虚拟机,事件驱动

缺点:单进程,单线程,不适合CPU密集型应用,只支持单核CPU,不能充分利用CPU,可靠性低,一旦代码某个环节崩溃,整个系统都崩溃,开源组件库质量参差不齐,更新快,向下不兼容,Debug不方便,错误没有stack trace

 

除以上介绍之外,还有其他一些后台开发语言,比如:C++、C#、C、Go、Ruby等。

国内的大公司偏业务的一般都用 Java 做后台开发比如淘宝,网易,美团等. Python国内一般是一些体量不是这么大的公司使用,例如豆瓣,知乎等。其实,各种语言都有优缺点,没有哪一种是绝对好的。各公司也不是单单只使用一种后台语言,都是结合起来开发的。上述的各种语言的优缺点也是相对的,并不是说明哪种语言多么好多么不好,而且,技术是发展的。
不同公司用不同后台开发语言也有各自的原因。比如,要看需求是重展现还是重业务逻辑,重展现就用php等,重业务逻辑就用python等,也有原因是由于技术积累,比如腾讯一直用c++。所以,我们应该根据自己的兴趣爱好,结合行业发展,选择一门语言认真学习,这样才能在业界立足。

数据库语言:

Oracle
Oracle是甲骨文公司的一款关系数据库管理系统。到目前仍在数据库市场上占有主要份额。能在所有主流平台上运行(包括 windows)。完全支持所有的工业标准。采用完全开放策略。可以使客户选择最适合的解决方案。对开发商全力支持。 Oracle数据库是一种大型数据库系统,一般应用于商业,政府部门,它的功能很强大,能够处理大批量的数据,在网络方面也用的非常多。不过,一般的中小型企业都比较喜欢用mysql, SQLserver等数据库系统,它的操作很简单,功能也非常齐全。只是比较Oracle数据库而言,在处理大量数据方面有些不如。
MySQL
MySQL是一个小型关系型数据库管理系统,是开源的,MySQL服务器是一个快速的、可靠的和易于使用的数据库服务器。MySQL服务器工作在客户/服务器或嵌入系统中。有大量的MySQL软件可以使用。MySQL是多线程、多用户和健壮的SQL数据库服务器。MySQL服务器支持关键任务、重负载生产系统的使用,也可以将它嵌入到一个大配置(mass- deployed)的软件中去。开发者为瑞典MySQL AB公司。在2008年1月16号被Sun公司收购。而2009年, Sun又被Oracle收购。对于MySQL的前途,没有任何人抱乐观的态度。目前MySQL被广泛地应用在Internet上的中小型网站中。由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,许多中小型网站为了降低网站总体拥有成本而选择了MySQL作为网站数据库。
SQL Server
SQL Server是由微软开发的数据库管理系统,是Web上最流行的用于存储数据的数据库,它已广泛用于电子商务、银行、保险、电力等与数据库有关的行业。只能在windows上运行,C/S结构,没有丝毫的开放性,操作系统的系统的稳定对数据库是十分重要的。而且windows平台的可靠性,安全性和伸缩性是非常有限的。它不象unix那样久经考验,尤其是在处理大数据库。并行实施和共存模型并不成熟,很难处理日益增多的用户数和数据卷,伸缩性有限。SQL Server 提供了众多的Web和电子商务功能,如对XML和Internet标准的丰富支持,通过Web对数据进行轻松安全的访问,具有强大的、灵活的、基于Web的和安全的应用程序管理等。而且,由于其易操作性及其友好的操作界面,深受广大用户的喜爱。
DB2
能在所有主流平台上运行(包括windows)。DB2就是IBM开发的一种大型关系型数据库平台。它支持多用户或应用程序在同一条SQL 语句中查询不同database甚至不同DBMS中的数据,最适于海量数据。DB2在企业级的应用最为广泛,在全球大型企业中,有很高的时长份额。具有很好的并行性。DB2把数据库管理扩充到了并行的、多节点的环境。数据库分区是数据库的一部分,包含自己的数据、索引、配置文件、和事务日志。数据库分区有时被称为节点或数据库节点性能最高, 保持开放平台下的TPC-D和TPC-C的世界记录。性能较高适用于数据仓库和在线事物处理。跨平台,多层结构,支持ODBC,JDBC等客户。操作简单,同时提供GUI和命令行,在windowsNT和unix下操作相同。在巨型企业得到广泛的应用,向下兼容性好。风险小。
Sybase
美国Sybase公司研制的一种关系型数据库系统,是一种典型的UNIX或WindowsNT平台上客户机/服务器环境下的大型数据库系统。 Sybase提供了一套应用程序编程接口和库,可以与非Sybase数据源及服务器集成,允许在多个数据库之间复制数据,适于创建多层应用。系统具有完备的触发器、存储过程、规则以及完整性定义,支持优化查询,具有较好的数据安全性。性能较高,支持Sun、IBM、HP、Compaq和Veritas的集群设备的特性,实现高可用性。性能接近于SQL Server,但在UNIX平台下的并发性要优与 SQL Server。适应于安全性要求极高的系统。具有较好的并行性,速度快,对巨量数据无明显影响,但是技术实现复杂,需要程序支持,伸缩性有限。使用命令行操作,对数据库管理人员要求较高。同时提供GUI和命令行。但GUI较差,常常无法及时状态。

除以上介绍之外,还有一些不常用的数据库,比如:Informix、PostgreSQL、Access、FoxPro等。

 移动开发语言:

Android

Android系统开发采用Java语言,虽然安卓系统的linux内核是基于C语言开发,但事实上并不必需采用C语言来开发应用。

ios

苹果ios系统可以采用OC和Swift两种语言。Android开发环境搭建简单,IOS开发需要采用苹果的硬件和软件,因为苹果的生态是个封闭的闭环系统。、

 

计算机语言还有以下分类,有时间会详细介绍

  1. 高级语言和低级语言
  2. 动态类型和静态类型
  3. 强制类型和弱类型
  4. 编译型,解释型,半编译半解释
  5. 面向对象型和面向过程型

 

以上是关于分类对比高级语言操作系统前后端,数据库服务端的主要内容,如果未能解决你的问题,请参考以下文章

编译原理学习笔记

编译原理学习笔记

Vue高级篇--实现前后端完全分离

第560期网易高级前端技术专家蔡剑飞:前后端分离实践经验分享

IT:后端进阶技术路线图(初级→中级→高级)后端开发工程师(技术方向分类之后台业务开发/中间件/内核/分布式架构)基础知识简介技术路线/技术趋势指南(如何选择自己的技术方向)之详细攻略

网易高级前端技术专家蔡剑飞:前后端分离实践经验分享