We're sunsetting PodQuest on 2025-07-28. Thank you for your support!
Export Podcast Subscriptions
cover of episode #403 A machine learning algorithm walks into a bar…

#403 A machine learning algorithm walks into a bar…

2024/9/30
logo of podcast Python Bytes

Python Bytes

AI Deep Dive AI Chapters Transcript
People
B
Brian
Python 开发者和播客主持人,专注于测试和软件开发教育。
M
Michael
帮助医生和高收入专业人士管理财务的金融教育者和播客主持人。
Topics
Michael认为UV是一个强大且具有变革性的工具,正在改进Python的包管理,但它也引发了一些争议。一些人对UV的商业模式表示担忧,担心其VC背景对其长期发展的影响。开源项目失败是常有的事,UV的Rust编写也引发了关于可维护性的担忧。UV之所以特殊,是因为它是一个单一的编译后的二进制文件,可以用于引导和维护Python开发。有人担心企业会控制Python生态系统,因此对Astral(UV的开发公司)的动向保持关注。Astral公司不打算通过其工具盈利,而是计划开发与开源工具垂直整合的软件来销售给企业。即使Astral公司出现问题,UV也具有良好的可分叉性和可维护性。即使Astral公司被出售,UV也可能面临风险,因此可分叉性至关重要。 其他参与者表达了他们对UV的各种看法,既有积极的也有消极的。一些人对UV的效率和创新性表示赞赏,另一些人则对它的商业模式和潜在风险表示担忧。他们还讨论了Rust语言在UV开发中的作用以及它对可维护性的影响。

Deep Dive

Chapters
This chapter dives into the ongoing discussion surrounding UV, a new Python packaging tool, on Mastodon. Concerns about Astral's business model and the use of Rust are debated, alongside the potential for corporate capture of the Python ecosystem. The discussion highlights both enthusiasm and apprehension towards UV's impact on Python packaging.
  • Concerns raised on Mastodon regarding UV's potential impact on Python packaging.
  • Debate about Astral's business model and its implications for the open-source community.
  • Discussion on the challenges and benefits of UV being written in Rust.
  • Concerns about corporate capture of the Python ecosystem.

Shownotes Transcript

您好,欢迎收听 Python Bytes,我们将直接为您带来 Python 新闻和头条新闻。这是第 403 集,录制于 9 月 30 日,9 月的最后一天。我是 Brian Ocken。我是 Michael Kennedy。如果您想联系我们提出建议或其他任何事情,您可以发送链接给我们,pythonbytes.fm 上有一个联系表单。您可以观看直播节目,pythonbytes.fm/live 有更多相关信息。

您可以,呃,通常是星期一上午 10 点,但是,嗯,呃,

您也可以稍后在 YouTube 上查看这些内容。本期节目由我们赞助。因此,请查看我们在 TalkPython 培训和 PythonTest.com 上提供的课程。还要感谢我们仍然拥有的 Patreon 支持者。如果您想联系我们,您可以在节目说明中找到我们的 Fosstodon 链接。所以我们在 Mastodon 上。此外,Michael 有时仍然会在 X 上闲逛。所以你可以去那里。

有时当人们在那里与我交谈时,我一定会去和他谈谈。好吧,让我们从 Mastodon 上的一场讨论开始吧。这是 Simon Willison 的一篇博文,标题,开篇句子,我不知道。

随便吧。UV 正在 Mastodon 上讨论。Jacob Kaplan Moss 在 Mastodon 上就 UV 展开了一场引人入胜的对话。值得阅读全文。我认为它非常有趣。您知道,我们拥有这个功能强大且具有变革意义的研究。

工具正在改进 Python 包,这在各个方面都有些粗糙。然而,它肯定不是第一个出现的工具,对吧?我们有很多成功的工具。我们有 Hatch、Poetry、PDM,甚至 pipenv 以及所有尝试做到这一点的不同工具。而且我不觉得它们有什么争议。

这是一个有趣的组合,为什么人们会担心如果其他人再去尝试工作?另一方面,我认为人们真正投入其中并争论是否应该使用 UV、是否不应该使用、它对 Python 是否有益的原因之一是它非常有效并且正在接管如此之多,以至于人们会说,等等,这是新方法?这就是事情的发展方向?我只是觉得这真的很吸引人……

人们,我不知道,正在考虑这一点。所以人们发表了很多不同的评论,我只会大概介绍一下,你可以去看看。但我认为这很有趣。在我开始之前,我个人是 UV 的粉丝。我认为他们正在做出真正有意义的改变。所以在这种意义上,我有点像 Henik 阵营。哦。

这场对话。所以 Russell Keith McGee 说,尽管我对 UV 的发展方向充满热情,但我还没有在任何地方采用它们——因为我非常想了解 Astral 的商业模式,然后再将我的马车与他们的工具连接起来。所以这非常有趣。Henrik 说,尽管我讨厌风险投资,但 FOSS 项目

你知道,人们担心的是,因为它是由风险投资公司资助的,所以它会失败。FOSS 项目也经常失败。如果 Frost 对 PDM 失去兴趣,那么 PDM 就消失了。OFAC 和 Hatch 也是如此。所以,看,我们可以,这可以修复打包问题,我们之后将有开源代码可以使用。嗯,

我认为 Glyph 也提出了一种担忧,那就是因为它是用 Rust 编写的,所以 Python 人员更难维护。虽然我认为这是公平的,但我认为这也有很多用 C 编写的 Python。我的意思是,它是 C Python。所以说它不是 Python 不一定公平。

你知道,因为我们在 Python 中做的很多事情都是基于 C 的。我认为区别可能在于,目前在 Python 中工作的人中,更多的人也懂 C,而目前在 Python 中工作的人中,更多的人也懂 Rust。是的。

我认为这就是其中的区别。但要说,哦,它是一种不同的语言,就像,好吧,Python 本身就是一种不同的语言,就是这样。也许还有两件事,然后我就结束了。Henning 还谈到 Rust,我认为你们由于资历的原因,并没有完全理解 UV 的特别之处。速度确实很酷,但 Rust 成为基础元素的原因是它是一个可以……

可以作为二进制文件放到你的机器上的单一编译块,它将引导 Python,它将引导 Python 包,Python 项目,以及部署问题。我非常同意这一点。我认为这是 Python 缺失的一环,也是一个持续的挑战,就像,这里,你可以运行这个东西。像,好吧……

在我们运行该代码之前,让我们讨论一些事情,对吧?今天早上在另一个项目上工作时,这种情况并不像应该的那样顺利。Christopher Neugebauer 说:“只是顺便说一句,企业对 Python 生态系统的掌控是我在社区工作中让我彻夜难眠的首要问题,所以我怀着兴趣关注着 Astral,即使我还不怎么担心。”

说到这里,让我们来看看 Astral 创始人 Charlie Marsh 的权威回应。你们都担心商业模式。

所以事情是这样的。我不想向人们收取使用我们工具的费用。我不想创造一种激励机制,让我们的开源产品与任何商业产品竞争,这就是您在许多托管开源 SaaS 商业模式中看到的情况。这是真的。我想做的是构建与我们的开源工具垂直集成的软件,并将其出售给已经使用 Ruff、UV 等的公司,作为公司今天付费使用的替代方案。

以及一些例子等等。你们都可以去阅读这篇文章,但这对于掌握 UV、打包以及所有这些事情的时代精神来说非常有趣。我想我会从两方面发表我的看法。我喜欢 Armin Roeniker 对 UV 的评论……

即使在最糟糕的未来结果中,UV 正在做的事情也是一件非常容易分叉和维护的事情,所以即使 Astral 发生了什么事情,Astral 突然变得邪恶了,也有一条逃生之路。

另一方面,我,我实际上,我,我喜欢 Charlie。我认为 Charlie Marsh 没有什么邪恶的想法,但没有什么能阻止他出售公司,而新业主将其带向不同的方向。所以,这就像,你知道,Charlie,Charlie 可能有最好的意图,但下一个所有者可能没有。这就是逃生之路所在。好的。但我也是完全的 UV 粉丝,我,我,

我现在不担心。所以。

是的,我认为关于出售的说法是公平的。我还认为 Charlie 是个好人。我认为关于出售的说法是公平的,但这也可以是,我不再做这个开源项目了。我把它交给别人。虽然涉及到金钱时,激励机制要强得多,当然。我认为从 Armin 的角度来看,我认为我之前介绍过他的文章,名为 Rye 和 UV,8 月份是 Python 和打包的收获季节,这是一个非常棒的观点,比仅仅……

Mastodon 线程要彻底得多。好吧。无论如何,我认为这将是,你知道,我很高兴 Simon 写了这篇文章,我认为值得强调一下。所以。好吧,让我们跳到一些更小的事情上,也许不是更小的事情,但无论如何,嗯,Erdantic。我只是想,呃,我不记得我在哪里看到的,但是,嗯,无论如何,这是一个,一个相当新的东西。看起来它已经发布了,哦,几年了,但是,嗯,它正在积极开发中

现在。它是什么?Erdantic 是基于 Pydantic 模型的实体关系图。这是一个简单的工具,用于为 Python 数据模型类绘制实体关系图(ERD)。并且

并且它们可以支持建模框架,例如 Pydantic 添加器和数据类。所以这是那些可能有点内部棒球的事情之一。但基本上,如果您正在处理数据结构,特别是如果它们映射到您的系统周围以及像您的数据库等等周围。

数据库工具通常有这些您可以查看的图表。但是进入您的应用程序的内容,正在使用的使用数据,正在您的应用程序中使用的数据集,您可能没有这些工具。所以这很简洁。它允许您基本上为系统中的数据绘制这些关系图。它非常简单明了。

非常简单明了。我喜欢这些。布莱恩,当你在一个项目上工作时,你创建了一个项目,你已经工作了很长时间,你可能对概念性部分以及它们如何组合在一起以及数据是什么样子有一个非常强大的心理模型。但是如果有人是团队的新成员或开源项目的新成员,或者他们作为顾问被安排进来,你会说,什么?

我们这里发生了什么?你知道,所有这些是什么?像 Erdantic 这样的工具可以让您直接说,砰,向我展示它的可视化表示。我认为如果您需要帮助,这是一个巨大的飞跃。是的,您可以在事后进行。例如,如果您正在进入一个系统,您可以使用它来绘制图表。或者如果这些是您文档的一部分,甚至是内部文档,以帮助某人快速上手。

但是您也可能为了自己而将这些添加到文档中,这样六个月后,您回来时会想,这是怎么回事?甚至是文档和简单的阅读文档风格,对吧?是的,还要确保事情不会变得混乱。通常,您有一个心理模型,认为您的系统是有意义的。但是当您将其绘制出来时,您会发现各种疯狂的树木和森林。

你会说,哦,天哪,我没想到它这么复杂。我需要简化事情。所以可视化工具非常适合这种情况。一个,我想说的是,它基于 GraphViz,GraphViz 非常广泛可用,但在 Linux 和 Mac 上可能最容易使用,但您也可以在 Windows 上使用它,但让 GraphViz 在 Windows 上运行可能有点困难。也许不是,但我过去在尝试运行时遇到过问题。所以……

但无论如何,这就是它。只是一个小的绘图工具。我喜欢它。好吧,让我们回到我需要介绍的内容,因为我有很多事情,我将这部分内容作为一个额外的、额外的、额外的主要部分,否则这个节目将持续一个半小时。我们不想要那样。它不是字节。它将超过一个字节。

所以我想谈谈几件事。首先,这对您来说是新闻。除非您一直在监视网站,否则您正在了解这一点,我认为这不太可能,因为您已经熟悉它了。但是如果您,就在星期五,我正在浏览器中使用一些自定义搜索引擎,我想,我不知道。

我不知道,我必须搜索 Python Bytes 上的东西,我想,如果我们可以直接将 Python Bytes 搜索集成到您的浏览器中,那不是很酷吗?我们的搜索 URL,您可以,它是一个 get 风格的搜索。您可以对其进行 get 风格的搜索。因此,您实际上可以将其作为自定义扩展程序插入,但我走得更远,因此如果您在 pythonbytes.fm 上并调出源代码,则此坏男孩中现在有一个开放搜索描述规范,

我并不真的想要那个。但这实际上描述了简短搜索是如何工作的。因此,如果您到这里并键入 pb 空格,您会看到它说搜索 Python 字节吗?哦,哇。但是请看这个。uv 空格 doce,Docker,uvx,所有这些东西。不是很酷吗?它根据我们实际的成绩单进行自动完成和所有操作。

以及我们的节目说明等等。因此,您只需到这里,点击 Docker UV,然后就会显示我们讨论过的节目,以及各种内容。无论如何,如果您访问 Python Bytes 并点击小搜索图标,它会在下面显示,将我们的搜索引擎直接添加到您的浏览器中。在这里了解如何操作。因此,您点击它,它实际上会向您展示几个步骤。非常简单。我也为 TalkPython 做了类似的事情。因为一旦你做了一个,你就会想,哦,我明白了如何在另一个上做。它们并不完全相同,但它们很相似。你怎么看?

我认为我将一直使用它。我们已经介绍了很多主题,有时我会想,我们什么时候谈论过那件事?我喜欢它。是的,是的。我也是。所以我觉得这是……

这非常出色。是的,我对此非常兴奋。好吧,下一个额外内容是,我认为我们之前谈到过通行密钥。所以我实际上写了一篇关于通行密钥、密码管理器以及您是否应该使用它们的小文章。然后与人们进行了一些辩论。我说,嘿,我发布了一篇关于这个的文章,有人回复说,人们不使用

密码管理器来存储通行密钥。我说,他们使用还是不使用?我不知道。谁在使用它?所以我发布了一些 Twitter 和 Mastodon 投票,哪个是这个?这是 Twitter。44% 的人正在使用密码管理器来管理他们的通行密钥。20% 的人只是让他们的操作系统去,您想保存通行密钥吗?说“是”。30%、35% 没有。这实际上是相当高的采用率。在 Mastodon 上,我认为有四五倍的人正在使用密码管理器,并且

其中一半的人没有使用。所以很有趣,对吧?是的。无论如何,人们可以查看这篇文章,那里有一些后续内容。好吧,接下来。我认为您应该添加一个额外的调查内容,例如什么是通行密钥。这是真的。人们确实说,嘿,我将它们存储在硬件中,例如 Yiba 密钥。是的,我没有,我没有在那里。我认为这属于与密码管理器相关的部分。因为记住,呃,

我担心锁定,对吧?你会说,嘿,通行密钥很酷,除了这是 Apple 和 Microsoft 和 Google 说,请更多地留在我们的平台上的一种方式。请不要离开我们。我们想通过帮助您留在这里来让您感觉更舒适。所以 Pablo 发送了这个 Vault Warden 的推荐,这是一个用 Rust 编写的非官方 Bitwarden 兼容服务器,以前称为 Bitwarden-RS,并且

您可以基本上自托管您自己的 Bitwarden 同步和服务器。因此,当您运行 Bitwarden 时,您可以告诉它,这是我的服务器,而不是商业服务器。SaaS 服务器。您注意到我的显示器有什么奇怪的地方吗?我的意思是,人们并不真的需要在这里看到显示器或任何东西,但是看这个,布莱恩。看到底部我的标签在哪里吗?我正在尝试过上底部标签的生活方式。

我一直在观看很多人使用 arc,然后是 Zen 浏览器,它是一种 Firefox 类型的东西。但我仍然认为 Vivaldi,尤其是在我们进行搜索之后,我仍然认为 Vivaldi 是最好的,最好的浏览器。例如,Firefox,您无法执行我告诉您的这个很酷的搜索操作。他们为您提供六个搜索引擎的列表。我希望您喜欢其中一个。对吧。您不再可以选择。您无法再添加了。Zen 浏览器也是如此。呃,

Chrome 允许您添加它,但它不会进行自动完成。它只会进行搜索。Safari 通过开放搜索功能自动发现它,但我不知道如何实际搜索它。我不知道它是否使用,它可能使用也可能不使用搜索功能。我无法让它工作。但是 Vivaldi 拥有它,例如,这是自动建议。这是,这是搜索。所有内容都在这里,对吧?无论如何。

许多较新的、更闪亮的浏览器都专注于将您的标签放在某种隐藏模式中或其他什么地方。所以我试图减少一些干扰。从心理模型的角度来看,将标签放在底部非常困难,但坚持一周,您可能会习惯它。我们将看看我能坚持多久。

它们位于顶部从未困扰过我,但是是的。好吧,事情是这样的。它也没有困扰我。它也没有困扰我。但是如果您以标签不在顶部的方式查看它,您只会关注顶部的内容。您不会在心理上意识到,哦,顶部还有所有这些其他内容。需要实际的意识思考才能意识到,哦,看看底部,看看还有什么打开。几乎到了成为缺陷的地步。但是……

它就像,这是你现在应该关注的事情。别担心其他事情。无论如何,这就是我的想法。

好吧,还有 PyCon 2025。我不知道我们是否介绍过这个。我知道我们谈到了即将举行的 PyCon 将在哪里举行,对吧?2026 年的 PyCon 我想是在长滩,对吧?这次回到了匹兹堡。但是,日期列在 python.org 上。我们之前提到过吗?我不这么认为,对吧?我不记得了。我们应该搜索一下。好吧,我们应该完全搜索一下。是的,如果我们能做到的话。

所以,2025 年 5 月 14 日至 5 月 22 日是 PyCon 2025。也就是美国 PyCon。这太棒了。人们可以查看一下,对吧?是的。因为,你知道,我兄弟说,嘿,我想来看你。我考虑在 5 月或 4 月来。可以吗?我说,我不知道。

我没有很多事情会让我无法在身边,但 PyCon 可能是其中之一。知道它是什么时候会很好。好吧,这就是它是什么时候。在五月。我可能会去。不知道。是的。好吧,这就是我所有的额外内容。好的。好吧,我有一些……我喜欢你所有的额外内容。我也会做很多额外的事情,但与 Django 相关。所以这是一个 Django 主题的额外内容。所以我们从 PyCharm 博客中获得了 Django 项目创意。并且……

我实际上非常喜欢这个,因为我,我正在自己做一些 Django 项目。有时你只想玩玩 Django 或其他任何方式,使用框架来弄清楚,例如,我想尝试学习,例如做一个项目,但要做的事情列表。然后还有其他你可以做什么?这就是我喜欢这个跳跃的地方。所以有一个,

呃,有一些众所周知的教程,初学者的普通 Django 教程很有用,嗯,呃,PyCharm 有一个气温或 JetBrains 和 PyCharm 有一个气温应用程序教程,您可以逐步完成该教程,嗯,但是您完成教程后,您会喜欢,您知道您应该做什么,嗯,所以有一个

有一些很棒的想法,我喜欢它列出的方式。例如,您可以做一个博客,您会在那里学到什么?好吧,您将学习 Django 管理员、Django 模板,然后做一个编辑器,因为如果这是一个博客,您可能会做一个应用程序内编辑器。所以您可以尝试一下。

所以这一切都设置了您将遇到的技术栈或您将学习的不同 Django 部分或额外插件。然后是一些关于它的简短介绍。关于博客,他们还推荐了 Django Girls 教程,因为它谈到了博客,这很棒。有一个待办事项应用程序,您将学习单页应用程序和 Django 模板。一个食谱组织者。我喜欢这个主意。不知道为什么我没有想到。

但是您将学习数据库和 ORM 以及模板,JavaScript 是可选的,用于额外的安全性。我不知道这是如何实现的,但只是一堆关于 URL 缩短器、支出跟踪器等很酷的想法。这是一个很酷的主意。

社交网络,然后,呃,个人作品集。这很简洁。嗯,然后很多这些,我喜欢这些东西的一点是,这些东西对您来说是有用的,即使没有人使用它。所以,即使您只是为了自己使用而将其发布,它也帮助您学习了 Django,并且您,您获得了一些有用的工具。嗯,然后有一些高级项目,呃,我喜欢多用户网站的想法。嗯,

分类网站或其他什么,也许是为您的社区或甚至工作,为您的工作场所创建一个分类网站,这很简洁。人们可以向朋友和同事出售他们的东西。无论如何,我喜欢这个主意,但我有很多例子。是的。它非常,这是一个非常有趣的列表。所以,所以这就是我对 Django 的第一个额外内容,来自 JetBrains 的这些 Django 项目创意,非常好的列表。看起来很有趣。

这来自 Jeff Triplett。我认为他最近才整理好它,或者至少最近才发布它。DjangoTV.com。这是一个来自世界各地 Django 大会上的演讲和教程列表。这是一种很简洁的……

我喜欢这个主意。这太酷了。是的,它有点新,但我相信它会发展壮大。所以很多很棒的东西都会出现。Django Commons,也是一个新事物。我从 Lacey Hinchel 那里了解到这一点。Django Commons 是……

一个致力于支持社区维护与 Django 相关的包的努力的组织。因此,有一些关于如何加入该小组、如何将项目转移到该小组、如何将项目从该小组转移出去以及一些行为准则和常见问题解答的精彩信息。同样,这只是刚刚开始,但这是一个很酷的主意,Django Commons。

关于 Django 的另外几件事。我确实看到了,所以在 Django 5 中,我们确实获得了一些简化的表单字段渲染模板。但如果这对您来说还不够,您可能想尝试 IOMI 表单。所以 IOMI 表单是对 Django 表单的不同看法。他们写了一篇文章

为什么我们为 Django 编写了一个新的表单库。所以如果您难以使用 Django 表单,这只是一个不同的看法,也许可以尝试 Django 5,但也可以尝试这个 Elmi 表单,这可能是一件好事。我得到的最后一个 Django 额外内容来自 Adam Johnson。他介绍了一个名为 Jade(D-J-A-D-E)的模板格式化程序。但是

但是我们当然会在节目说明中提供指向这篇文章的链接。嗯,所以这是什么,您有所有这些,您习惯于使用 black 作为格式化程序,或者现在可能是 UV,嗯,或者 rough。嗯,但是,呃,

那么表单呢,模板表单呢?这就是它的用武之地。Jade 类似于 black,但用于表单。例如,旧的 Django 2 表单加载静态文件。您应该现在只说加载静态。所以让它自动为您更改它,这很好。是的,不仅仅是格式化它,而是修复它。

是的。例如,如果您有奇怪的空格,奇怪的间距,只是为了使其更易于阅读。我喜欢它。是的,这太棒了。我喜欢它。这些是我的,我非常喜欢这个主意。让我们也为其他格式化程序或其他模板添加一些内容。更确切地说。哦,这是一个好主意。对。姜或其他什么。也许它存在。如果它存在,人们应该让我们知道。是的。好吧。好吧。一些笑话怎么样?笑话会很棒。

哦,等等,我还有一个额外内容。如果我们,如果我们已经准备好讲笑话了,呃,我还有一个额外内容,呃,这个来自,嗯,谁发送了这个?所以我们有,嗯,我想在应该给予赞扬的地方给予赞扬。所以,呃,这个来自,呃,Raphael wine gardener,他建议我们看看这个。起初我以为这是一件严肃的事情,开源项目维护者指南。嗯,你已经看过这个了吗?没有,我没有。呃,

它有点像你的博客吗?它是货币化。它,它就像如何,如何拥有一个开源项目,并且让人们不帮助你维护。明白了。所以首先,使用,使用除 get 之外的源代码控制机制。所以尝试,也许尝试 subversion 或 mercurial 或 bizarre。是的。

是的。或者甚至像 SQLite 或这样做。SQLite 在做什么?他们在那里抨击他们吗?我不知道。无论如何,所以使用除 Git 之外的其他东西。仅在邮件列表上接受补丁。Linux 内核是不是这样的?或者像 Usenet 之类的东西。是的。需要贡献者许可协议。这很有趣。你必须签署一些东西。不要有社区论坛或领导层。是的。

所以没有 discourse、Zulip,绝对没有 Slack 或 Discord。忽略详细报告,系统地关闭报告,优先考虑功能而不是错误。我认为有很多这样的项目。等待大型重写,合并半打包的补丁集,对所有用户可见的更改进行自行车棚。

这是我最喜欢的,只使用过时的语言标准。例如,C++ 的当前语言标准是 C++ 23,17 广泛支持,所以为什么不使用 O3 呢?

我会说,为什么不坚持使用 C++98 呢?在我那个时代它很好。现在也很好。对你的祖父母来说足够好了。对你来说也足够好了。是的。无论如何,如果你不想让人们帮忙,这里有一些关于开源项目要做的事情的有趣列表。是的。

是的,这很有趣。好的。但是,如果你想让人们帮忙,你可能会讲这样的笑话。一个机器学习算法走进酒吧。酒保问,你有什么?算法说,别人都在喝什么?

因为它接受过所有人的数据训练。这是它所知道的全部。哦,这很有趣。是的,我花了一段时间才明白。是的,它不算特别好笑,但很有趣。是的。所以谢谢 Ted Haas。我喜欢它。确实。好了,又一期 Python Bytes 结束了。感谢您的收听。谢谢,Brian。谢谢。再见。再见。