Python!請不要再亂搞 Linux 發行版了

banq發表於2022-06-22

Python 社群痴迷於重新發明輪子,一遍又一遍,一遍又一遍。distutils、setuptools、pip、pipenv、tox、flit、conda、poetry、virtualenv、requirements.txt、setup.py、setup.cfg、pyproject.toml ……老實說,我什至無法列出你必須處理的所有事情. 這是一場災難。

Python!請不要再亂搞 Linux 發行版了


這部漫畫已經有將近4年的歷史了,後來變得更糟糕了。Python是一個爛攤子。我真的想喜歡Python。我已經在許多專案中使用它很多年了,包括SourceHut,它主要是用Python開發的。但我根本無法處理它了,我一直在努力將Python從我的堆疊中移除。

這一直是Python的一個問題,但在過去的幾年裡,每個人和他們的表弟都決定透過建立另一個與所有其他的完全不相容的混亂來 "解決 "這個問題,所有的 "解決方案 "都在社群中獲得了不同程度的成功,但沒有一個被祝福為官方的答案。

我以我認為唯一合理的方式管理我的 Python 包:從我的 Linux 發行版的軟體包管理器中安裝它們。我自己為 Alpine Linux 維護了幾十個 Python 包。正是從這個角度出發,在 Python 打包世界的所有這些動盪中,我發現自己感到特別不舒服。

這些軟體包管理器中的每一個都是為一個魯莽的世界而設計的,在這個世界裡,程式設計師們把軟體包批發到~/.pip中,設定virtualenvs並把他們的依賴關係釘在10個版本和6個漏洞之前,並把他們的計算機直接裝在Docker容器中運送到生產中,目的是做最少的事情,使使用者的私人資料儘可能不安全。

儘管我們一再請求,但這些新式的解決方案沒有一個能滿足任何發行版的需求。他們都破壞了與我們的使用案例的向後相容性,並將我們的投訴傳送到/dev/null。我已經看到來自每個 Linux 發行版的代表反覆地、絕望地請求 Python 解決他們的問題,從 Debian 到 Arch 到 Alpine 到 NixOS,還有非 Linux 發行版,如 FreeBSD 和 Illumos。每個人都很沮喪。我們現在都在掙扎著與 Python 打交道,而 Python 卻不聽我們的。

是什麼讓 Linux 發行版使我們的用例變得不重要了?在過去的 30 年中,我們沒有給 Python 提供任何價值嗎?你是否覺得是時候甩掉我們所代表的 "遺留 "系統,擁抱勇敢的新世界--無伺服器雲規模的監管--套利的移動--快速和打破東西的techbro創業公司文化?

發行版現在感到特別沮喪,但我不認為我們是孤獨的。每個人都對Python包裝感到沮喪。我呼籲PSF坐下來進行一些嚴肅、清醒的工程工作來解決這個問題。擬定一份你需要支援的用例清單,挑選出最有希望的方案,並投入時間使其正常工作,從今天到明天。設計一些你可以堅持的東西,並使其在未來30年內保持穩定。如果你必須打破一些人的心,沒關係。不是所有這些解決方案都能獲勝。現在,上游的忽視正在毀掉Python的生態系統。情況很嚴重,我們現在需要強有力的上游領導。

相關文章