文章首发于终端研发部,转载,请标明原文链接

今天的主题是:探讨一下6月份语言排行还有我的最新展望!

最近,编程语言排行榜前几天发布更新了,在最新的TIOBE编程语言排行榜中,Java依旧位居第一,但前十名内有所变化,这里我列举了从第一到第十的语言种类:

第一:Java
第二:C
第三:Python
第四: C++
第五: Visual Basic.NET
第六:C#
第七:JavaScript
第八:PHP
第九:SQL
第十:汇编语言。

TIOBE 6月编程语言排行 1-20

image

第 21-50 名的编程语言排行

image

但从前20名来看,值得我们一关有,Python 的排名变化尤其值得关注,Go语言跃进了前15,Swift 和Dart略有较大的提升

  1. Python 排名再度超越 C++,拿下第三名的位置
  2. Go 由上个月的第 19 名跃升到本月的第 15 名
  3. Swift 排名超过 Objective-C,几乎挺进前十
  4. Dart 和 TypeScript 的排名均有较大的上升
  5. PHP 排名与上个月相比上升了一名,但整体呈下降趋势

对于Python来说,排名一直以来都持续上升,大概是Python所做的领域比较多吧,也有很多人本着人工智能去的, 自动化测试,爬虫之类的,也有用python做web全栈开发的。

有人热衷于Go语言 , GO语言之所以厉害,大概是因为它在服务端的开发中,总能抓住程序员的痛点,以最直接、简单、高效、稳定的方式来解决问题本身就支持高并发。

至于PHP,有人说他简单,快速开发,网站更适合用PHP这种轻量级的来做。因此,有人说,GO+Python,天下无敌。

至于Dart和swift,有人说,Dart是JavaScript的替代品,除非Swift可以转换为JS。 作为一种现代语言,它看起来像一种旧语言,因更倾向于做移动和web网站开噶。和Dart一样,Swift也具有跨平台,更安全,更快,Swift摒弃了很多OC的历史包袱,OC语法更直接。

好了,说到这里,我已经不忍心在吹了。我为什么这么说呢?先容我分析一下最近的行情,对于移动端来说,很多公司由原生转向了轻量级的h5,Vue或Flutter之类的,想一种语言同时多个平台,这样导致了很多的移动开发者需要学习更多的语言和 知识来应对现在的情况,不得不说,作为移动开发者,确实需要更多的精力。

当然也有会转向其他方向的,比如转前端,转后台,至于其他方向,我最近也听说有五年的PHP大神转向java,Python转Go,GO转PHP,PHP转Python的,目前而言,很多人学的不精,因各种原因,转方向,这样网格式的跳转貌似在一部分IT人群中成为一个趋势,有人说为了生活,也是没办法。

我为什么建议你要有深度

很多人学习任何东西,只停留在编写「Hello World」的水平,甚至两三年,不愿意去尝试一些自己不了解的领域,去做一些超过自己能力范围的事情 , 有些人只会写Activity,listView的数据展示,有些人工作两三年也还是只会CRUD,遇到问题只停留在Q群或者Google编程,殊不知,在当前的大环境下,离开了当下,你也可能就彻底失业了。如果你只想做一个搬运工, 整天的去搬运代码,那我觉得,学计算机语言还是多多益善,不需要搞清楚其原理,只需要明白如何去用将业务实现出来就行了。

做技术深度的同时,当然,前提,首先保证你有稳定的饭碗,如果,你当下公司面临转型,也可以跟着一块,比如移动端开发Android方向可以选择转Javaweb方向,也可以选择大前端,毕竟在大环境下,这两个方向也是一个不错的开始。

所以,个人觉得每种语言都有其自己的优势,找到自己的短板并补足自己的短板。(这里我并没有觉得评判哪个语言不好)就像一位网友说的那样,什么前台技术最好?什么后台技术最好?其实参加工作多年后,我才真正开始意识到,写程序用什么语言不重要!重要的是研究探索让计算机(服务器)可以跑得更快,用最少的内存完成最多的工作。用最优的数据结构存储最多的数据。用最好的数据库设计更快地增删查改;而绝不是去将每一门计算机语言泛泛而学,不理解其中的原理,就肯定写不出最好的程序,我们公司的很多大牛都是开发Java的,他们对处理线程,进程,管程,内存,时间片的功力非常深厚,所以他们写的代码比我写的代码,好很多很多,尽管他们是用Java写的,没有用python,也没有用Go,产品上线后,产品的执行效率仍然很高啊,效果也很好。

总结

于哥更推荐想成为某种语言编程大牛的人,不建议只想搬运带代码的码农。学习计算机的时候要选准一门语言,就去用好它,然后去理解它,去深究它是怎么执行的,比如看源码,看博客上别人用这门语言如何去完成一个业务; 然后根据自己的理解进行总结。

最后希望大家看到这篇文章,都能有所启发,同时也希望大家在技术这条道路上走得更高!

更多阅读

在百人团队参与游戏研发体验

三条命令解决断网问题
一波Flutter酷炫特效来袭

Java锁,真的有这么复杂吗?

工作了几年,终于转型做了管理!

记五月的一个Android面试经

浅谈final、finally、finalize有什么不同?

如果有什么问题,也可以加入我的群进行学习和技术。

6月份最新语言排行:Java,Python我更看好谁?的更多相关文章

  1. 选择排序的3种语言实现方法(C java python)

    1.选择排序的思路是:遍历数组,第一遍找出所有成员的最小值,放到数组下标为0的位置,第二遍从剩余内容中,再次找出最小值,放到数组下标为1的位置,以此类推,遍历完成所有的数组内容,最后结果就是:数组是按 ...

  2. V语言横空出世,C/C++/Java/Python/Go地位不保

    V语言已在github正式开源,目前已收获近9000星,引发开发者的强烈关注. V语言到底是怎样一门语言?已经有了C/C++/Java/Python/Go..., 我们还需要另外一门语言吗? 先看看V ...

  3. 编程开发(C/C++&Java&Python&JavaScript&Go&PHP&Ruby&Perl&R&Erlang)

    使用Docker快速部署主流编程语言的开发.编译环境及其常用框架,包括C.C++.Java.Python.JavaScript.Go.PHP.Ruby.Perl.R.Erlang等. 在今后采用编程语 ...

  4. 常用脚本语言Perl,Python,Ruby,Javascript一 Perl,Python,Ruby,Javascript

    常用脚本语言Perl,Python,Ruby,Javascript一 Perl,Python,Ruby,Javascript Javascript现阶段还不适合用来做独立开发,它的天下还是在web应用 ...

  5. Spring Cloud Netflix多语言/非java语言支持之Spring Cloud Sidecar

    Spring Cloud Netflix多语言/非java语言支持之Spring Cloud Sidecar 前言 公司有一个调研要做,调研如何将Python语言提供的服务纳入到Spring Clou ...

  6. Python语言学习之Python入门到进阶

    人们常说Python语言简单,编写简单程序时好像也确实如此.但实际上Python绝不简单,它也是一种很复杂的语言,其功能特征非常丰富,能支持多种编程风格,在几乎所有方面都能深度定制.要想用好Pytho ...

  7. D16——C语言基础学PYTHON

    C语言基础学习PYTHON——基础学习D16 20180927内容纲要: 1.JavaScript介绍 2.JavaScript功能介绍 3.JavaScript变量 4.Dom操作 a.获取标签 b ...

  8. D14——C语言基础学PYTHON

    C语言基础学习PYTHON——基础学习D14 20180919内容纲要: 1.html认识 2.常用标签 3.京东html 4.小结 5.练习(简易淘宝html) 1.html初识(HyperText ...

  9. java的this static public protected private abstract interface 在python的对应,java python一些区别

    1.因为工作的原因,最近使用了三个多月的java作为主力语言.很早之前在菜鸟教程也看过java文档两遍,但实践少,处于能看懂写出来不流畅的状态(对于java必须要略懂,不能能看到就头疼跳过,因为现在百 ...

随机推荐

  1. 优化 html 标签 为何能用HTML/CSS解决的问题就不要使用JS?

    优化 html 标签 2018年05月11日 08:56:24 阅读数:19 有些人写页面会走向一个极端,几乎页面所有的标签都用div,究其原因,用div有很多好处,一个是div没有默认样式,不会有m ...

  2. mysql学习笔记之mysql数据库的安装

    1.执行mysql安装包选择自己定义安装(安装路径不要带中文,否则安装会出错! ) 2.一个mysql想要操作成功须要有三部分:server端,数据段,数据. 3.server软件文件夹: 4.数据文 ...

  3. Android开发文档翻译之-Services

    Service是一种能长期在后台运行同一时候不须要与用户进行交互的应用组件.其它组件能够开启service,开启后service能够自行运行及时用户已经切换到其它的应用.此外,组件能够与service ...

  4. 更改Mysql登录密码

    版本号49之前的跨域设置 在Windows命令行下修改mysql数据库密码步骤如下: 1.通过dos命令进入mysql的bin目录: 2.输入“mysql -uroot -p”,回车进入mysql命令 ...

  5. Vue实例及生命周期

    1,Vue实例生命周期. 有时候,我们需要在实例创建过程中进行一些初始化的工作,以帮助我们完成项目中更复杂更丰富的需求,开发,针对这样的需求,Vue提供给我们一系列的钩子函数 2,Vue生命周期的阶段 ...

  6. java8--NIO(java疯狂讲义3复习笔记)

    NIO采用内存映射文件的方式处理输入输出,NIO将文件或文件的一段区域映射到内存中,这样就可以像访问内存一样来访问文件了(这种方式模拟了操作系统上的虚拟内存的概念),通过这种方式来进行输入输出比传统的 ...

  7. high-level operations on files and collections of files

    11.10. shutil — High-level file operations — Python 3.6.5 documentation https://docs.python.org/3/li ...

  8. cocos2d-x 打包成so文件之后,假设出现错误,能够使用ndk-stack来查看里面的异常

    cocos2d-x  打包成so文件之后,假设出现错误,能够使用ndk-stack来查看里面的异常 详细方法.自行百度.

  9. WebService_使用三要素

    一.Java中WebService规范 JAVA 中共有三种WebService 规范,分别是JAX-WS.JAX-RS.JAXM&SAAJ(废弃). 1.JAX-WS规范 JAX-WS 的全 ...

  10. caioj1421&&hdu2167: [视频]【状态压缩】选数

    %hz大佬..这道题的状态压缩简直匪夷所思(其实是我孤陋寡闻,而且我以前的博客竟然写了这题..水啊) 嗯这题可以发现,我们可以用一个二进制表示一行的状态,1表示选0反之,可以发现行与行之间可选的范围是 ...