文章首发于终端研发部,转载,请标明原文链接
今天的主题是:探讨一下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略有较大的提升
- Python 排名再度超越 C ,拿下第三名的位置
- Go 由上个月的第 19 名跃升到本月的第 15 名
- Swift 排名超过 Objective-C,几乎挺进前十
- Dart 和 TypeScript 的排名均有较大的上升
- 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有什么不同?
如果有什么问题,也可以加入我的群进行学习和技术。