理论派 | Theory
2022年全栈开发展望:趋势、框架与语言
作者 Bogdan N 译者 核子可乐
要么更新,要么消亡
科技行业就是这样,不断发展、变化,每天都有新的工具与框架诞生、建立并获得大规模采用。
在这场不变革就消亡的永恒竞逐中,本文希望带大家一瞥现状、梳理趋势并展望行业的前进方向。
语言
如果大家想了解哪种语言最受欢迎,又不知道该到哪里寻找答案,这里我们推荐TIOBE:
Python已经成为当前的王者,C与Java紧随其后。下面咱们快速过一遍让这些语言占据优势地位的独门绝技。
Python
Python的核心卖点就是简单易懂的语法,与几乎等同于伪代码的超高代码可读性。
“你不能直接把伪代码复制 - 粘贴到程序里,然后指望它能跑通。”
Python:“那你可就说错了,老哥”。
Python社区拥有能满足开发者一切需求的库;虽然总有人觉得Python代码运行速度缓慢,但没人敢对它的广泛适用性说不。目前,大部分涉及数据科学或机器学习的项目都仰仗于Python,更不用说它还拥有目前最具人气的三大Web框架:Django、Flask与FastAPI。
Python可以说是初学者们的完美语言,同时也有着广泛的行业应用度。如果大家不知道自己的Python学习之旅该如何起步,不妨先从选择最佳环境开始:
我的Python环境越来越慢,逼着我把笔记本快升级成超级工作站了。
延伸阅读:《总有一款xkcd适合你》(https://xkcd.com/1987/)
C
C语言既不时髦、也不酷炫,但它无处不在、也无所不能。无论是操作系统、还是嵌入式编程,就没有C玩不转的场景。Git和Linux的大部分代码也是由C编写而成。
延伸阅读:《如果连Linus都觉得C够用,那它对绝大多数人肯定是够用的》(https://youtu.be/CYvJPra7Ebk)
Java
由甲骨文掌控的Java堪称企业应用之王。谷歌、Netflix、亚马逊等科技巨头都在用这样或那样的方式使用着Java语言。
大多数Apache项目也是用Java编写的 —— 为什么会这样?感兴趣的朋友可以看看这条HN回复(https://news.ycombinator.com/item?id=9249913)。
学完Java再学Spring,这样你就永远不用担心失业了。如果大家不知道该从哪里学起,请参考此博客上关于Java和Spring的文章和教程。起首第一篇:《如何制作你的第一个API》(https://bognov.tech/starting-with-spring-boot-how-to-make-a-restful-get-endpoint)。
PHP
在JavaScript之前有PHP,在JavaScript之后还有PHP。
这门语言多年以来经历了无数次迭代,始终以改善开发者体验为目标。如今,PHP主要作为Web上的后端语言,并坐拥两大框架:Laravel与Symfony。
但PHP能够真正流行起来,依靠的还是WordPress。如果大家还没听说过或使用WordPress,不妨赶紧一试。虽然我们拿不出确切的统计数据,但传说三分之一以上的Web内容都由WordPress支撑提供。
为什么?因为它能轻松便捷地设置、设计并准备开发者需要的一切功能,就连电商平台这样的复杂项目也不在话下;它还提供数百万种插件,即使是毫无编码基础的人也能快速上手。
作为完美的CMS(内容管理系统)解决方案,用户可以在一天之内就建立起包含博客功能的网站,同时专注于SEO(营销人士特别喜欢WordPress,因为它极大降低了搜索优化的门槛)及其他各类业务需求。
如果你听有人说PHP快挂了或者已经不行了,千万别信这种胡话。看看Web世界,看看PHP还活跃在多少网站当中。
当程序员们讨论哪种编程语言快挂了。
JavaScript
不久之前,《2021年JS现状报告》刚刚发布。虽然得票率不高,但JavaScript在开发社区中仍广为人知、也值得关注。特别是那些完全没接触过JavaScript的朋友,请马上延伸这方面认知。另外,JavaScript中的大部分工具 / 框架也能与TypeScript配合使用。
前端框架
前端框架的前三甲选手可谓稳如泰山,仍然是React、Angular与Vue:
去年,Svelte曾经引起过不小的轰动。如今它正逐渐在市场上巩固自己的份额,说明文档大有改进,我本人也在体验过一段时间之后为它友好的上手难度所吸引。
但Svelte肯定不是唯一值得关注的新势力,业界对于SolidJS和AlpineJS同样赞誉有加。
后端框架
结果基本在大多数人的意料之中。身为后端开发者,掌握Express肯定是最基本的要求:
但过去一年中,大量新兴工具的快速涌现同样令人印象深刻:
结合个人体会,我认为Remix是目前讨论热度最高的后起之秀,而Astro与SvelteKit也应该能闯出自己的一片天地。
测试
测试?真有人做测试吗……
只是开个玩笑,TDD(测试驱动开发)现在还挺热门的。
而且跟以往一样,Jest与Mocha继续双雄争霸。
愈发臃肿的移动与桌面应用
打开Discord桌面应用,我们可以像查看常规网站一样检查里头的源代码。都是JavaScript,熟悉吧?更准确地说应该是TypeScript,不过大差不差啦。
Electron与React Native的领先相信早在大家的预料之中,紧随其后的则Cordova和Ionic。
考虑到Flutter的到来,对于Tauri竞争地位与市场占有率的后续关注可能会很有趣。
Build工具
没什么特别的,我唯一的预测就是Vite将在未来一年内得到广泛应用。
库
在这里,我们看到了Axios、Lodash、Moment和Redux等的身影。确实没什么新奇之处。
在榜单之外,推荐大家了解了解Redux和Tailwindcss。
谷歌的小算盘
过去几年来,谷歌一直在着力完善自己的工具集,咱们就针对这方面聊一聊。至于已经被说烂了的Kubernetes和糟糕的搜索引擎,那些不在本文的讨论范围内。
Go
如果您正好是位后端开发者,可能已经注意到Go语言的采用率正节节攀升。考虑到K8s就是用Go编写的,而且在企业中的普及度不断上涨,我个人肯定要密切关注Go语言及其生态系统。
Flutter
谷歌一边羡慕Facebook(现在的Meta)能搞出自己的React Native,一边又急于摆脱Electron,最终的答案就是Flutter。虽然谷歌似乎是把太过期望和野心都硬塞了进来,但不得不说Flutter和Dart还真挺容易上手。
去年我就用Flutter + Firebase规划过一个多平台项目。MVP的设置和制作都很简单,我强烈建议大家在快节奏项目中亲自尝试。只要各位不是强迫症式的完美主义者,这套组合堪称初创企业的最佳方案。
还有什么?还有很多,要看你关心什么。
还有什么?
Terraform、无服务器架构、Rust、微前端以及关于Web 3.0的一切:区块链、加密货币、NFT等等。
免责声明:本文没有谈到C#、C++、Ruby、Swift和R等,因为这些真是我的知识盲区了,非常抱歉。另外,感谢全栈开发人员、SRE、scrum大师兼艺术家Joan Cornellà为本文配图。
原文链接
https://bognov.tech/full-stack-development-in-2022-trends-frameworks-and-languages