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

今天的主题是:探讨一下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. Java - split()函数和trim()函数的使用方法

    split()函数和trim()函数的使用方法 本文地址: http://blog.csdn.net/caroline_wendy/article/details/24465141 详细參考Java ...

  2. Java类加载机制?

    深入研究Java类加载机制 类加载是Java程序运行的第一步,研究类的加载有助于了解JVM执行过程,并指导开发者采取更有效的措施配合程序执行. 研究类加载机制的第二个目的是让程序能动态的控制类加载,比 ...

  3. python itertools

    1 product 1.1 一个generator函数 因此它的返回值是一个iterator,可以用for遍历. 1.2 计算product的参数分类 1.2.1 dict和list 只用了dict的 ...

  4. Linux的进程优先级NI和PR到底有什么区别

    Linux的进程优先级NI和PR到底有什么区别 - 51CTO.COM http://os.51cto.com/art/201605/511559.htm

  5. PP-判断生产订单状态(关闭)

    方法一.工单号通过 resb找到对象号 然后找到状态为I0045利用表JEST与TJ02T . 方法二.函数'STATU_CHECK' 检查工单状态为'I0045' 则为已做技术性关闭. READ T ...

  6. 创建cell的三种方式

    方式一 注册cell -> 无需为cell绑定标识符 [使用UIViewController完成!] l  1> static NSString * const ID = @"c ...

  7. Ural2040:Palindromes and Super Abilities(离线&manecher算法)

    Dima adds letters s1, …, sn one by one to the end of a word. After each letter, he asks Misha to tel ...

  8. QT笔记1

    1 第一个就是helloworld窗体啦 #include <qapplication.h> #include <qpushbutton.h> int main( int ar ...

  9. 任务42:EF Core Migration

    任务42:EF Core Migration 右边的是在VS2017中使用的命令,左边是在VSCode 的DOS窗体中使用的 最新版本的core 2.2.1的 版本创建以后已经没有model类了. 下 ...

  10. silverlight 4中datagrid列标题和列内容居中问题,增加自增长列

    转载:http://www.cnblogs.com/guoyuanwei/archive/2011/01/02/1924163.html 命名空间:xmlns:Primitives="clr ...