在本文中,我们将看一看由我推荐的编程语言和框架列表,我相信在接下来的5年至10年中,对于开发者来说,这份列表中的语言和框架仍然会有用。同时考虑到我不希望该列表仅是另一个备受好评的编程语言推荐,尽管这过程由于每个人的偏好不同而带来困难,我仍然会精心挑选,收窄范围。同时,为了应对日新月异的程序发展,在记下想法时,我也不断思考编程范式和创新是如何随着时间演变的。
回顾
回顾2020年,过去的五年我们发生了很多变化,诸如区块链,机器学习、深度学习和量子计算等新趋势正在涌现。对于刚开始学习编程甚至是经验丰富的开发人员的人,最好是反思一下自己的位置和想要做的事情,以便在这个瞬息万变的动态领域保持专业。过时是一个永恒的现实,一直潜伏在我们的肩膀上。因此马上出发,开始新的知识之旅并习得新技术然后添加到您的工具栏中。
为什么对开发者来说,选择并学习正确的语言或框架很重要?
虽然,学习新的语言和框架对您而言是一笔不少的时间投入,无论是金钱还是工作时间,您都无法从中直接获得回报。但几乎每一年技术总是在变化,所以与时俱进的想法是很重要的,而选择正确的语言和框架甚至能改善生活,彻底改变您的业务方式,并且会极大地帮助开发及长期战斗能力。因此,您自然希望您所选择的语言和框架,是有价值并且不会过时的事物。
1
Rust
Rust是一种系统编程语言,旨在替代C和C ++开发。Rust具备了C和C ++的性能,可以更有效地帮助开发人员。对于那些使用C / C ++进行编程的人来说,一定能明白我这句话的意思。进入这个领域的新开发人员已经相当多。 Rust具有不断增长的用户基础。现在,有数百家公司将Rust用于开发语言,例如Dropbox,Yelp和Cloudflare。像Amazon最近宣布的虚拟化技术Firecracker之类的产品都是用Rust创建的,在StackOverflow的2016年开发者调查中,Rust也被评为“最受欢迎的”技术(这意味着它拥有最多的用户希望继续使用它)。
尽管与几十年来的其他语言相比,它相对较新,但令人惊讶的是,它具有大量可用库的清单,可用于加快开发工作。您可以在crates.io或GitHub上找到大部分您想要的内容。
Rust的一些关键功能:
速度和内存效率:由于它没有runtime或garbage collector,它可以全力为关键性能服务提供支持,也可以在嵌入式设备上运行,并且可以轻松地与其他语言集成。未来的5年和10年,因为我们将遇到硬件的限制,而Rust语言将更快,内存占用更少,能提高速度和响应能力,能使我们编写更节能的代码。
可靠性:Rust的丰富类型系统和所有权模型可确保内存安全性和线程安全性,并使您能够在编译时消除许多类的错误。
生产率:Rust拥有出色的文档,用户友好的编译器提醒哪里出错了。相较之下,众所周知,C ++代码的编译器消息很难解密。Rust的编译器更好,更有用。如果您想学习系统编程,以“ rustc”编译器作为指南将使您不必担心存储器安全性以外的其他问题。
2
Python
这些年来,Python的流行度一直在稳步上升,尤其是在过去10年中,急速跃升了Tiobe Index的前5名。Python用途广泛,它是一种非常实用的语言,非常适合许多实际场景。对于初学者来说,它是一种脚本语言,这意味着入门非常迅速,没有像Java这样麻烦的编译运行周期。本质上就是面向对象的语言,也就是说,您选择以面向对象的方式编程。Python已取代Java,成为在大学许多学术课程中默认的首选语言。对于初学者来说,开始安装python解释器运行非常容易:
$ print (‘hello world this is my. First program’)
就是这样,您的第一个程序是用Python编写的。
Python为未来铺平了道路。因此,它在未来5年或以后的意义必然是重大的。Python里配备诸如TensorFlow,Scikit-Learn,Dask等成熟库,这些库中有大量代码关于机器学习,深度学习,人工智能,大数据等新技术。可见,Python已经成为互联网上所有流行的数据科学中的世界编程语言。此外,Python还能实现分布式数据科学的大型可扩展计算,这可以用于量子计算。
Python已在企业和初创企业中广受好评。这些巨大的进步是在过去5年中取得的,因此,Python现在比以往任何时候都更加强大。同时,我们现在拥有广泛的平台,例如Reddit,建立在Python之上的Google库。我个人也常使用Python来编写脚本并快速自动执行许多平凡的任务,它是快速完成自由项目的宝贵语言。
如果您会使用Python,那就足够了。因为Python可以访问Django等网络框架,该框架是构建Web前端和后端应用程序的最好框架。其遵循DRY原理,以很少的代码和很少的编程经验即可快速构建应用程序。
3
Ruby
Ruby是另一种功能强大的高级编程语言,它可以使您轻松轻松地构建应用程序。Ruby作为一种面向对象的编程语言,对于那些有Python经验的人来说,Ruby语法看起来与Python非常相似。该语言还配备了构建复杂应用程序所需的所有工具。
许多硅谷初创公司已经在Ruby之上建立了自己的业务,其中包括Airbnb,Twitch,GitHub和Twitter。运行Ruby的全栈Web应用程序框架Ruby on Rails进一步巩固了其流行性。
Ruby的一些关键功能:
Ruby提供了强大又简单的代码库
有助于快速进行开发原型设计
由于学习难度低,新程序员可以轻松地上手
它是一种面向对象的编程语言,因此您可以在该范式的学习中必定会受益匪浅
4
Golang
Go(Golang)是Google所开发的一种相对较新的编程语言。最近它已经越来越流行。Go为多线程提供了出色的支持,由于,许多公司极度依赖于分布式系统,因此正在广泛地使用它。Go的设计旨在解决Google面临的紧迫问题。Google还将Go用作新项目的主要语言,并用Go替代其他语言。由于google与我们的日常生活息息相关,因此我们不可能否认它,因为它在可预见的未来仍将继续存在。
我十分同意Go是一门漂亮的语言,带有令人愉悦的语法。它作为动态类型语言及解释型语言,其在专业的易用性、性能、类型安全性与内存安全性之间取得了平衡。
Go的一些关键功能:
Go的主要功能之一是通过Goroutine和Channels。由于Go在设计上具有并发性,因此使您可以有效地使用CPU功能,擅长于云系统开发中的分布式系统,微服务。
轻量级,快速执行和快速开发,
较小的内存占用空间和较小的二进制文件大小
自动的Garbage collection
没有异常,Go自行处理错误。
等一下,您没看错。这对您意味着什么?与其抛出大量的try-catch异常并变得懒惰,不如让Go处理这些错误。考虑一下吧
有趣的事实
全球Go开发人员平均工资:每年109,483美元。在美国,使用这种顶级编程语言的平均年薪为$ 136K;
在2019年Stack Overflow开发者调查中,Go是全球收入第三高的语言;
Go编程语言是GitHub上第四活跃的语言。
5
GraphQL
当我们回顾过去,与今天相比,Web API设计相对简单,因为当时有REST表示状态传输标准,可从服务器检索数据,该标准通过URL访问数据。由于越来越多的移动设备使用,API变得更加复杂且由数据驱动,因此必须设计新方法以实现更好的数据检索。GraphQL数据不是静态数据之前的样子,所以创建这样的GraphQL会更加动态。GraphQL是基于REST的体系结构的现代替代方案,旨在解决其缺点。与REST不同,GraphQL允许请求客户端所需的特定数据,这与固定数据结构方法比起来更好。它的核心是从客户端应用程序查询数据库的语言。
在后端,GraphQL向API指定如何将数据呈现给客户端。GraphQL重新定义了开发人员使用API的工作,这些API提供了更大的灵活性并可以投放市场。它使前者能够发出精确的数据请求,并获得更多更多的数据,从而改善了客户端与服务器之间的交互。GraphQL最初由Facebook于2012年创建,通过其特定的数据提取功能在内部用于其移动应用程序,以减少网络内存的使用量。从那时起,GraphQL规范成为开源的。现在,主要的编程语言(例如Python,Java,C,Node.js等)都支持它。由于生态系统的迅速扩展,这使其成为在可预见的未来中,具有重要意义及独特的技术之一,GraphQL凭借其不断扩展的库和强大的工具(如Apollo,GraphiQL和GraphQL Explorer)成为有用的语言。
GraphQL的一些关键功能:
GraphQL速度更快,只需要选择要查询的字段就能完成任务
通过在其API后面集成多个系统,非常适合复杂的系统和微服务
GraphQL非常适合构建微服务架构,可将多个位置的数据聚合到单个API中,并通过单个API调用来获取数据
没有over -fetching和under -fetching的问题
即套即用的验证和类型检查
自动生成的API文档使您无需担心Swagger并可以直接到Github找出问题,寻找有关如何使用该规范的线索
没有版本控制的API演变是REST的常见问题,因为API的更新迫使您要么创建新的API要么在URL上加上版本前缀,并且常弹出不能删除的提示。通过使用GraphQL,您可以拥有一个不断自更新的版本,这使您的应用程序可以连续访问新功能并一直使用更干净,更可维护的服务器代码。
GraphQL并非试图取代REST,而是试图解决不同类型问题的两种不同方式。随着我们向大数据迈进,花一些时间来学习Graphql是很有意义的。
6
Angular
Angular是用于软件开发的TypeScript完整框架,是用于构建Web和移动应用程序的著名开源框架之一。
由Google开发。Angular是AngularJS完全重写的新版本。虽然从angularJS刚发布开始,它的地位一些动摇,但如今,Angular已发展成为一个全面的开发框架,其中包括构建Web和移动应用程序所需的所有工具和组件。该框架的优点在于它遵循清晰的路线图,每六个月发布一次新的主要版本Angular,如果您对长期使用有所了解,便会知道这确实很重要。
Angular的一些关键功能:
下面,我仅介绍Angular 9中已解决的功能,这些功能可能会解决您对性能的某些担忧。
Google为该框架提供了长期支持并不断对其进行改进。同时经常进行常规改进,以表明该框架具有强大的后盾,并且Google真的希望看到其成功。因此,了解Google对其进行的支持以及投资,就能知道该框架将在可预见的未来保持专业性和可用性
Angular 9的另一个主要功能是通过Ivy Compiler减少了大文件包,从而减小了占用空间。通过减小JavaScript包的大小,对于试图加速应用程序启动的开发人员来说,Ivy成为令人欣喜的改进
Angular9支持多种语言的应用程序,因此其国际化程度更高
7
JavaScript
Javascript是我真诚地向你推荐的语言,毫无疑问,这种语言将在未来几年依旧流行。因此,投资时间在这种语言将在未来得到回报。JavaScript不仅仅是一种客户端脚本语言,有了诸如Node JS,Angular和React之类的框架和库,您就可以在服务器端使用JavaScript以及进行用户界面开发。
JavaScript是Netflix,Facebook,Google等许多大型科技公司的心脏。因此,JavaScript作为一种语言与任何其他编程语言一样兼容。2020年是开始学习的一年,快使用您的业余时间学习JavaScript。不信的话您现在想一想,是不是几乎所有的网站都在某种程度上利用了JavaScript。
结论
请您细想,其实所有的编程语言和框架都可以构建复杂而强大的功能。因此选择解决现实世界中紧迫问题的应用程序吧!没有一种语言是适合所有人的,因此总是倾向于一种特定的语言几乎是不可能的,因为每种语言和框架都有其优点,也有其缺点,我们只能使用它有意义或不合理的地方。始终牢记并记住,任何编程语言或框架的目标都是完成工作,选择最适合您的口味的技术。
????原文链接:
https://medium.com/swlh/top-7-programming-languages-frameworks-to-learn-in-2020-that-will-still-be-relevant-in-5-years-11245d7e2d56
以上信息来源于网络,由“京东智联云开发者”公众号编辑整理,
不代表京东智联云立场