查看原文
其他

2020年编程语言趋势解读:编程世界之未来握于谁手?

以下文章来源于PolkaBase ,作者ShawnRingLin


来源 | PolkaBase
作者 / ShawnRingLin
责编 | Carol
出品 | 区块链大本营(blockchain_camp)



2019年关将至,也意味着2010年代即将过去,迎来2020年代。


全球的程序开发者也在最后一个月组织了各种盛会。


举办十数年之久的CSDN大会也将如期举行了,从最早的技术开发者大会一展到今年各种分展例如12月中旬北京的「2019中国区块链开发者大会」


在整个程序开发行业,编程语言历经了从面向过程的C、到面向对象的C++、再到两个改装版Java和C#


区块链行业的编程语言也发生了很大的变化:2018年度,根据德勤报告,应用于以太坊和Hyperledger C++是最青睐的语言,谷歌开发的Go语言则是是第二大区块链开发语言。


在2019年编程语言的应用又有哪些趋势呢?本文将会为您解读。



有潜力成为主流


Rust - www.rust.cc


自2015年5月Rust1.0版发布以来大约4年内,我们见证了Rust语言的快速增长, 虽然目前在传统金融资本圈的分析师们更多应用的是Excel + Wind、Excel + Bloomberg、R-studio或Python,。但在网络安全领域、或者更多地在分布式网络领域,Rust可以称为最为强调安全的编程语言,由此广泛应用于区块链项目。


Rust语言是一门保证内存和线程安全的语言、具有“高并发性”、“零开销抽象”、“保证线程安全”等特性。例如Libra的Move语言是用Rust编写的;以及以太经典、波卡Polkadot, “2010 - 50 BTC”古灵Grin、清华姚班Conflux-rust项目。


我相信2020年Rust语言有能力和前辈掰掰手腕。如何能定义为主流?比如在2020年某天有高校开始将Rust正式引入课程。这将为会未来的开发工程师创造一波新的造富浪潮和衍生的生态产业。


图:不同编程语言的薪酬和资历分布 (StackOverflow, 2019)


上图是全球约64000名受访者的年薪($)与自身编程资历(年)的分布点状图。


即使是同样年份的从业经验,例如平均从业8年,Rust语言开发者的薪酬约为$72000。竖轴比较,要比JavaScript和HTML的年薪高出一半


横轴比较,我们要对Polkadot用来做转接的编译语言Wasm(WebAssembly)致敬,您们把不同平行链的高级语言编译成Wasm,成为能够通用理解的低级语言,但很可惜工资并没有体现出这份成果的伟大。


此图表上方的语言(例如R和Python),也能在很短的专业从业时间内(7年左右)获得可观的年薪。如果从纯物质角度,可以说Rust、R、Python是具有较高性价比的学习方向。

 

R和Python广泛用于数据分析、数据可视化、量化交易等金融行业、因此熟悉程度比Rust要高很多。Python也是国内某地产大佬立志要学习的语言。不过出乎意料的是,最受欢迎的语言并不是R与 Python,而是Rust。

 

最受喜爱的编程语言排名(StackOverflow, 2019)

 

最喜爱的语言的投票比例上,Rust比其他前五名(Python、TypeScript、Kotlin、WebAssembly)远远领先有10%+左右。Rust语言在国外有着极活跃的技术开发者社群、随着Rust作为Libra的编程语言后,Rust的热度更是进一步上升。

  

 

相比于Rust语言在海外递增的受欢迎程度,国内百度端的Rust氛围就相对比较冷淡了,更多与Rust相关主题的是Rust怎么念、以及一个同名游戏。

 

图:在经历A-E等热点新闻播报后,热度再次减退


很明显,海内外的对比,告诉开发者们是时候要去接触Rust语言了,如果要选择一门新的编程语言进行尝试的话。都说C或C++语言编程背景的开发者入门会更轻松,但在“最可怕(dreaded)编程语言排行榜”C与C++语言赫然在列:

 

最可怕(dreaded)的编程语言排行榜 (StackOverflow, 2019)

 

所以开发者如果仍坚持使用C、C++、或者是Java等老牌语言、或者是VBA等更有历史的语言(比尔盖茨起家语言,现在主要用于Excel), 那何尝不值得一试呢?



GraphQL的应用会持续增长



随着应用程序复杂性的增长,我们对数据消耗的需求也在增加。与传统的REST API相比,我认为这是一种非常出色的获取数据的解决方案,实现了前后端分离,GraphQL是一种开源的数据交互方案。


虽然典型的REST API需要从多个URL进行加载,但是GraphQL API可以在单个请求中获取应用程序需要的所有数据。



在各种不同环境和语言中,各种规模的团队都使用GraphQL为移动应用程序、网站和API提供支持。


如果您有兴趣学习GraphQL,可以查看该教程。http://bit.ly/2O6jSlh



Progressive Web Apps(PWA)


渐进式WebApps是不可忽视的力量。

 

渐进式Web应用程序(PWA)是一种通过将Web的最佳功能与顶级质量的移动应用程序相结合来构建应用程序的新方法。



与本地特定平台的开发人员相比,有更多的Web开发人员在狂奔。一旦大公司意识到他们可以重新利用其Web开发人员来开发渐进式Web应用程序,我相信我们将会看到大量的PWA。

 

但是,较大的公司需要一段时间才能适应,这对于技术而言是很正常的。渐进式部分通常会落到前端开发中,因为它主要是与Web Workers API(本机浏览器API)进行交互。

 


网络应用程序无处不在。随着程序增多,编写单个交叉兼容的PWA可以减少工作量、节省更多时间。


了解PWA更多,可以点击:http://bit.ly/37t8jMD



WebAssembly(Wasm)得到更多曝光


WebAssembly(简称Wasm)是基于堆栈的虚拟机的二进制指令格式。Wasm被设计为可移植的目标,用于编译C,C ++和Rust等高级语言。Wasm还支持在Web上为客户端和服务器应用程序进行部署。PWA也可以使用Wasm。


WebAssembly有很多特点能与Rust结合,并服务于区块链网络高并发性的安全要求、以及开放式网络的要求。


  • 高效快捷:WebAssembly旨在通过利用广泛平台上可用的通用硬件功能,以本机速度执行。

  • 安全:WebAssembly描述了一种内存安全的沙盒执行环境,该环境甚至可以在现有JavaScript虚拟机内部实现。

  • 开放且可调试:WebAssembly旨在以文本格式漂亮地打印,以便手工调试,测试,实验,优化,学习,教学和编写程序。

  • 形成开放式网络平台的一部分


youtu.be/qDTpLKJ6e4M


换句话说,Web Assembly是一种将JavaScript技术与不同层次的技术联系起来的桥梁。


性能是关键,随着数据量的增长,保持良好性能将变得更加困难。那就是C ++或Rust的低级库发挥作用的时候。我们将看到更大的公司开始重视Web Assembly的高效。



React将延续统治



到目前为止,React是最流行的前端开发JavaScript库,这也是有原因的。 构建React应用很有趣且容易。React团队和社区也贡献了构建程序的丰富经验。


React — https://reactjs.org


Vue、Angular和React项目相比,如果库的目标是完成工作,那么应将精力集中在完成工作上,而不是集中在框架上。争论什么是最好的框架是完全没有用的。选择一个框架,然后将所有精力用于构建东西。


如果您觉得自己受到启发,请从此列表中选择一些内容,并立即构建!http://bit.ly/2D5AHGG



大而不倒:JavaScript


在2010s年代,尚且能说编程世界还是JavaScript(JS)奠定的天下。毕竟,几乎所有网站都是用JS编写的,JS的使用范围、以及可少可多的应用程度,JS开发者被称为”非真正的开发者”,因为JS已经深深地应用在Netflix、Facebook和Google等大牌科技公司之中。

 

图:2019-2020年JS新功能:http://bit.ly/3306P9m

 

如果不是为未来步入职场作准备,现在JS市场中的开发人员待遇正处于行业成熟的中期。 有大公司撑腰、就业需求依然充分。围绕着多个年龄层段的顶尖开发者们,JS生态正处于壮年时期。

 


与世界的差距


用一张图结尾:下图是StackOverflow平台在收集的全球编程开发者与学院学生所囊括的世界编程从业者与未来从业者的搜索热度图谱。


图:专业编程开发者以及高校学生的讨论热度


在编程世界里,当我们说某技术还是有点冷门的时候,可能确实也意味着我们在新领域已经落后于世界了。这可以解释为:个人的技术嗅觉没触及、公司没这个要求、大到宏观产业没有这类需求。


如果你很好奇在新一年的编程世界可能发现哪些有趣的事或变化,那你也算来对地方了。但我也可能表述有误----只能算是有根据地推测未来编程语言的趋势。没有人能预测未来,我们仅能做的是:


「预测未来的最好方法,就是创造它」





推荐阅读

猛戳"阅读原文"有惊喜哟

老铁在看了吗?👇

    您可能也对以下帖子感兴趣

    文章有问题?点此查看未经处理的缓存