各个流行语言优缺点对比及其适用场景

主流编程语言排行榜

以下是TIOBE发布的2019年1月份的编程语言排行榜,我只截取了前20。TIOBE编程语言排行榜是编程语言流行趋势的一个指标,每月更新,这份排行榜排名基于互联网有经验的程序员、课程和第三方厂商的数量。排名使用著名的搜索引擎(诸如Google、MSN、Yahoo、Wikipedia、YouTube以及Baidu等)进行计算。请注意这个排行榜只是反映某个编程语言的热门程度,并不能说明一门编程语言好不好,或者一门语言所编写的代码数量多少。

这个排行榜可以用来考查我们的编程技能是否与时俱进,也可以在开发新系统时作为一个语言选择依据。
在这里插入图片描述

Python

它很容易上手,作为解释型非编译的脚本语言来说,优缺点也很明显。

优点缺点
简单,易掌握,带来了巨大生产力执行速度低于编译型语言,Python3和2不兼容
易于学习,广泛的工具及功能库(特别是人工智能方面)代码不能加密,很多时候必须开发源码
移植性很强(包括嵌入式产品),粘合剂语言(不同语言高效拼接,组合使用)线程不能利用多CPU,GIL即全局解释器锁,任何时刻仅有一个线程在执行

目前很多人工智能的算法都是用Python来实现的,在AI的领域Python的地位还是很高的。

PHP

它也很容易上手,也是解释型非编译的脚本语言。

优点缺点
简单,易掌握,开发速度快对多线程、核心异步网络的支持不太好
框架多,开源项目多目前只支持web开发,对桌面应用和手机应用支持不好
有很多公共类库和插件提供的数据结构和函数的接口粒度比较粗

目前PHP更适合需要快速开发的Web程序,业务开发、快速实现的利器。

Golang

简称Go语言,它是一个有动态语言感觉的静态语言,写起来的效率很高。

优点缺点
简单,易掌握,开发速度快,效率高软件包管理不支持版本,有时候升级容易导致项目不可运行,所以需要自己控制相应的版本信息
可直接编译成机器码,不依赖其他库,glibc的版本有一定要求,部署就是扔一个文件上去就完成了垃圾回收器(GC)不太完善,同时并发很大的情况下,处理很大的日志,GC没有那么快,内存回收也不是很给力
内置Runtime,支持垃圾回收,并行和并发效果很好goroutine(协程)的调度时机,具体什么时候会被执行,是不确定的,会导致逻辑出错

Go的开发者包括Unix的创始人和C语言的创始人,更适合高并发的网络程序和本地程序。

Java

Java的热度一直让它处于编程语言排行榜首位的位置的面向对象的静态语言。

优点缺点
市场需求旺盛,国内外大公司岗位多,就业容易,有大量的开源库对内存的使用率高于C++
Google的Android是目前人气最高的移动平台,Java是Android的语言基础Java程序启动时间较长
一次编写,到处运行,强大的可伸缩性,多样化和功能强大的开发工具支持Java学习的复杂性越来越高,由于无法定义一个好的标准开发框架,每个程序员来到新的公司时必须先了解框架,延缓了开发的时间

Java更适合做Android开发,以及比较大的项目的后台开发。

C

C语言是一门面向过程的静态语言。

优点缺点
代码量小,运行速度快,功能强大危险性高,开发周期长
语法机制灵活,可以直接访问硬件复用性差,维护性不高,扩展性不高,可读性不高
几乎现代编程语言都脱胎于C语言,被誉为“上帝语言”不具备运行时的检查机制

C更适合广泛应用于计算机的底层开发,例如系统软件:编译器,JVM,驱动,操作系统内核,还有各种嵌入式软件,固件等。

C++

C++是C语言的继承,是一门面向对象的静态语言。

优点缺点
运行效率高,高效安全内容较多,学习难度大
跨平台性非常好,几乎所有处理器和操作系统都支持C/C++为了满足程序的复用性和可读性,往往程序尺寸比较大,同比其他语言代码量大
C++功能在C的基础上增加面向对象的特点,代码可读性好,复用性高,运行效率高相对java来说,没有垃圾回收机制,可能引起内存泄漏,更依赖程序员手动释放

C++对程序员的要求较高,学好了是“万金油”。前至各种客户端,后至网络编程,硬件底层。因为C++是广博的,它涵盖面如此之大,让它如何能简单。

C#

C#是微软公司发布的一种面向对象的静态语言。

优点缺点
类库多,上手快,利于快速开发性能上的匮乏
全面集成.Net库,不仅仅是一个语言,更像是一个极具匠心的产品移动平台和硬件领域的比较乏力
相比java,有更先进的语法体系(后生的,很多语法都是其它语言的改进)作为微软的产品,到了非微软的操作系统上,很多framework里面的类库就不好使了

C#目前更适合于Windows的桌面应用开发,在web开发也有市场。

已标记关键词 清除标记
概要介绍: 本课程主要是介绍并实战一款java中间件~redisson,介绍redisson相关的核心技术栈及其典型的应用场景,其中的应用场景就包括布隆过滤器、限流器、短信发送、实时/定时邮件发送、数据字典、分布式服务调度等等,在业界号称是在java项目里正确使用redis的姿势。本课程的目标就在于带领各位小伙伴一起学习、攻克redisson,更好地巩固自己的核心竞争力,而至于跳槽涨薪,自然不在话下!  课程内容: 说起redisson,可能大伙儿不是很熟悉,但如果说起redis,想必肯定很多人都晓得。没错,这家伙字如其名,它就是架设在redis基础上的一款综合性的、新型的中间件,号称是java企业级应用开发中正确使用redis的姿势/客户端实例。 它是架设在redis基础之上,但拥有的功能却远远多于原生Redis 所提供的,比如分布式对象、分布式集合体系、分布式锁以及分布式服务调度等一系列具有分布式特性的对象实例… 而这些东西debug将在本门课程进行淋漓尽致的介绍并实战,除此之外,我们将基于spring boot2.0搭建的多模块项目实战典型的应用场景:对象存储、数据字典、短信发送、实时/定时邮件发送、布隆过滤器、限流组件、分布式服务调度....课程大纲如下所示: 下面罗列一下比较典型的核心技术栈及其实际业务场景的实战,如下图所示为redisson基于订阅-发布模式的核心技术~主题Topic的实际业务场景,即实时发送邮件: 而下图则是基于“多值映射MultiMap”数据结构实战实现的关于“数据字典”的缓存管理: 除此之外,我们还讲解了可以与分布式服务调度中间件dubbo相媲美的功能:分布式远程服务调度,在课程中我们动手搭建了两个项目,用于分别充当“生产者”与“消费者”角色,最终通过redisson的“服务调度组件”实现服务与服务之间、接口与接口之间的调用!  课程收益: (1)认识并掌握redisson为何物、常见的几种典型数据结构-分布式对象、集合、服务的应用及其典型应用场景的实战; (2)掌握如何基于spring boot2.0整合redisson搭建企业级多模块项目,并以此为奠基,实战企业级应用系统中常见的业务场景,巩固相应的技术栈! (3)站在项目管理与技术精进的角度,掌握对于给定的功能模块进行业务流程图的绘制、分析、模块划分、代码实战与性能测试和改进,提高编码能力与其他软实力; (4)对于Java微服务、分布式、spring boot精进者而言,学完本课程,不仅可以巩固提高中间件的实战能力,其典型的应用场景更有助于面试、助力相关知识点的扫盲! 如下图所示: 关键字:Spring Boot,Redis,缓存穿透,缓存击穿,缓存雪崩,红包系统,Mybatis,高并发,多线程并发编程,发送邮件,列表List,集合Set,排行榜,有序集合SortedSet,哈希Hash ,进阶实战,面试,微服务、分布式 适用人群:redisson学习者,分布式中间件实战者,微服务学习者,java学习者,spring boot进阶实战者,redis进阶实战者
©️2020 CSDN 皮肤主题: 代码科技 设计师:Amelia_0503 返回首页