El equipo de Polars ha publicado la primera release candidate de Polars 2.0, cuya versión definitiva llegará en las próximas semanas. El salto de versión major no responde a un gran lanzamiento de funcionalidades, sino a la necesidad de reemplazar decisiones de diseño obsoletas y mejorar los valores por defecto. El cambio más relevante es que todas las consultas LazyFrame pasarán a ejecutarse por defecto en el motor streaming, lo que según los benchmarks propios puede ser hasta cinco veces más rápido y reduce de forma drástica el consumo de memoria. El cambio obliga a una versión major porque el motor streaming no garantiza el orden de filas en operaciones como join, group_by o unpivot; quien lo necesite puede activarlo con maintain_order=True o volver al motor en memoria mediante engine="in-memory".
Polars 2.0 introduce además un modo de mayor rigor: ahora lanza errores explícitos ante conversiones de tipos con pérdida de información, como en is_in sobre enteros que exceden 2^53, o ante concatenaciones horizontales con longitudes distintas, que hasta ahora se rellenaban con nulos. También se eliminan casts ambiguos a Enum, Date o Datetime en favor de métodos dedicados como .cat.to(), .str.to_date() o .str.to_datetime(). Para facilitar la transición, se incorporan dos nuevas excepciones tipadas, AttributeRemovedError y ArgumentRemovedError, y se ha publicado una guía de migración completa. Entre los desarrollos futuros ya en marcha se citan soporte out-of-core, nuevo diseño de plugins de IO, lector S3, mejoras de cobertura SQL, planificador basado en costes y eliminación de mmap.
