C:1973年的贝尔实验室中,Ken Thompson和Dennis Ritchie在做UNIX系统内核移植开发时,感觉使用汇编语言很难实现,于是使用BCPL开发,并对其改进推出了B语言,但B语言开发的UNIX内核无法达到预期要求,而后又在此之上开发了C语言,并用C语言重新编写了UNIX内核。此外,Linux和Windows内核也是用C语言编写的。

  • 应用领域:操作系统、编译器、嵌入式硬件、网络服务器;
  • 优势:接近底层,跨平台和可移植性良好;简洁小巧,灵活可靠,运行效率高;几乎所有编程语言都脱胎于C,直接或间接借鉴了C的概念,掌握C语言有助于了解其他语言;
  • 弊端:开发效率低,周期长;

C++:1979年4月,Bjarne Stroustrup在贝尔实验室开始分析UNIX内核,设法将其分布到由局域网连接的计算机网络上。由于缺少现有工具,为了便于描述内核的模块化和通信模式,Bjarne Stroustrup开始设计一门新语言,设计目标是既能保持Simula的程序组织功能,又能兼顾C语言的效率和灵活性。1979年10月,一个名为Cpre的预处理程序诞生,它是一个带类的C(C with Classes)。1983年,C with Classes改名为C++,并开始引入虚函数、重载、引用等新特性。1998年,C++标准委员会发布了C++的首个国际标准——ISO/IEC 14882:1998,简称C++98。C++仍处于不断发展中,特性越来越复杂,至今经历了C++11/14/17等标准,C++20也即将到来,C++11及其之后的标准被称为Modern C++。

  • 应用领域:操作系统、虚拟机、浏览器、数据库、编译器、桌面应用、图像处理、流媒体、高频交易、区块链、军工软件、搜索系统、游戏引擎、服务器、虚拟现实、其他语言的库;
  • 优势:C++几乎可以使用C的所有特性,并提供了大量新特性;C++保留了C的优点,灵活可靠,运行效率高,又有比C更高的开发效率;掌握C++能更深入地了解Java、Python的内存管理机制,并能快速上手其他编程语言;
  • 弊端:规模庞大,蕴含多种编程范式,学习曲线陡峭;C++几乎提供了解决一切问题的组件,但几乎没有人能完全掌握,而只需要选用一部分子集;C++尝试适用所有场景,反而导致对大部分场景的支持都不够突出;必须兼容旧标准,历史包袱重;
  • 如果大家对C/C++感兴趣的话,可以加一下我们的学习交流Q群:637  935  295,免费领取一套学习资料和视频课程哟~

C#:1995年,Sun发布Java,Java良好的跨平台性使其逐渐成为企业开发的首选。为了对抗Java,微软公司的首席架构师Anders Hejlsberg着手研发了一种名为Cool(C-like Object Oriented Language)的编程语言,并于2000年在PDC(微软专业开发者会议)上以C#(C Sharp)的名称公布。

  • 应用领域:桌面应用、游戏客户端;
  • 优势:全面集成.Net库,文档丰富,易于上手;
  • 弊端:捆绑微软,国内不如Java应用范围广泛;

Objective-C:1983年,Stepstone公司的Brad Cox和Tom Love发明了Objective-C,它遵循ANSI C的标准,基于Smalltalk改进,在C的基础上加入了面向对象特性。1985年,被赶出苹果的Steve Jobs创办了NeXT公司,NeXT获得了使用Objective-C来开发NeXTSTEP Toolkit的授权,这个工具包就是Cocoa的前身。1996年,苹果收购NeXT,Steve Jobs重回苹果,并使用Objective-C重新设计了Mac OS。2007,iPhone问世,3G/4G通信技术日趋成熟,2011年正式进入移动互联网时代,Objective-C火爆一时。

  • 应用领域:iOS、Mac OS开发;
  • 优势:开发苹果程序的首选;能与C/C++/Swift混合编程;
  • 弊端:使用范围有限,只能用于开发苹果的程序;2014年WWDC(苹果全球开发者大会)上,苹果发布了新的编程语言Swift,Objective-C未来可能被Swift取代;

Java:1991年,Sun公司为了开拓消费类电子产品市场,开始启动由James Gosling领导的Green项目。James Gosling在研发过程中发现,消费类电子产品要求高可靠、费用低、标准化、使用简单,用户不关心CPU型号,也不欣赏昂贵的RISC处理器。为了使整个系统与平台无关,项目从改写C编译器开始着手。在此期间,小组发现C语言经常被开发者错误使用,C缺少垃圾回收、多线程、移植安全性、分布程序设计等特性。最终Sun的创始人Bill Joy决定开发一种集C和Mesa搭成的新语言,提议在C的基础上开发一种面向对象的环境。起初James Gosling尝试修改和拓展C的功能,并称为C--,后来他注意到办公室窗外的一棵橡树(oak),于是决定将新语言命名为Oak。James Gosling的设计中,编译后产生的代码运行在操作系统的虚拟机解释器上,从而实现平台无关性和可移植性。项目起初用于机顶盒领域,但由于市场不成熟,初战告败。1994年,团队决定将技术用于万维网,正好赶上了互联网时代的浪潮。由于Oak的商标已经被注册过了,在命名征集会上,排名第一的名字Silk被James Gosling强烈反对,排名第二和第三的仍有商标问题,最终排名第四的Java得以采用。Java是印度尼西亚爪哇岛的英文名称,爪哇岛盛产咖啡,因此Java中的许多类库与咖啡豆有关,如JavaBeans、NetBeans、ObjectBeans,Java的logo就是一杯冒着热气的咖啡。1995年5月23日,Java正式发布。1996年1月,JDK1.0诞生。2010年10月24日,Oracle以74亿美元收购了Sun Microsystems。ASF(Apache软件基金会)呼吁JCP(制定Java规范的组织)反对Oracle提出的Java 7和Java 8路线图,除了Google无人响应。ASF和Google反对的理由与技术无关,而是与Oracle的应用范围和许可授权限制有关。2010年11月,ASF退出了JCP。

  • 应用领域:Android、Web应用、服务器、大数据、企业应用;
  • 优势:易于学习,开发效率高,市场需求旺盛;垃圾回收机制安全可靠,不容易出现问题;依赖于JVM,跨平台性良好;库丰富,并在不断发展,社区资料完善;
  • 弊端:灵活性差,不能随心所欲地控制内存;依赖于JVM,运行效率受其影响;除了语言本身外需要学习过多框架;

JavaScript:互联网开始流行时,网页变得越来越复杂,然而大部分因特网用户还只能通过 28.8 kbit/s 的调制解调器连接到网络。用户填完一个表单,点击提交按钮,等待了30秒的服务器处理后,看到的可能只是某个地方填错了的提示。为了解决这个问题,Netspace公司计划开发一种能在客户端完成基本验证的技术,当时Brendan Eich正着手为将于1995年发行的Netscape Navigator 2.0开发一个名为LiveScript的脚本语言,为了赶在发布日期前完成,Netscape与Sun成立了一个开发联盟。此时Java正被媒体热炒,Netscape为了蹭Java的热度,临时将LiveScript改名为了JavaScript。随着Node.js和React的出现,JavaScript的应用领域也越来越广泛。

  • 应用领域:Web前端、后端、移动应用、内嵌脚本语言;
  • 优势:解释型语言,反应快速,可立即运行;依赖于浏览器,与操作系统环境无关;
  • 弊端:代码在用户计算机上执行,可能被恶意活动利用,存在安全性问题;在不同浏览器上解释方式不同,可预测性差;

PHP:PHP继承自一个名为PHP/FI的老工程,PHP/FI由Rasmus Lerdorf于1995年创建,最初只是一套用来跟踪访问他主页的人们的信息的Perl脚本,这套脚本名为Personal Home Page Tools。随着更多功能需求的增加,Rasmus写了一个更大的C语言的实现,它可以访问数据库,可以让用户开发简单的动态Web程序,并发布了源代码,以便每个人都可以使用并改进。最初PHP指的是Personal Home Page,如今PHP的含义是PHP: Hypertext Preprocessor。

  • 应用领域:Web后端、移动应用后端;
  • 优势:易上手且功能丰富,开发效率高;开源,社区庞大活跃,解决方案充足;跨平台性良好;与各类数据库、文件系统协作顺畅;
  • 弊端:学习门槛低,存在大量经验不足的开发者的开源代码;大量古老的开源代码仍被使用;命名规范混乱;

Python:1989年圣诞节期间,在荷兰首都Amsterdam的Guido von Rossum为了打发时间,决定开发一个新的脚本解释程序,做为ABC语言的一种继承。Guido是喜剧团体Monty Python的爱好者,因此将电视剧《Monty Python's Flying Circus》名字中的Python作为了新语言的名字。1991年,第一个Python编译器诞生,它由C语言实现,并能调用C的库文件。由于大量深度学习框架被封装为Python库,伴随人工智能的兴起,加上自身简单易学的特点,Python成为了当下最受欢迎的语言之一。

  • 应用领域:Web、科学计算、机器学习、爬虫、数据分析、量化交易、云计算、运维;
  • 优势:抽象度高,简单易学,开发快速;开源,强大丰富的库;代码强制要求缩进,整洁规范;
  • 弊端:解释型语言,运行效率差;代码不能加密;缩进过多导致可读性下降;

Ruby:松本行弘认为编程应该专注于人而非计算机,要让程序员感到编程是一件快乐的事,于是在1995年开发了一种更人性化的编程语言。最初的目标只是想实现Perl所具备的功能,因此松本行弘从Perl借鉴了很多内容,也因为受Perl的影响,他决定用一种宝石来命名新语言,最终使用了一位同事的生肖石——代表七月的Ruby(Pearl代表六月)。Rails框架的出现使得Web的开发更为简单快速,因此Ruby on Rails常被作为初创公司的技术选型。

  • 应用领域:Web;
  • 优势:语法糖丰富,易于上手,开发快速;
  • 弊端:解释型语言,运行效率差;小众,常用于初创公司;

Lua:Lua是一个简洁、轻量、可扩展的程序设计语言,由巴西里约热内卢天主教大学的Roberto Ierusalimschy、Waldemar Celes和Luiz Henrique de Figueiredo所组成的研究小组于1993年开发而成,其设计目的是为了嵌入应用程序中,从而为应用程序提供灵活的扩展和定制功能。Lua由标准C编写而成,几乎在所有操作系统和平台上都可以编译,运行,它还有一个同时进行的JIT项目,提供在特定平台上的即时编译功能,但Lua并没有提供强大的库,所以不适合作为开发独立应用程序的语言使用。

  • 应用领域:游戏、插件、配置文件;
  • 优势:小巧简洁;支持协程;
  • 弊端:应用领域局限;

Go:程序员常常要在开发效率和性能中做出选择,C/C++性能高但开发周期漫长,Python和Ruby适合快速开发但性能不足,谷歌首席软件工程师Rob Pike说:“我们之所以开发Go,是因为过去10多年间软件开发的难度令人沮丧。”2007年,包括开发过C语言的Ken Thompson在内的一批Google工程师,开始将本职工作外时间的20%投入于Go项目。2008年5月,Google发现了Go的巨大潜力,开始全力支持这个项目,让员工全身心投入Go的开发。2009年11月,首个Go版本以开源方式向全球发布。2012年3月28日,首个正式版本Go 1发布。Go在开发效率和性能之间架起了桥梁,它可以在不损失应用程序性能的情况下降低代码的复杂性,编译后Go代码的运行速度与C语言非常接近,而且编译速度非常快。

  • 应用领域:云计算、大数据、分布式系统、Web后端、区块链;
  • 优势:Google支持且开源;简单易学;编译快且运行快;支持并发;
  • 弊端:诞生时间晚,市场仍处于实验阶段;

Kotlin:Kotlin基于JVM,由JetBrains开发,于2010年首次推出,次年开源。2016年2月,Kotlin 1.0正式版发布。2017年5月18日,Google I/O全球开发者大会上,Google宣布Kotlin正式成为Android开发的官方支持语言。

  • 应用领域:Android;
  • 优势:兼容Java,且更加简洁现代;
  • 弊端:诞生时间晚,市场仍处于实验阶段。

想自学一种编程语言,各种编程语言都有什么区别?相关推荐

  1. python是一种什么编程语言-想自学一种编程语言,各种编程语言都有什么区别?...

    我自己在五六年前开始自学编程,那个时候就简单学了一些Python,慢慢也就就上手了,后面继续慢慢学,慢慢体验,随之也转到了计算机专业.我就来说说我对自学编程的看法吧. 这个问题下很多不错的回答,也都讲 ...

  2. python是一种通用编程语言-想自学一种编程语言,各种编程语言都有什么区别?...

    越来越多的初学者在纠结于编程语言的选择,这就涉及到一个根本的问题,编程语言之间有哪些差别?该如何在这些差别之中选择最合适自己的语言? 编程语言的差别,主要在于两个方面:易用性+学习价值. 一.易用性 ...

  3. 10种打死你都不会去学的编程语言(第1季)

    我的新书<Android App开发入门与实战>已于2020年8月由人民邮电出版社出版,欢迎购买.点击进入详情 文章目录 1.Taxi 2.ZOMBIE 3.BIT 4.Unlambda ...

  4. python语言开发效率高吗_12种高效率热门编程语言,你会用几个?

    纯手工打造每一篇开源资讯与技术干货,数十万程序员和Linuxer已经关注.导读 编程语言不仅仅面向程序员.如果你是网络工程师.系统管理员.存储管理员或其他基础设施专业人员,知道一种(或两三种)编程语言 ...

  5. 12种高效率热门编程语言,你会用几个?

    2019独角兽企业重金招聘Python工程师标准>>> 此外,由于更多的企业采用开发运维的方法,许多公司力求加大使用自动化的力度.虽然现有的自动化工具可以为你处理其中一些工作,但是管 ...

  6. 四种最令人讨厌的编程语言:Java、Javascript、C++和Perl

    喜欢就关注我们吧! TIOBE 12 月榜单已于日前公布,在最新的排行榜中,C 语言仍高居榜首,其次分别是 Java.Python 和 C++.在编程语言这一领域中,许多编程语言都会随着时间的推移而经 ...

  7. 5种最热门编程语言的优缺点

    点击上方"AI遇见机器学习",选择"星标"公众号 重磅干货,第一时间送 来自|我是开发者FTD 1 PHP 众所周知,PHP语言作为服务器端开发的脚本语言,在网 ...

  8. 6 种老而不死的编程语言!

    现在的开发人员都趋向于使用新的编程语言,那么旧的编程语言呢?它们的前途一般是这样两种:仍然可以使用,但逐渐不受大家欢迎:直接完全死去.之前我们对了<5 种将死的编程语言>和之前5中将死的编 ...

  9. 四种最令人讨厌的编程语言

    Java 有时,开发人员对某一特定语言的特别不屑可能与开发人员对编程语言的熟悉程度有关,而不是对该语言有什么内在的负面情绪所致.Hatch 就表示,虽然他觉得 Java 是一门伟大的语言,但他个人却讨 ...

最新文章

  1. Python数据类型之字符串
  2. php 不存在给默认值,当属性不存在时,创建一个属性并给它一个默认值
  3. 征战蓝桥 —— 2014年第五届 —— C/C++A组第4题——史丰收速算
  4. CodeForces-748D 贪心
  5. jquery请求后台数据(get请求)
  6. org.apache.hadoop.fs.ChecksumException: Checksum error
  7. curses.h: No such file or directory
  8. Java实现常用的三种加密算法详解
  9. Swift:一天学会,三天写项目
  10. 浅谈你们不知道的区块链游戏
  11. 联通项目中的常见术语(BTS、BSC、MSC、VLR、HLR)
  12. github实用的搜索小技巧
  13. u-boot之u-boot-2009.11启动过程分析
  14. 开放银行布局加速 敏捷迭代小程序生态技术开放平台打造迫在眉睫
  15. Google 宣布 GSoC 2014 计划Fwd: Google Summer of Code 2014 + 10 Things
  16. 国密算法Go语言实现(详解)(九) ——SM2(椭圆曲线公钥密码算法)
  17. python中标识符的命名规则_python标识符的命名规则是什么
  18. hdu2838(树状数组)
  19. html5 打造桌面便签,HTML5 – 创建一个Web网页便利贴
  20. 陆金所测试专家金玲谈《基于容器的自动化环境管理实践》

热门文章

  1. 2021新茶饮研究报告
  2. 支付系统设计:支付系统的账户模型(一)
  3. 谷歌地球怎么用不了_谷歌地球怎么用
  4. lisp 发凹圆角_css能实现这样的内凹圆角吗?如何实现?具体代码是!!
  5. springmvc的主要功能_Spring MVC入门
  6. 界面设计方法 (2) — 3.卡式, 列表, 主细表, 树形, 页签
  7. 【精彩实况】第三届大数据科学与工程国际会议
  8. 【2016年第1期】CCF大专委2016年大数据发展趋势预测—— 解读和行动建议
  9. 【项目管理】项目进度管理的关键路径
  10. 潜伏者与谍报密码(洛谷P1071题题解,Java语言描述)