Polars 2.0 正式發布,此次更新並非以新增大型功能為主,而是透過嚴格的語意化版本控制(SemVer)合規性,調整預設行為以提升生產環境的穩定性。主要變更包括將 `maintain_order` 預設值設為 `False`,並移除過去阻礙開發速度的舊有設計決策,旨在透過更嚴格的型別檢查和確定性行為,減少類似 Pandas 中常見的執行階段意外。過時的功能將在被標記後的兩個主要版本中移除,從而加速開發週期。預設改為非確定性排序(`maintain_order=False`)帶來了效能提升,但使用者需留意在科學計算環境中可能出現的順序差異。
事件背景
Polars 是一個用於 Python 和 Rust 的高效 DataFrame 庫,採用惰性求值(lazy evaluation)來最佳化查詢執行計畫。語意化版本控制(SemVer)是一種軟體版本標準,用於指示變更性質(主要、次要或修補),以確保符合後向相容性的預期。與立即執行不同,惰性求值允許 Polars 在必要時才進行計算,從而實現如推入選擇條件等最佳化技術。
社群觀察
社群成員欣賞此次發布的「無聊」特質,認為其對語意化版本控制的嚴格遵守以及生產穩定性的提升優於新功能。然而,部分科學計算領域的使用者擔心新的預設非確定性排序可能引入細微錯誤,而其他使用者則強調 Polars 在串流和核心外處理場景中相比 Pandas 的卓越效能。



