ΠΠ° 2 ΠΎΠΊΡΠΎΠΌΠ²ΡΠΈ 2023 Π³. ΠΈΠ·Π»Π΅Π·Π΅ Π½ΠΎΠ²Π°ΡΠ° ΡΡΠ°Π±ΠΈΠ»Π½Π° Π²Π΅ΡΡΠΈΡ Π½Π° ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠ΅Π½ Π΅Π·ΠΈΠΊ Python 3.12.
Python Π΅ Π²ΠΈΡΠΎΠΊΠΎ Π½ΠΈΠ²ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠ½ΠΈ Π΅Π·ΠΈΠΊ Ρ ΠΎΠ±ΡΠ° ΡΠ΅Π», ΠΊΠΎΠΉΡΠΎ ΠΏΡΠ΅Π΄Π»Π°Π³Π° Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ½Π° ΡΡΡΠΎΠ³Π° ΡΠΈΠΏΠΈΠ·Π°ΡΠΈΡ ΠΈ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ½ΠΎ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° ΠΏΠ°ΠΌΠ΅ΡΡΠ°. Π’ΠΎΠΉ Π΅ Π½Π°ΡΠΎΡΠ΅Π½ ΠΊΡΠΌ ΠΏΠΎΠ²ΠΈΡΠ°Π²Π°Π½Π΅ Π½Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡΡΠ° Π½Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΡΠΈΡΠ΅, ΡΠ΅ΡΠΈΠΌΠΎΡΡΡΠ° Π½Π° ΠΊΠΎΠ΄Π° ΠΈ Π½Π΅Π³ΠΎΠ²ΠΎΡΠΎ ΠΊΠ°ΡΠ΅ΡΡΠ²ΠΎ, ΠΊΠ°ΠΊΡΠΎ ΠΈ ΠΊΡΠΌ ΠΎΡΠΈΠ³ΡΡΡΠ²Π°Π½Π΅ Π½Π° ΠΏΡΠ΅Π½ΠΎΡΠΈΠΌΠΎΡΡ Π½Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΈΡΠ°Π½ΠΈΡΠ΅ Ρ Π½Π΅Π³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ.
ΠΠΎΡΠ»Π΅Π΄Π½Π°ΡΠ° ΡΡΠ°Π±ΠΈΠ»Π½Π° Π²Π΅ΡΡΠΈΡ Python 3.12 ΠΏΡΠ΅Π΄Π»Π°Π³Π° ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΠΏΡΠΎΠΌΠ΅Π½ΠΈ Π² Π΅Π·ΠΈΠΊΠ° ΠΈ ΡΡΠ°Π½Π΄Π°ΡΡΠ½Π°ΡΠ° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°. ΠΡΠΎΠΌΠ΅Π½ΠΈΡΠ΅ Π² Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°ΡΠ° ΡΠ° Π½Π°ΡΠΎΡΠ΅Π½ΠΈ ΠΊΡΠΌ ΠΏΠΎΡΠΈΡΡΠ²Π°Π½Π΅ Π½Π° ΠΎΡΡΠ°ΡΠ΅Π»ΠΈ API, ΠΏΠΎΠ΄ΠΎΠ±ΡΡΠ²Π°Π½Π΅ Π½Π° ΡΠ΄ΠΎΠ±ΡΡΠ²ΠΎΡΠΎ Π·Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ ΠΈ ΠΏΡ. ΠΠ°Π±Π΅Π»Π΅ΠΆΠ΅ΡΠ΅, ΡΠ΅ ΠΏΠ°ΠΊΠ΅ΡΠ° distutils Π±Π΅ΡΠ΅ ΠΏΡΠ΅ΠΌΠ°Ρ Π½Π°Ρ ΠΎΡ ΡΡΠ°Π½Π΄Π°ΡΡΠ½Π°ΡΠ° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° (Π²ΠΌΠ΅ΡΡΠΎ Π½Π΅Π³ΠΎ ΡΡΡΠ±Π²Π° Π΄Π° ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° setuptools). ΠΠΎΠ΄Π΄ΡΡΠΆΠΊΠ°ΡΠ° Π½Π° ΡΠ°ΠΉΠ»ΠΎΠ²Π°ΡΠ° ΡΠΈΡΡΠ΅ΠΌΠ° Π² os ΠΈ pathlib ΠΏΡΠ΅ΡΡΡΠΏΡ ΡΠ΅Π΄ΠΈΡΠ° ΠΏΠΎΠ΄ΠΎΠ±ΡΠ΅Π½ΠΈΡ, Π½ΡΠΊΠΎΠΈ ΠΌΠΎΠ΄ΡΠ»ΠΈ ΡΠ°Π±ΠΎΡΡΡ ΠΏΠΎ-Π΄ΠΎΠ±ΡΠ΅.
Π‘ΡΠ΅Π΄ ΠΌΠ½ΠΎΠ³ΠΎΡΠΎ ΠΏΡΠΎΠΌΠ΅Π½ΠΈ ΠΈ ΠΏΠΎΠ΄ΠΎΠ±ΡΠ΅Π½ΠΈΡ ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° ΠΈΠ·ΡΡΠΊΠ½Π΅ΠΌ ΡΠ»Π΅Π΄Π½ΠΈΡΠ΅:
- ΠΠΎ-Π³ΡΠ²ΠΊΠ°Π² Π°Π½Π°Π»ΠΈΠ· Π½Π° ΡΠΎΡΠΌΠ°ΡΠΈΡΠ°Π½ΠΈΡΠ΅ f-ΡΡΡΠΈΠ½Π³ΠΎΠ²Π΅, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π°Ρ Π½Π΅ΡΠ°, ΠΊΠΎΠΈΡΠΎ ΠΏΡΠ΅Π΄ΠΈ Π±ΡΡ Π° Π½Π΅Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΈ (PEP 701).
- ΠΠΎΠ΄ΠΎΠ±ΡΠ΅Π½ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ Π·Π° ΡΠΊΠ°Π·Π²Π°Π½Π΅ Π½Π° ΡΠΈΠΏΠΎΠ²ΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΈ ΠΏΡΠΈ ΠΎΠ±ΡΠ²ΡΠ²Π°Π½Π΅ Π½Π° ΡΠ½ΠΈΠ²Π΅ΡΡΠ°Π»Π΅Π½ (generic) ΠΊΠ»Π°Ρ, ΡΡΠ½ΠΊΡΠΈΡ ΠΈΠ»ΠΈ ΠΏΡΠ΅Π²Π΄ΠΎΠ½ΠΈΠΌ (alias) ΡΠΈΠΏ. (PEP 695).
- ΠΠΎΠ² API Π·Π° ΠΏΡΠΎΡΠΈΠ»ΠΈΡΠ°ΡΠΈ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΈ, ΠΎΡΠ»Π°Π΄ΡΠΈΡΠΈ ΠΈ Π΄ΡΡΠ³ΠΈ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΈ Π·Π° ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³ Π½Π° ΡΡΠ±ΠΈΡΠΈΡ Π² CPython (PEP 669).
- ΠΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π½Π° ΠΈΠ·ΠΎΠ»ΠΈΡΠ°Π½ΠΈ ΡΡΠ±ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡΠΈ Ρ ΠΎΡΠ΄Π΅Π»Π½ΠΈ Π³Π»ΠΎΠ±Π°Π»Π½ΠΈ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΈ Π½Π° GIL Π½Π° ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡΠ° (PEP 684). ΠΡΠΎΠ³ΡΠ°ΠΌΠΈΡΠ΅, Π½Π°ΠΏΠΈΡΠ°Π½ΠΈ Ρ ΠΏΠΎΠΌΠΎΡΡΠ° Π½Π° ΡΡΠ±ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡΠΈ, ΠΌΠΎΠ³Π°Ρ Π΄Π° ΡΠ΅ Π²ΡΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ ΠΎΡ ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡΠΎΡΠ½ΠΈΡ ΠΏΠ°ΡΠ°Π»Π΅Π»ΠΈΠ·ΡΠΌ, ΠΊΠΎΠΉΡΠΎ ΠΏΡΠ΅Π΄ΠΈ Π±Π΅ΡΠ΅ Π½Π΅Π²ΡΠ·ΠΌΠΎΠΆΠ΅Π½ ΠΏΠΎΡΠ°Π΄ΠΈ GIL.
- ΠΠΎΠ΄ΠΎΠ±ΡΠ΅Π½ΠΈ ΡΡΠΎΠ±ΡΠ΅Π½ΠΈΡ Π·Π° Π³ΡΠ΅ΡΠΊΠΈ. ΠΡΠΈ Π³ΡΠ΅ΡΠΊΠΈ, ΠΏΡΠΈΡΠΈΠ½Π΅Π½ΠΈ ΠΎΡ ΠΏΠΎΡΠ΅Π½ΡΠΈΠ°Π»Π½ΠΈ ΠΏΡΠ°Π²ΠΎΠΏΠΈΡΠ½ΠΈ Π³ΡΠ΅ΡΠΊΠΈ, ΡΠ΅ ΠΏΡΠ΅Π΄Π»Π°Π³Π°Ρ Π²Π°ΡΠΈΠ°Π½ΡΠΈ Π·Π° ΠΊΠΎΡΠ΅ΠΊΡΠΈΡ.
- ΠΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π½Π° ΠΏΡΠΎΡΠΈΠ»ΠΈΡΠΎΠ²ΡΠΈΠΊΠ° Π·Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡ Linux perf Π·Π° ΠΏΡΠ΅Π΄Π°Π²Π°Π½Π΅ Π½Π° ΠΈΠΌΠ΅Π½Π° Π½Π° ΡΡΠ½ΠΊΡΠΈΠΈ Π² Python Π½Π° ΡΡΠ°ΡΠΈΡΠΎΠ²ΡΠΈΠΊ.
- ΠΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ Π³ΠΎΠ»Π΅ΠΌΠΈ ΠΈ ΠΌΠ°Π»ΠΊΠΈ ΠΏΠΎΠ΄ΠΎΠ±ΡΠ΅Π½ΠΈΡ Π½Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡΡΠ° (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π²ΠΈΠΆΡΠ΅ PEP 709, ΠΊΠ°ΡΠ°Π΅ΡΠΎ ΠΏΠΎΠ΄ΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ΡΠΎ Π½Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡΡΠ° Π½Π° Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΠ° Π½Π° ΡΠΏΠΈΡΡΡΠΈ list comprehension, ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π½Π° Π±ΠΈΠ½Π°ΡΠ½ΠΈΡ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΎΡ BOLT ΠΈ Π΄Ρ.), ΠΎΡΠΈΠ³ΡΡΡΠ²Π°ΡΠΈ ΠΎΠ±ΡΠΎ ΡΠ²Π΅Π»ΠΈΡΠ΅Π½ΠΈΠ΅ Π½Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡΡΠ° Ρ ΠΎΠΊΠΎΠ»ΠΎ 5%.
ΠΠ΅Π±ΡΠ΅ΠΆΠ΅Π½ ΠΏΠΎΠ΅ΡΠΈΡΠ΅Π½ ΠΏΠΎΠ·ΠΈΡΠΈΠ² ΠΎΡ ΡΠ΅Π΄Π°ΠΊΡΠΎΡΠΈΡΠ΅ Π½Π° ΠΈΠ·Π΄Π°Π½ΠΈΠ΅ΡΠΎ ΠΈ ΠΡΠ°ΠΉΡΠ½ ΠΠΈΠ»ΡΡΡΠ½ π Π’Π΅ Π½ΡΠΌΠ°Ρ Π½ΡΠΆΠ΄Π° ΠΎΡ Π½Π°ΡΠ°ΡΠ° ΠΏΠΎΠΌΠΎΡ, ΡΠ°ΠΊΠ° ΡΠ΅ Π½Π΅ ΠΌΠΈ ΠΊΠ°Π·Π²Π°ΠΉΡΠ΅, ΡΠ΅ ΡΠ΅Π·ΠΈ ΠΈΠ·ΠΌΠΎΡΠ΅Π½ΠΈ Π»ΠΈΡΠ° ΠΌΠΎΠ³Π°Ρ Π΄Π° Π±ΡΠ΄Π°Ρ Π²Π°ΡΠΈ ΠΈΠ»ΠΈ ΠΌΠΎΠΈ. ΠΠΊΠΎ ΠΆΠΈΠ²ΠΎΡΡΡ Π±Π΅ΡΠ΅ ΡΠ°Π·Π΄Π°Π΄Π΅Π½ ΠΏΠΎ Π΄ΡΡΠ³ Π½Π°ΡΠΈΠ½, ΡΡΡΠ±Π²Π° Π΄Π° Π³ΠΈ Π²ΠΈΠΆΠ΄Π°ΠΌΠ΅ ΡΠ°ΠΊΠΈΠ²Π°, ΠΊΠ°ΠΊΠ²ΠΈΡΠΎ Π½Π°ΠΈΡΡΠΈΠ½Π° ΡΠ°. Π£Π²Π»Π΅ΡΠ΅Π½ΠΈ ΠΈ ΠΊΡΠ°Π΄ΡΠΈ, ΡΠΊΠ°ΡΠ°Π²ΡΠΈ ΠΈ ΠΌΡΡΠ·Π΅Π»ΠΈΠ²ΡΠΈ Ρ Π±ΠΎΠΌΠ±ΠΈ Π² ΡΡΠΊΠ°. Π’Π΅ Π½Π΅ ΡΠ° Π΄ΠΎΠ±ΡΠ΅ Π΄ΠΎΡΠ»ΠΈ ΡΡΠΊ. Π’ΡΡΠ±Π²Π° Π΄Π° Π³ΠΈ Π½Π°ΠΊΠ°ΡΠ°ΠΌΠ΅ Π΄Π° ΡΠ΅ Π²ΡΡΠ½Π°Ρ ΡΠ°ΠΌ, ΠΎΡΠΊΡΠ΄Π΅ΡΠΎ ΡΠ° Π΄ΠΎΡΠ»ΠΈ. ΠΠ΅ ΠΌΠΎΠ³Π°Ρ Π΄Π° ΡΠΏΠΎΠ΄Π΅Π»ΡΡ Ρ ΡΠ°Π½Π°ΡΠ° Π½ΠΈ, Π΄ΠΎΠΌΠΎΠ²Π΅ΡΠ΅ Π½ΠΈ, ΡΡΡΠ°Π½ΠΈΡΠ΅ Π½ΠΈ. ΠΠΌΠ΅ΡΡΠΎ ΡΠΎΠ²Π° Π½Π΅ΠΊΠ° ΠΏΠΎΡΡΡΠΎΠΈΠΌ ΡΡΠ΅Π½Π°, Π·Π° Π΄Π° Π³ΠΈ Π΄ΡΡΠΆΠΈΠΌ Π½Π°Π²ΡΠ½. ΠΠ΅ Π΅ ΠΎΠΊΠ΅ΠΉ Π΄Π° ΡΠ΅ ΠΊΠ°Π·Π²Π°, ΡΠ΅ ΡΠ΅Π·ΠΈ Ρ ΠΎΡΠ° ΡΠ° ΡΠΎΡΠ½ΠΎ ΠΊΠ°ΡΠΎ Π½Π°Ρ. ΠΡΡΡΠΎΡΠΎ ΡΡΡΠ±Π²Π° Π΄Π° ΠΏΡΠΈΠ½Π°Π΄Π»Π΅ΠΆΠΈ ΡΠ°ΠΌΠΎ Π½Π° ΡΠ΅Π·ΠΈ, ΠΊΠΎΠΈΡΠΎ ΡΠ° ΡΠΎΠ΄Π΅Π½ΠΈ ΡΠ°ΠΌ. ΠΠ΅ Π±ΡΠ΄Π΅ΡΠ΅ ΡΠΎΠ»ΠΊΠΎΠ²Π° Π³Π»ΡΠΏΠ°Π²ΠΈ Π΄Π° ΠΌΠΈΡΠ»ΠΈΡΠ΅, ΡΠ΅ ΡΠ²Π΅ΡΡΡ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΠΏΠΎΠ³Π»Π΅Π΄Π½Π΅ ΠΏΠΎ Π΄ΡΡΠ³ Π½Π°ΡΠΈΠ½ (ΡΠ΅Π³Π° ΠΏΡΠΎΡΠ΅ΡΠ΅ΡΠ΅ ΠΎΡΠ΄ΠΎΠ»Ρ Π½Π°Π³ΠΎΡΠ΅).
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: linux.org.ru
