python语言的发展趋势

tech2022-07-06  255

python语言的发展趋势

Python is arguably the programming language nowadays. We’ll explore why that might be the case, what the current trends within the Python community are, and what packages and tools you might want to get acquainted with if you don’t want to be left behind.

Python可以说是当今的编程语言。 我们将探究为什么会这样,Python社区中当前的趋势是什么,以及如果您不想被抛弃的话可能想要了解哪些软件包和工具。

If you were pondering what programming language you should be investing time and effort in, you can stop searching now. It’s Python.

如果您正在考虑应该花些时间和精力在使用哪种编程语言,则可以立即停止搜索。 是Python。

Alright, that was an oversimplification. Admittedly, you aren’t going to jump into a Java project that’s been in development for years just to port all that code into Python just because it’s “hot”. Programming languages are a means to an end, and you have to carefully consider the cost/benefit of adopting a given technology.

好吧,这太过简单了。 诚然,您不会仅仅因为“热”就跳入已经开发了多年的Java项目,而是只是将所有代码移植到Python中。 编程语言是达到目的的一种手段,您必须仔细考虑采用特定技术的成本/收益。

That said, when things are massively moving in a certain direction, that has to mean something. And for some time already, things have been moving towards Python.

就是说,当事物大规模地朝某个方向移动时,这必然意味着某种意义。 并且已经有一段时间了,事情一直在朝着Python发展。

Want to level up your Python skills and stand out in a rapidly growing market? Check out SitePoint Premium! You’ll find books to get you started (like The Python Apprentice) and develop job-ready skills (like Front-end Testing in Python). Enhance your skills with The Python Master, and access a growing library of over 400 books and courses on web design and development.

想要提高您的Python技能并在Swift发展的市场中脱颖而出吗? 查看SitePoint Premium ! 您会找到入门书籍(例如The Python Apprentice )和发展工作准备技能(例如Python的前端测试 )。 使用Python Master增强您的技能,并访问一个不断发展的图书馆,其中包括关于Web设计和开发的400多种书籍和课程。

向国王致敬 (Hail the King)

Practically every undergraduate IT class today is taught with Python — and not just computer science introduction courses offered by companies or by unversities. Even highly specialized courses on data science, AI, or quantitative finance — that not long ago would have used languages such as R, MATLAB, or C++ — are now also more often than not entirely taught in Python.

实际上今天每个本科IT类是教与Python -并提供了不只是计算机科学入门课程由公司或由梅江 。 甚至不久前就已经使用R,MATLAB或C ++等语言的数据科学 , AI或量化金融等高级专业课程,现在也往往不是完全用Python讲授的。

Check out the trends as of 2019 for the past five years comparing Python, Java, C++ and PHP:

查看Python,Java,C ++和PHP在过去五年中截至2019年的趋势:

Quite eloquent, isn’t it?

很有说服力,不是吗?

What about a more comprehensive list of languages over a larger span of time? Sure:

那么在更长时间范围内更全面的语言列表又如何呢? 当然:

那是怎么发生的? (How Did that Happen?)

There are tons of articles that explore why Python is so popular, but as refresher, let’s kick-start a flame war right here and briefly discuss how it compares to other languages:

有大量 的 文章探讨了Python为什么如此受欢迎的原因,但是作为回顾,让我们在这里开始一场火焰大战,并简要讨论它与其他语言的比较:

Easy to learn. Unlike C++ or Java, Python is comparatively easier to approach, even for total noobs — which is among the reasons to why it’s the language of choice for introductory to programming courses.

简单易学 。 与C ++或Java不同,Python相对来说相对更容易使用,即使是完全没有知识的人-这也是为什么它是编程课程入门的首选语言的原因之一。

General purpose. Unlike PHP (which is intended for web programming) or R (which is intended for statistical analysis), Python is suitable for a number of tasks.

通用 。 与PHP (用于Web编程)或R (用于统计分析)不同,Python适用于许多任务。

Old and new. Unlike Visual Basic (which didn’t seem to stand the test of time) or Go (which is a fairly new, Nov 2009), Python is a relatively old language (1990), in active development, that has proved to be aging very well.

新旧的 。 与Visual Basic (似乎并没有经受时间的考验)或Go (这是一个相当新的东西,2009年11月)不同,Python是一种相对较老的语言(1990年),在积极的开发中,它已经老化了很久。好。

Batteries included. Unlike all of the languages mentioned, Python has a huge so-called Standard Library that covers all sorts of tasks, from specific fields to general tasks.

包括电池 。 与提到的所有语言不同,Python有一个巨大的所谓标准库 ,它涵盖从特定领域到一般任务的各种任务。

All of this makes Python a language in which it’s extremely easy to prototype practically anything, (even microcontrollers without using Assembler!) and launch a minimum viable product in no time.

所有这些使Python成为一种几乎可以进行几乎所有原型( 甚至不使用Assembler!的微控制器 )原型并立即发布最低可行产品的语言 。

What’s more — and yes, this is very biased, but … — Python is fun!

而且,是的,这是非常有偏见的,但是…… Python很有趣!

But enough praising; let’s dig in a bit. I’ll highlight just a handful of tools that demonstrate the power of Python. There are, of course, many more to discover.

但是足够的称赞; 让我们深入一点。 我将仅强调一些工具来演示Python的功能。 当然,还有更多发现。

人工智能 (AI)

Artificial intelligence is ubiquitous these days (I double dare you to find a process that couldn’t be improved with the inception of AI), and it’s a vast field of study in which Python most certainly shines.

如今,人工智能无处不在(我不敢向您提出一个发现,随着AI的出现无法改进的过程),并且Python无疑是一个广阔的研究领域 。

You’ll find, not surprisingly, some common ground with the data science section, so let’s also catch up later for more packages too!

毫不奇怪,您会在数据科学部分找到一些共同点,所以让我们稍后也赶上更多软件包吧!

配套 (Packages)

PyTorch. A new machine learning framework based on Torch. It’s quickly gaining momentum by enabling strong accelerations via the GPU to make use of deep neural networks (DNN).

PyTorch 。 一种基于Torch的新的机器学习框架。 通过利用GPU利用深度神经网络 (DNN)进行强大的加速,它Swift获得了动力。

scikit-learn. A machine learning library that’s very easy to use (for example, train a supervised learning algorithm in six lines of code), with simple and efficient tools for data mining and data analysis.

scikit学习 。 易于使用的机器学习库(例如, 用六行代码训练监督学习算法 ),并具有简单有效的数据挖掘和数据分析工具。

TensorFlow. Yet more machine learning but with dataflow and differentiable programming. Also very powerful for developing deep learning models using neural networks.

TensorFlow 。 机器学习更多,但具有数据流和可区分的编程。 对于使用神经网络开发深度学习模型也非常强大。

云开发 (Cloud Development)

All of the integrations you can think of, including mobile, Internet of Things (IoT), APIs of all kinds, and even managing and provisioning Infrastructure as Code (IaC) — all of it means cloud.

您可以想到的所有集成,包括移动, 物联网 (IoT),各种API,甚至还可以将基础架构作为代码 (IaC)进行管理和配置-所有这些都意味着云。

As a Python programmer, that means opportunities for to you to develop microservices within the serverless execution model.

作为Python程序员,这意味着您将有机会在无服务器执行模型内开发微服务 。

配套 (Packages)

Django REST framework. A powerful and flexible toolkit for building browsable web APIs. It supports serialization, authentication policies, and customization of views, among other features. Running on of Django, it’s also very well documented.

Django REST框架 。 一个强大且灵活的工具包,用于构建可浏览的Web API。 它支持序列化,身份验证策略和视图自定义等功能。 在Django上运行,它的文档也很丰富。

Pika. The pure-Python implementation of RabbitMQ, a high-scale, high-availability message-broker that allows for asynchronous messaging across different platforms and systems.

皮卡 RabbitMQ的纯Python实现,这是一个大规模,高可用性的消息代理 ,它允许跨不同平台和系统进行异步消息传递。

Serverless Framework. While being developed in Node.js, if offers tons of examples about how to build and deploy Python applications to Amazon Web Services (AWS), the Google Cloud Platform (GCP) and Microsoft Azure.

无服务器框架 。 在Node.js中进行开发时,if提供了大量有关如何将Python应用程序构建和部署到Amazon Web Services(AWS),Google Cloud Platform(GCP)和Microsoft Azure 的示例 。

Additionally, it’s good to get familiar with AWS Lambda, Amazon API Gateway, Cloud Functions and Azure Functions. These are Amazon, Google and Microsoft services that you will use to actually deploy your Python code to the cloud.

此外,最好熟悉AWS Lambda , Amazon API Gateway , Cloud Functions和Azure Functions 。 这些是Amazon,Google和Microsoft服务,您将使用它们将Python代码实际部署到云中。

加密货币和金融 (Cryptocurrencies and Finance)

I won’t get into a discussion here about whether or not Bitcoin and other cryptocurrencies are an economic bubble (they are!), as that would initiate endless heated debate.

我不会在这里讨论比特币和其他加密货币是否是经济泡沫(确实如此),因为这将引发无休止的激烈辩论。

But one thing is for certain: *the uses of the blockchain technology go further than cryptocurrencies and ICO.)

但可以肯定的是:*区块链技术的使用比加密货币和ICO更加广泛 。)

And if you’d like to delve into the finance side of things, you can apply that knowledge to all financial markets — cryptocurrencies included.

而且,如果您想深入研究金融方面的知识,则可以将该知识应用于所有金融市场(包括加密货币)。

配套 (Packages)

Python is mostly used as a server-side language and not so much client-side (for things like wallets). With that in mind, to develop blockchain, you can in fact use frameworks such as TensorFlow and Django (see the AI and web development sections, respectively, for more details).

Python通常被用作服务器端语言,而不是客户端(用于钱包等)。 考虑到这一点, 开发区块链实际上可以使用TensorFlow和Django之类的框架 (有关更多详细信息,请分别参见AI和Web开发部分)。

That said, there are a handful of blockchain- and finance-related packages that might come in handy, such as api-v1-client-python (Blockchain Bitcoin developer APIs), and SmartPy (smart contract language for Tezos).

这就是说,有可能会派上用场blockchain-和金融相关的软件包,如极少数API-V1-客户Python (Blockchain Bitcoin的开发人员API),以及SmartPy (智能合同语言Tezos )。

For quantitative analysis, check pandas (see the data science section) and Zipline (a pythonic algorithmic trading library).

要进行定量分析,请检查pandas(请参阅数据科学部分)和Zipline (pythonic算法交易库)。

数据科学 (Data Science)

Just like with AI, Python has solemnly proven its place within the data science field among players like R and MATLAB.

就像AI一样,Python在R和MATLAB之类的公司中庄严地证明了自己在数据科学领域的地位。

Truth be told, while not being meant as general-purpose tools, these other languages did have an edge when compared to Python, both in terms of performance and capabilities. That isn’t the case anymore, though, as Python has come a long way since then, and there’s hardly any given task you can’t perform in Python as effectively — if not more so — as you would on these other platforms. And Python is still a general-purpose language, meaning that it can do much more for you.

说实话,尽管这些其他语言不代表通用工具,但它们在性能和功能上与Python相比确实具有优势。 但是,事实已经不再如此,因为Python从那时起已经走了很长一段路,而且几乎没有给定的任务在Python中能像在其他平台上那样有效地执行(如果不是更多的话) 。 而且Python 仍然是通用语言,这意味着它可以为您做更多的事情。

配套 (Packages)

NumPy. Python meets MATLAB: linear algebra with support for large, multi-dimensional arrays and matrices, and a large collection of high-level mathematical functions to manipulate them.

NumPy 。 Python符合MATLAB:线性代数,支持大型,多维数组和矩阵,以及大量用于操纵它们的高级数学函数。

pandas. High-performance, easy-to-use data structures for data analysis, in particular data manipulation of numerical tables and time series. Check out this video series of the Data School!

大熊猫 。 高性能,易于使用的数据结构,用于数据分析,尤其是数值表和时间序列的数据处理。 观看数据学校的视频系列 !

SciPy. Routines for scientific and technical computing, including statistics, optimization, numerical integration, interpolation, special functions, FFT, signal and image processing, and ODE solvers.

SciPy 。 科学和技术计算的例程,包括统计,优化,数值积分,内插,特殊功能, FFT ,信号和图像处理以及ODE求解器。

网站开发和移动应用 (Web Development and Mobile Apps)

Yes, web development is still a thing in 2020! Who knew? If you ask me, not only are there many more years ahead for web development, but the line between web and mobile apps is only going to become more blurry.

是的,Web开发在2020年仍然是一件大事! 谁知道? 如果您问我,不仅Web开发还有很多年,而且Web和移动应用程序之间的界限只会变得更加模糊。

Admittedly, Python might not play a leading role here, but there’s an edge: you can project manage things easier, moving team members around, because chances are that other ends of the ecosystem you’re working with are also going to be developed in Python.

诚然,Python可能不会在这里起主导作用,但是有一个优势: 您可以更轻松地进行项目管理,移动团队成员 ,因为您正在使用的生态系统的另一端也有可能在Python中开发。

In other words, as a Python player, you can play many games.

换句话说,作为Python播放器,您可以玩很多游戏。

配套 (Packages)

Flask. A lightweight web application framework. As a microframework, it doesn’t require particular tools or libraries, which also means no database abstraction layers. But sometimes minimalism and performance is the name of the game.

烧瓶 。 轻量级的Web应用程序框架。 作为微框架 ,它不需要特定的工具或库,这也意味着没有数据库抽象层。 但是有时候,极简主义和性能才是游戏的名称。

Django. “The web framework for perfectionists with deadlines” (I do love that tagline!) Quick, secure and scalable, its object-relation mapping (ORM) and its model-template-view (MTV) systems are so good that many use the framework even for non web-related work. Instagram, Spotify, Pinterest, Dropbox, and even YouTube are examples of sites built with Django.

Django的 。 “ 有期限的完美主义者的Web框架 ”(我很喜欢这样的口号!)快速,安全和可扩展,其对象关系映射 (ORM)和模型模板视图(MTV)系统非常好,以至于许多人使用该框架即使是与网络无关的工作 。 Instagram,Spotify,Pinterest,Dropbox甚至YouTube都是使用Django构建的网站的示例。

Kivy and BeeWare. In a nutshell, Kivy is for developing cross-platform GUI’s, and BeeWare is for developing native, multi-platform apps, including desktop and mobiles. They’re still modest players compared to Ionic, but things might change in the near future.

Kivy和BeeWare 。 简而言之,Kivy用于开发跨平台GUI,而BeeWare用于开发本机,多平台应用程序,包括台式机和移动设备。 与Ionic相比,他们仍然是谦虚的球员,但情况可能会在不久的将来发生变化。

额外:您应拥有的工具 (Extra: Tools You Ought to Own)

iPython was originally presented as a tool for “interactive computing” (live typing and execution of code), but soon a group of developers realized that the idea behind it had so much potential that they created Project Jupyter as a spin-off.

iPython最初是作为“交互式计算”(实时输入和执行代码)的工具而出现的,但是很快,一群开发人员意识到其背后的想法具有巨大的潜力,因此他们创建了Jupyter项目作为副产品。

Later, JupyterLab would come in, which took the concept of “notebook interfaces” (executable code, output and annotations that you can share) to the next level, supporting an array of languages, not just Python. Try it!

后来, JupyterLab出现了,它将“笔记本界面”(可共享的可执行代码,输出和注释)的概念提升到了一个新的水平,不仅支持Python,还支持多种语言。 试试吧 !

Finally, in a a fashion similar to Shiny from the R Studio, the Jupyter ecosystem introduced Voilà, which “turns Jupyter notebooks into standalone web applications“. Check the gallery of Voilà dashboards. It’s quite impressive.

最终,Jupyter生态系统以类似于R Studio中的Shiny的方式引入了Voilà ,它“ 将Jupyter笔记本变成独立的Web应用程序 ”。 检查Voilà仪表板的画廊 。 非常令人印象深刻。

So if you haven’t already, you really should get familiar with these tools. They will simplify your workflow tremendously, allowing for faster testing and sharing of code.

因此,如果您还没有的话, 那么您真的应该熟悉这些工具 。 它们将极大地简化您的工作流程,从而实现更快的测试和代码共享。

结语 (Wrap Up)

Nothing lasts forever, perhaps most notably in IT. If we can conclude something from the Most Popular Programming Languages 1965–2019 clip at the intro, is that programming languages reign come and go. Yes, now the king is a nonvenomous snake, but you won’t be surprised if one day you hear the uproar from the masses: the king is dead, long live the king!

没有什么能永远持续下去,也许在IT领域最为显着。 如果我们可以从介绍中的1965-2019年最流行的编程语言中得出一些结论,那就是编程语言盛行 。 是的,现在国王是一条无毒的蛇 ,但是如果有一天听到群众的骚动,您将不会感到惊讶: 国王已经死了,国王万岁!

Although it doesn’t seem this is going to happen that soon, surely many of the tools and packages we reviewed here will go unmaintained, discontinued, forked, or taken over by competitors. And we know that as much as it’s fun to learn to do things in a new way or with a new tool, it can also be a pain if you already have a workflow going. But hey, we wouldn’t be talking technology if we wanted things to remain the same, right?

尽管似乎这种情况不会很快发生,但我们在这里审查的许多工具和软件包肯定都将被竞争对手维护,停用,分叉或接管。 我们知道,学习用新的方式或使用新的工具做事很有趣,但如果您已经有了工作流程,那也可能会很痛苦。 但是,嘿,如果我们希望一切保持不变,我们就不会在谈论技术,对吗?

So stay alert, always with your radar on, keep an eye on the PyCons — both the conferences in your city and the clips on YouTube — to see what’s new on the horizon. And don’t shy away from trying new things every once in a while. That way, you’ll stay in good shape.

因此,请时刻保持警惕,始终保持雷达状态,密切关注PyCon - 您所在城市的会议和YouTube上的剪辑 -以查看即将出现的新变化。 并且不要回避每隔一段时间尝试新事物的机会。 这样,您将保持良好状态。



Find your next remote Python job with SitePoint Remote, where we handpick the best remote jobs for developers, designers and digital professionals.

通过SitePoint Remote查找您的下一个远程Python作业,我们在其中为开发人员,设计师和数字专业人员精心挑选最佳的远程作业。

翻译自: https://www.sitepoint.com/python-trends-whats-hot/

python语言的发展趋势

相关资源:jdk-8u281-windows-x64.exe
最新回复(0)