先上图,不用说你自己心里都有底了吧!

下面我来分析一下排名前几位的编程语言

你想学的编程语言真的适合你学吗(还在纠结要学什么编程语言吗)(1)

文章目录

全面分析各种编程语言优缺点分析,及适用的人群

C语言

Java

Python

C

C#

Visual Basic

javascript

php

assembly language

sql

go

全面分析各种编程语言优缺点分析,及适用的人群

C语言

C语言是一门面向过程的、抽象化的通用程序设计语言,广泛应用于底层开发。

优点:指针就是C语言的一大优点,C语言优于其它语言的原因就是因为它有指针操作可以直接进行靠近硬件的操作

缺点:C的指针操作也给它带来了很多不安全的因素,

从应用的角度,C语言比其他高级语言较难掌握。

与其他高级语言相比:C语言可以生成高质量和高效率的目标代码,故通常应用于对代码质量和执行效率要求较高的嵌入式系统程序的编写。C语言的编程概念较少,标准库也较小,更易于学习。

适合人群:

非常适合初学者入门。

Java

Java是一门面向对象编程语言,不仅吸收了C 语言的各种优点,还摒弃了C 里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。

优点:

对于很多人来说,最想知道的是java能干什么,java技术的应用无处不在,网页、手机系统、软件、游戏等,而且现在Java岗位也很多。未来很长一段时间内,在发展前景、就业薪资、晋升路线等方面很有优势。

缺点:运行速度慢,这是众所周知的,Java删除了指针,所以不如C/C 等语言灵活。

与其他高级语言相比:跨平台性,提供的API更新及时,最大优点是开源

适合人群:

学习Java适合有一定的逻辑思维能力的人,并且对Java很有兴趣

python

优点:

简单:阅读一个良好的python程序就感觉像是在读英语一样。

易学:Python极其容易上手有极其简单的说明文档 。

易读、易维护:风格清晰划一、强制缩进,用途广泛

缺点:

单行语句和命令行输出问题:很多时候不能将程序连写成一行

给初学者带来困惑:独特的语法

运行速度慢:这里是指与C和C 相比。一些针对非重要部位的加快运行速度的补丁通常不会被合并到Python内。所以很多人认为Python很慢。

与其他高级语言相比:

Python源代码通常具备更好的可读性,并且能够支撑大规模的软件开发。

适合人群:可以说python任何人都可以学

C

C 是C语言的继承,它既可以进行C语言的过程化程序设计,又可以进行以抽象数据类型为特点的基于对象的程序设计,还可以进行以继承和多态为特点的面向对象的程序设计

优点:

几乎所有的操作系统都支持C/C ,跨平台性非常好,C 功能在C的基础上增加面向对象的特点,代码可读性好,运行效率高,在大项目上具有优势。

缺点:

没有垃圾回收机制,容易引发内存泄露, 学习起来相对困难。

与其他高级语言相比:

不完全面向对象,但是在底层有更优秀的表现,C#、VB、JAVA能做到的,C 也一定能做到,C 能做到的,C#、VB、JAVA缺不一定能做到。

适合人群:建议有编程基础的人学

C#

C#是由C和C 衍生出来的一种安全的、稳定的、简单的、优雅的面向对象编程语言。它在继承C和C 强大功能的同时去掉了一些它们的复杂特性(例如没有宏以及不允许多重继承)。

优点:C#的IDE功能非常强大,文档包含多国语言,运行平台在用户量极大的windows上内置。C#语法比java更优雅,有更先进的语法体系。

缺点:作为微软的产品,它不能帮助其它操作系统,语言追求稳定、严谨,而不出现任何错误。C#的很多常用的工具类因为其使用的局限性(如菜鸟用了就会出错)而不被公开

与其他高级语言相比:

C#良好兼容了值类型/引用类型,解决了其他语言没解决好的问题,充分利用栈空间,做了一部分C/C 擅长的事

适合人群:

目前主要是做游戏开发,unity3D引擎游戏开发就是用C#写的,cocos2d也用c#。

visual Basic

Visual Basic(简称VB)是Microsoft公司开发的一种通用的基于对象的程序设计语言,为结构化的、模块化的、面向对象的、包含协助开发环境的事件驱动为机制的可视化程序设计语言。是一种可用于微软自家产品开发的语言。

优点:简单入门快,应用面广,Microsoft办公软件全系列支持VBA(visual basic for application)

缺点:有点老,原生不支持多线程,处理稍微复杂点,效率会很低下,很多精彩内容没法使用,仅支持Unicode文件的处理,VB不适合编程,因为VB对硬件底层相对疏远

与其他高级语言相比:属于非纯面向对象语言一般采用结构化的设计方法由于VB可以做windows程序

适合人群:

对这个感兴趣的人,或者需要使用office里的宏命令的人

javascript

JavaScript(简称“JS”) 是一种具有函数优先的轻量级,解释型或即时编译型的编程语言。JavaScript 基于原型编程、多范式的动态脚本语言,并且支持面向对象、命令式和声明式(如函数式编程)风格。

优点:

不需要编译器,因为web浏览器使用html解释它,比其他编程语言更容易学习;错误更容易发现,可以跨多个浏览器、平台工作,比其他编程语言更快、更轻量级;

缺点:

容易受到攻击,可用于在用户的计算机上执行恶意代码,可以在不同的设备上以不同的方式呈现,从而导致展示效果不同

与其他高级语言相比:

JavaScript是一种脚本语言,其他的高级语言可以开发出各种各样的软件,而JavaScript是单独运用在网页前端的一种脚本语言,如果说html是网页的框架,那么css是网页的美工,JavaScript就是让网页动起来的人了

适合人群:

大学生,设计师等喜欢前端的人

php

PHP脚本程序主要应用于Web服务端开发,命令行和编写桌面应用程序。PHP支持和所有web开发语言之间的WDDX复杂数据交换。关于相互连接,PHP 已经支持了对Java对象的即时连接,并且可以透明地将其用作PHP对象。

优点:

跨平台,性能优越,跟Linux/Unix结合别跟Windows结合性能强45%,并且和很多免费的平台结合非常省钱,支持N种数据库。(N >= 10);

语法简单;有很多成熟的框架,有成熟的面向对象体系,能够适应基本的面向对象要求。

适合开发大型项目;目前已经很多大型应用都是使用PHP,比如淘宝网、Yahoo、163、Sina等等大型门户,有很多开源的框架或开源的系统可以使用,使用成本低 (linux apache mysql php内核)

缺点:

对多线程支持不太好,大多数时候我们只能简单的模拟去实现的。

语法不太严谨,比如变量不需要定义就可以使用,在c,java,c 中变量是必须先定义以后才可以使用的。

PHP的解释运行机制。这种运行机制使得每个PHP页面被解释执行后,所有的相关资源都会被回收。也就是说,PHP在语言级别上没有办法让某个对象常驻内存。

与其他高级语言相比:

优势在于开发快,简单,易于维护,前端能力突出。

微信端的开发需求较多,PHP需求量还是挺大。

一旦涉及大数据、高安全性,那么PHP与Java相比,就差远了。

总的来说是优势主要是开发进度快,成本低,易维护,最主要是市场需求还是有的。

适合人群:

所有人都适合可以学,只要你想。

assembly language

汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。汇编语言不像其他大多数的程序设计语言一样被广泛用于程序设计。在今天的实际应用中,它通常被应用在底层,硬件操作和高要求的程序优化的场合。驱动程序、嵌入式操作系统和实时运行程序都需要汇编语言。

优点:

能够直接访问与硬件相关的存储器或I/O端口; 不受编译器的限制,对生成的二进制代码进行完全的控制; 对关键代码进行更准确的控制,避免因线程共同访问或者硬件设备共享引起的死锁; 能够根据特定的应用对代码做最佳的优化,提高运行速度; 能够最大限度地发挥硬件的功能;

虽然大多数软件专家是用高级语言开发新的应用软件的(那样做,程序会比较容易编写的维护),但是对于执行时间要求比较苛刻的部分,常常还要用汇编语言来重新编写;

常驻程序(当其他程序运行的时候,常驻在存储器中的程序)和中断服务例行程序(处理输入与输出的程序)几乎都是用汇编语言开发的。

缺点:

汇编语言是一种层次非常低的语言,它仅仅高于直接手工编写二进制的机器指令码,因此不可避免地存在一些缺点,编写的代码非常难懂,不好维护; 很容易产生Bug,难于调试; 只能针对特定的体系结构和处理器进行优化; 开发效率很低,时间长且单调

与其他高级语言相比:

用汇编语言编写的程序比用高级语言编写的程序所要求的存储空间与执行时间将显著减少;

汇编语言使程序员可以完成技术性非常强的任务,而使用高级语言,即使可能做到,恐怕也会非常困难;

适合人群:

想全面了解微机原理的程序员,汇编语言是必修语言。

sql

结构化查询语言(Structured Query Language)简称SQL,是一种特殊目的的编程语言,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统。

优点:

SQL在这里指的是关系型数据库

保持数据的一致性(事务处理)

由于以标准化为前提,数据更新的开销很小(相同的字段基本上都只有一处)一可以进行Join等复杂查询

能够保持数据的一致性是关系型数据库的最大优势。

缺点:

有大量数据的写入处理,为有数据更新的表做索引或表结构(schema)变更,字段不固定时应用,对简单查询需要快速返回结果的处理

与其他高级语言相比:

适合人群:

适合需要做数据处理的人

go

Go(又称 Golang)是 Google 的 Robert Griesemer,Rob Pike 及 Ken Thompson 开发的一种静态强类型、编译型语言。Go 语言语法与 C 相近,但功能上有:内存安全,GC(垃圾回收),结构形态及 CSP-style 并发计算。

优点:

Go 极其地快。其性能与Java或C 相似。在我们的使用中,Go一般比Python要快30倍,可直接编译成机器码,不依赖其他库,静态类型语言,但是有动态语言的感觉,静态类型的语言就是可以在编译的时候检查出来隐藏的大多数问题,动态语言的感觉就是有很多的包可以使用,写起来的效率很高。

语言层面支持并发,这个就是Go最大的特色,天生的支持并发。

内置runtime,支持垃圾回收,简单易学,丰富的标准库,跨平台编译,内嵌C支持

缺点:

Go 语言没有一个主要的框架,如 Ruby 的 Rails 框架、Python 的 Django 框架或 PHP 的 Laravel,

Go 语言通过函数和预期的调用代码简单地返回错误(或返回调用堆栈)而帮助开发者处理编译报错,但很容易丢失错误发生的范围,因此我们也很难向用户提供有意义的错误信息。

Go 语言的软件包管理绝对不是完美的。默认情况下,它没有办法制定特定版本的依赖库,也无法创建可复写的 builds。

与其他高级语言相比:执行性能好。虽然不如 C 和 Java,但通常比原生 Python 应用还是高一个数量级的。内存占用也非常省。

适合人群:从事Web开发、微服务、分布式,密码学安全、区块链系统、区块链应用行业的人

,