ΠΠ° 2 ΠΎΠΊΡΠΎΠΌΠ²ΡΠΈ 2023 Π³ΠΎΠ΄ΠΈΠ½Π° ΠΈΠ·Π»Π΅Π·Π΅ Π½ΠΎΠ²Π°ΡΠ° ΡΡΠ°Π±ΠΈΠ»Π½Π° Π²Π΅ΡΡΠΈΡ Π½Π° ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΈΡΠΎΠ²ΠΊΠΈ Π΅Π·ΠΈΠΊ Python 3.12.
Python Π΅ Π²ΠΈΡΠΎΠΊΠΎΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π΅Π½, Π³Π΅Π½Π΅ΡΠ°Π»Π΅Π½ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΈΡΠΎΠ²ΡΡeΠ½ Π΅Π·ΠΈΠΊ Ρ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ½ΠΎ ΡΡΡΠΈΠΊΡΠ½ΠΎ ΡΠΈΠΏΠΈΠ·ΠΈΡΠ°Π½Π΅ ΠΈ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ½ΠΎ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° ΠΏΠ°ΠΌΠ΅ΡΡΠ°, ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠ°Π½ ΠΊΡΠΌ ΠΏΠΎΠ²ΠΈΡΠ°Π²Π°Π½Π΅ Π½Π° ΠΏΡΠΎΠ΄ΡΠΊΡΠΈΠ²Π½ΠΎΡΡΡΠ° Π½Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΡΠΈΡΠ΅, ΡΠ΅ΡΠΈΠΌΠΎΡΡΡΠ° Π½Π° ΠΊΠΎΠ΄Π° ΠΈ Π½Π΅Π³ΠΎΠ²ΠΎΡΠΎ ΠΊΠ°ΡΠ΅ΡΡΠ²ΠΎ, ΠΊΠ°ΠΊΡΠΎ ΠΈ ΠΎΡΠΈΠ³ΡΡΡΠ²Π°Π½Π΅ Π½Π° ΠΏΡΠ΅Π½ΠΎΡΠΈΠΌΠΎΡΡ Π½Π° Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΡΠ΅ Ρ Π½Π΅Π³ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΈ.
ΠΠΎΡΠ»Π΅Π΄Π½Π°ΡΠ° ΡΡΠ°Π±ΠΈΠ»Π½Π° Π²Π΅ΡΡΠΈΡ 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
