基础设施代码通常不可能在内部完全进行类型提示;Python 类型系统目前还没有,而且可能永远也不会强大到足以支持像 cattrs 和 attrs 这样的库需要做的操作类型。 无类型 Python 的最大优势之一(也是让我首先接触 Python 的原因)是可用的基础结构代码可以提供非常友好和强大的 API。因此,非类型化 Python 过去一直是基础架构代码的绝佳选择;无类型的 Python 不太适合业务逻辑代码,这就是为什么从历史上看,软件开发人员很快就会抱怨维护用 Python 编写的大型系统,这是有理由的。
业务逻辑代码通常比基础设施代码简单得多,而且当今世界上有更多的代码;对于每个 SQLAlchemy 或 Django,可能有数百个(如果不是数百万个)代码库以简单的方式实际使用它。正因为如此,业务逻辑代码与类型化的 Python 非常匹配。使用类型化的 Python 为开发过程带来了很多好处,比如将整个类别的错误从运行时转移到类型检查时间、易于重构(这对于健康的代码库生命周期至关重要)、强大的编辑器支持(包括自动完成和稳健的列表引用,很好 代码导航)并减少对测试的需求(这会大大增加需要编写和维护的代码量)。
为了使这种结合有效,我们需要基础设施代码不在内部进行类型提示,而是在代码边界提供类型提示接口。这正是生态系统的发展方向,值得注意的例子是 SQLAlchemy 2.0 和新一代 Web 框架,如 FastAPI。此外,随着 Python 类型系统的成熟,它将使一类基础设施代码能够完全类型化,但我的直觉是,最有趣的部分仍将是非类型化的。
至于为什么这是一件好事:如果你知道一个(类型化或非类型化的 Python),那么你学习另一个相对容易(无论如何比学习一种完全不同的语言容易一个数量级),并学习它 将大大增强你作为软件开发人员的能力。
现在我们能否拥有一种同时擅长这两种语言?我不知道,但我真的不认为这会出现在像 Python 这样的语言中, 我对几种不同的语言都有些精通,所以让我们看一下它们的情况:
- JavaScript 似乎也有与 TypeScript 的分裂情况,尽管我不知道相对于基础设施代码和业务逻辑代码的情况, 估计是一样的吧。
- 我已经将近十年没有接触 Java 了,但我曾经非常精通它, 我使用的 Java 是彻头彻尾的业务逻辑语言,这很容易解释它在行业中的流行(因为行业中绝大多数工作都是为了编写业务逻辑代码)、所有主要库都有的糟糕接口,以及 恐怖的是我看过一次的 ORM 代码, 我认为 Java 实际上也是两种语言,但 Java 的基础设施很难使用, 这就是为什么如果一位开发人员告诉我他们用 Python 编写了一个 ORM,我会兴奋地想要分享笔记,但当时如果一个开发人员告诉我他们用 Java 编写了一个 ORM,我会看看 他们好像疯了一样。
- 我认为 Rust 通过其强大的宏系统为基础设施代码提供了一种非常有趣的方法。,我对 Rust 的了解还不够多,无法自信地发表评论,但我想你可以将 Rust 宏视为 Rust 之上的一种不同的基础结构语言, 它输入(类型化)Rust 的方式对我来说特别优雅。
总之:类型化 Python 的加入对我们的社区来说是一件好事,而非类型化 Python 不会消失, 我们只需要根据需求正确的使用,并努力将它们有效地结合起来。
题外话
在这个大数据的时代,你要想走在潮流前端,就必须要学习前沿有用的知识。而今人工智能和数据分析爆发,python就是一颗冉冉升起的新星。
全球知名TIOBE编程语言社区发布了2023年最新的编程语言排行榜。我们一起来看看
口说无凭,请大家继续来看一下Python的招聘数据。
据职友集数据显示,分别来自50家招聘网站,与Python有关的招聘职位薪资待遇如下:
那么为什么各地对Python工程师需求这么大?工资给的这么高?因为Python程序员太少啦!很多高校并未开设Python课程,因此市场上Python开发人才供小于求。很多企业为了争夺有限的Python程序员,不得不给出极其丰厚的薪资待遇,现在初级Python开发工程师的起薪一般在10-20K!
目前来学的人群分为以下几类:
第一类:入行编程新手:大学刚毕业或者其他行业转岗,想从事编程开发的工作,目前认为Python比较火,想入行;Python简单易学,非常适合新手入门。
第二类:Linux系统运维人员:Linux运维以繁杂著称,对人员系统掌握知识的能力要求非常高,那么也就需要一个编程语言能解决自动化的问题,Python开发运维工作是首选,Python运维工资的薪资普遍比Linux运维人员的工资高。
第三类:做数据分析或者人工智能:不管是常见的大数据分析或者一般的金融分析、科学分析都比较大程度的应用了数据分析,人工智能的一些常见应用也使用了Python的一些技术。
第四类:在职程序员转Python开发:平常只关注div+css这些页面技术,很多时候其实需要与后端开发人员进行交互的,现在有很多Java程序在转到Python语言,他们都被Python代码的优美和开发效率所折服。
第五类:其他:一些工程师以前在做很多SEO优化的时候,苦于不会编程,一些程序上面的问题,得不到解决,只能做做简单的页面优化。现在学会Python之后,你和我一样都可以编写一些查询收录,排名,自动生成网络地图的程序,解决棘手的SEO问题。
当然,这里总结的只是常见的一些情况,关于职业和岗位。
Python的优点:
- 易于学习:简单、易学、对新手极度友好。
- 免费开源:Python的所有内容都是免费开源的,不需要花一分钱就可以免费使用Python,并且可以自由地发布这个软件的拷贝、阅读其源代码、对其做改动、把其一部分用于新的自由软件中;
- 可扩展:Python除了使用Python本身编写外,还可以混合使用像C语言、Java语言等编写;
对于0基础小白入门:
如果你是零基础小白,想快速入门Python是可以考虑的。
一方面是学习时间相对较短,学习内容更全面更集中。
二方面是可以找到适合自己的学习方案
包括:Python激活码+安装包、Python web开发,Python爬虫,Python数据分析,人工智能、机器学习等习教程。带你从零基础系统性的学好Python!
👉Python学习路线汇总👈
Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。(全套教程文末领取哈)
最后
Python崛起并且风靡,因为优点多、应用领域广、被大牛们认可。学习 Python 门槛很低,但它的晋级路线很多,通过它你能进入机器学习、数据挖掘、大数据,CS等更加高级的领域。Python可以做网络应用,可以做科学计算,数据分析,可以做网络爬虫,可以做机器学习、自然语言处理、可以写游戏、可以做桌面应用…Python可以做的很多,你需要学好基础,再选择明确的方向。这里给大家分享一份全套的 Python 学习资料,给那些想学习 Python 的小伙伴们一点帮助!
👉Python所有方向的学习路线👈
Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。
👉Python必备开发工具👈
工欲善其事必先利其器。学习Python常用的开发软件都在这里了,给大家节省了很多时间。
👉Python全套学习视频👈
我们在看视频学习的时候,不能光动眼动脑不动手,比较科学的学习方法是在理解之后运用它们,这时候练手项目就很适合了。
👉实战案例👈
学python就与学数学一样,是不能只看书不做题的,直接看步骤和答案会让人误以为自己全都掌握了,但是碰到生题的时候还是会一筹莫展。
因此在学习python的过程中一定要记得多动手写代码,教程只需要看一两遍即可。
👉大厂面试真题👈
我们学习Python必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!