ΠŸΠ°Ρ‚ΠΎΡ‚ Π΄ΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Π½Π° Ρ‚ΠΈΠΏΠΎΡ‚ Π½Π° 4 ΠΌΠΈΠ»ΠΈΠΎΠ½ΠΈ Π»ΠΈΠ½ΠΈΠΈ ΠΎΠ΄ Python ΠΊΠΎΠ΄. Π”Π΅Π» 2

ДСнСска Π³ΠΎ ΠΎΠ±Ρ˜Π°Π²ΡƒΠ²Π°ΠΌΠ΅ Π²Ρ‚ΠΎΡ€ΠΈΠΎΡ‚ Π΄Π΅Π» ΠΎΠ΄ ΠΏΡ€Π΅Π²ΠΎΠ΄ΠΎΡ‚ Π½Π° ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΡ˜Π°Π»ΠΎΡ‚ Π·Π° Ρ‚ΠΎΠ° ΠΊΠ°ΠΊΠΎ Dropbox ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΈΡ€Π°Π» ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π° Π½Π° Ρ‚ΠΈΠΏΠΎΡ‚ Π·Π° Π½Π΅ΠΊΠΎΠ»ΠΊΡƒ ΠΌΠΈΠ»ΠΈΠΎΠ½ΠΈ Π»ΠΈΠ½ΠΈΠΈ Python ΠΊΠΎΠ΄.

ΠŸΠ°Ρ‚ΠΎΡ‚ Π΄ΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Π½Π° Ρ‚ΠΈΠΏΠΎΡ‚ Π½Π° 4 ΠΌΠΈΠ»ΠΈΠΎΠ½ΠΈ Π»ΠΈΠ½ΠΈΠΈ ΠΎΠ΄ Python ΠΊΠΎΠ΄. Π”Π΅Π» 2

β†’ ΠŸΡ€ΠΎΡ‡ΠΈΡ‚Π°Ρ˜Ρ‚Π΅ Π³ΠΎ ΠΏΡ€Π²ΠΈΠΎΡ‚ Π΄Π΅Π»

ΠŸΠΎΠ΄Π΄Ρ€ΡˆΠΊΠ° Π·Π° ΠΎΡ„ΠΈΡ†ΠΈΡ˜Π°Π»Π΅Π½ Ρ‚ΠΈΠΏ (PEP 484)

Π“ΠΈ спровСдовмС Π½Π°ΡˆΠΈΡ‚Π΅ ΠΏΡ€Π²ΠΈ сСриозни СкспСримСнти со mypy Π²ΠΎ Dropbox Π·Π° Π²Ρ€Π΅ΠΌΠ΅ Π½Π° Hack Week 2014 Π³ΠΎΠ΄ΠΈΠ½Π°. Hack Week Π΅ Π΅Π΄Π½ΠΎΠ½Π΅Π΄Π΅Π»Π΅Π½ настан ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΈΡ€Π°Π½ ΠΎΠ΄ Dropbox. Π—Π° Ρ‚ΠΎΠ° Π²Ρ€Π΅ΠΌΠ΅, Π²Ρ€Π°Π±ΠΎΡ‚Π΅Π½ΠΈΡ‚Π΅ ΠΌΠΎΠΆΠ°Ρ‚ Π΄Π° Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ Π½Π° ΡˆΡ‚ΠΎ сакаат! НСкои ΠΎΠ΄ Π½Π°Ρ˜ΠΏΠΎΠ·Π½Π°Ρ‚ΠΈΡ‚Π΅ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΡˆΠΊΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈ Π½Π° Dropbox Π·Π°ΠΏΠΎΡ‡Π½Π°Π° Π½Π° настани ΠΊΠ°ΠΊΠΎ ΠΎΠ²ΠΈΠ΅. Како Ρ€Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚ Π½Π° овој СкспСримСнт, Π·Π°ΠΊΠ»ΡƒΡ‡ΠΈΠ²ΠΌΠ΅ Π΄Π΅ΠΊΠ° mypy ΠΈΠ·Π³Π»Π΅Π΄Π° Π²Π΅Ρ‚ΡƒΠ²Π°Ρ‡ΠΊΠΈ, ΠΈΠ°ΠΊΠΎ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΡ‚ сè ΡƒΡˆΡ‚Π΅ Π½Π΅ Π΅ ΠΏΠΎΠ΄Π³ΠΎΡ‚Π²Π΅Π½ Π·Π° ΡˆΠΈΡ€ΠΎΠΊΠ° ΡƒΠΏΠΎΡ‚Ρ€Π΅Π±Π°.

Π’ΠΎ Ρ‚ΠΎΠ° Π²Ρ€Π΅ΠΌΠ΅, ΠΈΠ΄Π΅Ρ˜Π°Ρ‚Π° Π·Π° ΡΡ‚Π°Π½Π΄Π°Ρ€Π΄ΠΈΠ·ΠΈΡ€Π°ΡšΠ΅ Π½Π° систСмитС Π·Π° Π½Π°Π²Π΅ΡΡ‚ΡƒΠ²Π°ΡšΠ΅ ΠΎΠ΄ Ρ‚ΠΈΠΏΠΎΡ‚ ΠŸΠ°Ρ˜Ρ‚ΠΎΠ½ бСшС Π²ΠΎ Π²ΠΎΠ·Π΄ΡƒΡ…ΠΎΡ‚. Како ΡˆΡ‚ΠΎ Ρ€Π΅ΠΊΠΎΠ², ΠΎΠ΄ Python 3.0 бСшС ΠΌΠΎΠΆΠ½ΠΎ Π΄Π° сС користат ΠΏΡ€ΠΈΠ±Π΅Π»Π΅ΡˆΠΊΠΈ Π·Π° Ρ‚ΠΈΠΏΠΎΠ²ΠΈ Π·Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, Π½ΠΎ Ρ‚ΠΎΠ° Π±Π΅Π° само ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»Π½ΠΈ ΠΈΠ·Ρ€Π°Π·ΠΈ, Π±Π΅Π· Π΄Π΅Ρ„ΠΈΠ½ΠΈΡ€Π°Π½Π° синтакса ΠΈ сСмантика. Π—Π° Π²Ρ€Π΅ΠΌΠ΅ Π½Π° ΠΈΠ·Π²Ρ€ΡˆΡƒΠ²Π°ΡšΠ΅Ρ‚ΠΎ Π½Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠ°Ρ‚Π°, ΠΎΠ²ΠΈΠ΅ ΠΏΡ€ΠΈΠ±Π΅Π»Π΅ΡˆΠΊΠΈ Π±Π΅Π°, Π²ΠΎ најголСм Π΄Π΅Π», Сдноставно ΠΈΠ³Π½ΠΎΡ€ΠΈΡ€Π°Π½ΠΈ. По Hack Week, ΠΏΠΎΡ‡Π½Π°Π²ΠΌΠ΅ Π΄Π° Ρ€Π°Π±ΠΎΡ‚ΠΈΠΌΠ΅ Π½Π° ΡΡ‚Π°Π½Π΄Π°Ρ€Π΄ΠΈΠ·ΠΈΡ€Π°ΡšΠ΅ Π½Π° сСмантиката. Оваа Ρ€Π°Π±ΠΎΡ‚Π° Π΄ΠΎΠ²Π΅Π΄Π΅ Π΄ΠΎ појава ΠŸΠ•ΠŸ 484 (Π“Π²ΠΈΠ΄ΠΎ Π²Π°Π½ Росум, Π›ΡƒΠΊΠ°Ρˆ Π›Π°Π½Π³Π° ΠΈ јас соработувавмС Π½Π° овој Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚).

ΠΠ°ΡˆΠΈΡ‚Π΅ ΠΌΠΎΡ‚ΠΈΠ²ΠΈ ΠΌΠΎΠΆΠ΅Π° Π΄Π° сС Π³Π»Π΅Π΄Π°Π°Ρ‚ ΠΎΠ΄ Π΄Π²Π΅ страни. ΠŸΡ€Π²ΠΎ, сС Π½Π°Π΄Π΅Π²Π°Π²ΠΌΠ΅ Π΄Π΅ΠΊΠ° Ρ†Π΅Π»ΠΈΠΎΡ‚ СкосистСм Π½Π° ΠŸΠ°Ρ˜Ρ‚ΠΎΠ½ ΠΌΠΎΠΆΠ΅ Π΄Π° усвои Π·Π°Π΅Π΄Π½ΠΈΡ‡ΠΊΠΈ пристап Π·Π° ΠΊΠΎΡ€ΠΈΡΡ‚Π΅ΡšΠ΅ Π½Π° Π½Π°Π²Π΅ΡΡ‚ΡƒΠ²Π°ΡšΠ° Π·Π° Ρ‚ΠΈΠΏΠΎΠ²ΠΈ (Ρ‚Π΅Ρ€ΠΌΠΈΠ½ ΡˆΡ‚ΠΎ сС користи Π²ΠΎ ΠŸΠ°Ρ˜Ρ‚ΠΎΠ½ ΠΊΠ°ΠΊΠΎ Π΅ΠΊΠ²ΠΈΠ²Π°Π»Π΅Π½Ρ‚ Π½Π° β€žΠΏΡ€ΠΈΠ±Π΅Π»Π΅ΡˆΠΊΠΈ Π½Π° Ρ‚ΠΈΠΏΠΎΡ‚β€œ). Ова, со ΠΎΠ³Π»Π΅Π΄ Π½Π° ΠΌΠΎΠΆΠ½ΠΈΡ‚Π΅ Ρ€ΠΈΠ·ΠΈΡ†ΠΈ, Π±ΠΈ Π±ΠΈΠ»ΠΎ ΠΏΠΎΠ΄ΠΎΠ±Ρ€ΠΎ ΠΎΡ‚ΠΊΠΎΠ»ΠΊΡƒ Π΄Π° сС користат ΠΌΠ½ΠΎΠ³Ρƒ мСѓусСбно Π½Π΅ΠΊΠΎΠΌΠΏΠ°Ρ‚ΠΈΠ±ΠΈΠ»Π½ΠΈ пристапи. Π’Ρ‚ΠΎΡ€ΠΎ, сакавмС ΠΎΡ‚Π²ΠΎΡ€Π΅Π½ΠΎ Π΄Π° Ρ€Π°Π·Π³ΠΎΠ²Π°Ρ€Π°ΠΌΠ΅ Π·Π° ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠΈΡ‚Π΅ Π·Π° ΠΏΡ€ΠΈΠ±Π΅Π»Π΅ΡˆΠΊΠΈ Π½Π° Ρ‚ΠΈΠΏΠΎΡ‚ со ΠΌΠ½ΠΎΠ³Ρƒ Ρ‡Π»Π΅Π½ΠΎΠ²ΠΈ Π½Π° Π·Π°Π΅Π΄Π½ΠΈΡ†Π°Ρ‚Π° Π½Π° Python. Оваа ΠΆΠ΅Π»Π±Π° бСшС Π΄Π΅Π»ΡƒΠΌΠ½ΠΎ Π΄ΠΈΠΊΡ‚ΠΈΡ€Π°Π½Π° ΠΎΠ΄ Ρ„Π°ΠΊΡ‚ΠΎΡ‚ Π΄Π΅ΠΊΠ° Π½Π΅ Π±ΠΈ сакалС Π΄Π° ΠΈΠ·Π³Π»Π΅Π΄Π°ΠΌΠ΅ ΠΊΠ°ΠΊΠΎ β€žΠΎΡ‚ΠΏΠ°Π΄Π½ΠΈΡ†ΠΈβ€œ ΠΎΠ΄ основнитС ΠΈΠ΄Π΅ΠΈ Π½Π° Ρ˜Π°Π·ΠΈΠΊΠΎΡ‚ Π²ΠΎ ΠΎΡ‡ΠΈΡ‚Π΅ Π½Π° ΡˆΠΈΡ€ΠΎΠΊΠΈΡ‚Π΅ маси Π½Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠ΅Ρ€ΠΈ Π½Π° Python. Π‘Ρ‚Π°Π½ΡƒΠ²Π° Π·Π±ΠΎΡ€ Π·Π° Π΄ΠΈΠ½Π°ΠΌΠΈΡ‡ΠΊΠΈ Ρ‚ΠΈΠΏΠΈΠ·ΠΈΡ€Π°Π½ јазик, ΠΏΠΎΠ·Π½Π°Ρ‚ ΠΊΠ°ΠΊΠΎ β€žΠ΄ΡƒΠΊ typingβ€œ. Π’ΠΎ Π·Π°Π΅Π΄Π½ΠΈΡ†Π°Ρ‚Π°, Π½Π° самиот ΠΏΠΎΡ‡Π΅Ρ‚ΠΎΠΊ, Π½Π΅ моТСшС Π΄Π° Π½Π΅ сС појави ΠΌΠ°Π»ΠΊΡƒ сомнитСлСн став ΠΊΠΎΠ½ ΠΈΠ΄Π΅Ρ˜Π°Ρ‚Π° Π·Π° статичко ΠΏΠΈΡˆΡƒΠ²Π°ΡšΠ΅. Но, Ρ‚ΠΎΠ° чувство Π½Π° ΠΊΡ€Π°Ρ˜ΠΎΡ‚ исчСзна ΠΎΡ‚ΠΊΠ°ΠΊΠΎ стана јасно Π΄Π΅ΠΊΠ° статичкото ΠΏΠΈΡˆΡƒΠ²Π°ΡšΠ΅ Π½Π΅ΠΌΠ° Π΄Π° Π±ΠΈΠ΄Π΅ Π·Π°Π΄ΠΎΠ»ΠΆΠΈΡ‚Π΅Π»Π½ΠΎ (ΠΈ ΠΎΡ‚ΠΊΠ°ΠΊΠΎ Π»ΡƒΡ“Π΅Ρ‚ΠΎ ΡΡ„Π°Ρ‚ΠΈΡ˜Π° Π΄Π΅ΠΊΠ° Ρ‚ΠΎΠ° Π΅ Π²ΡΡƒΡˆΠ½ΠΎΡΡ‚ корисно).

Бинтаксата Π½Π° Ρ‚ΠΈΠΏΠΎΡ‚ Π½Π°Π²Π΅ΡΡ‚ΡƒΠ²Π°ΡšΠ΅ ΡˆΡ‚ΠΎ Π½Π° ΠΊΡ€Π°Ρ˜ΠΎΡ‚ бСшС усвоСна бСшС ΠΌΠ½ΠΎΠ³Ρƒ слична Π½Π° ΠΎΠ½Π° ΡˆΡ‚ΠΎ mypy Π³ΠΎ ΠΏΠΎΠ΄Π΄Ρ€ΠΆΡƒΠ²Π°ΡˆΠ΅ Π²ΠΎ Ρ‚ΠΎΠ° Π²Ρ€Π΅ΠΌΠ΅. PEP 484 бСшС објавСн со Python 3.5 Π²ΠΎ 2015 Π³ΠΎΠ΄ΠΈΠ½Π°. ΠŸΠ°Ρ˜Ρ‚ΠΎΠ½ повСќС Π½Π΅ бСшС Π΄ΠΈΠ½Π°ΠΌΠΈΡ‡Π½ΠΎ ΠΏΠΈΡˆΡƒΠ²Π°Π½ јазик. Π‘Π°ΠΊΠ°ΠΌ Π΄Π° мислам Π½Π° овој настан ΠΊΠ°ΠΊΠΎ Π·Π½Π°Ρ‡Π°Ρ˜Π½Π° прСсвртница Π²ΠΎ ΠΈΡΡ‚ΠΎΡ€ΠΈΡ˜Π°Ρ‚Π° Π½Π° ΠŸΠ°Ρ˜Ρ‚ΠΎΠ½.

ΠŸΠΎΡ‡Π΅Ρ‚ΠΎΠΊ Π½Π° ΠΌΠΈΠ³Ρ€Π°Ρ†ΠΈΡ˜Π°Ρ‚Π°

На ΠΊΡ€Π°Ρ˜ΠΎΡ‚ Π½Π° 2015 Π³ΠΎΠ΄ΠΈΠ½Π°, Dropbox создадС Ρ‚ΠΈΠΌ ΠΎΠ΄ Ρ‚Ρ€ΠΈ Π»ΠΈΡ†Π° ΠΊΠΎΠΈ ќС Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ Π½Π° mypy. ΠœΠ΅Ρ“Ρƒ Π½ΠΈΠ² Π±Π΅Π° Π“Π²ΠΈΠ΄ΠΎ Π²Π°Π½ Росум, Π“Ρ€Π΅Π³ ΠŸΡ€Π°Ρ˜Ρ ΠΈ Π”Π΅Ρ˜Π²ΠΈΠ΄ Π€ΠΈΡˆΠ΅Ρ€. Од Ρ‚ΠΎΡ˜ ΠΌΠΎΠΌΠ΅Π½Ρ‚ ΡΠΈΡ‚ΡƒΠ°Ρ†ΠΈΡ˜Π°Ρ‚Π° ΠΏΠΎΡ‡Π½Π° Π΄Π° сС Ρ€Π°Π·Π²ΠΈΠ²Π° исклучитСлно Π±Ρ€Π·ΠΎ. ΠŸΡ€Π²Π°Ρ‚Π° ΠΏΡ€Π΅Ρ‡ΠΊΠ° Π·Π° растот Π½Π° mypy Π±Π΅Π° пСрформанситС. Како ΡˆΡ‚ΠΎ навСстив ΠΏΠΎΠ³ΠΎΡ€Π΅, Π²ΠΎ Ρ€Π°Π½ΠΈΡ‚Π΅ Π΄Π΅Π½ΠΎΠ²ΠΈ Π½Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΡ‚ размислував Π΄Π° ја ΠΏΡ€Π΅Π²Π΅Π΄Π°ΠΌ ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡ˜Π°Ρ‚Π° mypy Π½Π° C, Π½ΠΎ ΠΎΠ²Π°Π° идСја бСшС ΠΏΡ€Π΅Ρ‡ΠΊΡ€Ρ‚Π°Π½Π° ΠΎΠ΄ списокот засСга. Π‘Π΅Π²ΠΌΠ΅ Π·Π°Π³Π»Π°Π²Π΅Π½ΠΈ со водСњС Π½Π° систСмот ΠΊΠΎΡ€ΠΈΡΡ‚Π΅Ρ˜ΡœΠΈ Π³ΠΎ ΠΏΡ€Π΅Π²Π΅Π΄ΡƒΠ²Π°Ρ‡ΠΎΡ‚ CPython, кој Π½Π΅ Π΅ Π΄ΠΎΠ²ΠΎΠ»Π½ΠΎ Π±Ρ€Π· Π·Π° Π°Π»Π°Ρ‚ΠΊΠΈ ΠΊΠ°ΠΊΠΎ mypy. (НС Π½ΠΈ ΠΏΠΎΠΌΠΎΠ³Π½Π° Π½ΠΈΡ‚Ρƒ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΡ‚ PyPy, Π°Π»Ρ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π½Π° ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡ˜Π° Π½Π° Python со JIT ΠΊΠΎΠΌΠΏΠ°Ρ˜Π»Π΅Ρ€.)

Π—Π° ΡΡ€Π΅ΡœΠ°, Π½Π΅ΠΊΠΎΠΈ алгоритамски ΠΏΠΎΠ΄ΠΎΠ±Ρ€ΡƒΠ²Π°ΡšΠ° Π½ΠΈ дојдоа Π½Π° помош ΠΎΠ²Π΄Π΅. ΠŸΡ€Π²ΠΈΠΎΡ‚ моќСн β€žΠ·Π°Π±Ρ€Π·ΡƒΠ²Π°Ρ‡β€œ бСшС ΡΠΏΡ€ΠΎΠ²Π΅Π΄ΡƒΠ²Π°ΡšΠ΅Ρ‚ΠΎ Π½Π° постСпСното ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡƒΠ²Π°ΡšΠ΅. Π˜Π΄Π΅Ρ˜Π°Ρ‚Π° Π·Π°Π΄ ΠΎΠ²Π° ΠΏΠΎΠ΄ΠΎΠ±Ρ€ΡƒΠ²Π°ΡšΠ΅ бСшС Сдноставна: Π°ΠΊΠΎ ситС зависности Π½Π° ΠΌΠΎΠ΄ΡƒΠ»ΠΎΡ‚ Π½Π΅ сС ΠΏΡ€ΠΎΠΌΠ΅Π½Π΅Ρ‚ΠΈ ΠΎΠ΄ ΠΏΡ€Π΅Ρ‚Ρ…ΠΎΠ΄Π½ΠΎΡ‚ΠΎ ΠΈΠ·Π²Ρ€ΡˆΡƒΠ²Π°ΡšΠ΅ Π½Π° mypy, Ρ‚ΠΎΠ³Π°Ρˆ ΠΌΠΎΠΆΠ΅ΠΌΠ΅ Π΄Π° Π³ΠΈ користимС ΠΏΠΎΠ΄Π°Ρ‚ΠΎΡ†ΠΈΡ‚Π΅ Π·Π°Ρ‡ΡƒΠ²Π°Π½ΠΈ Π·Π° Π²Ρ€Π΅ΠΌΠ΅ Π½Π° ΠΏΡ€Π΅Ρ‚Ρ…ΠΎΠ΄Π½ΠΎΡ‚ΠΎ ΠΈΠ·Π²Ρ€ΡˆΡƒΠ²Π°ΡšΠ΅ Π΄ΠΎΠ΄Π΅ΠΊΠ° Ρ€Π°Π±ΠΎΡ‚ΠΈΠΌΠ΅ со зависности. Π’Ρ€Π΅Π±Π°ΡˆΠ΅ само Π΄Π° ΠΈΠ·Π²Ρ€ΡˆΠΈΠΌΠ΅ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Π½Π° Ρ‚ΠΈΠΏΠΎΡ‚ Π½Π° ΠΈΠ·ΠΌΠ΅Π½Π΅Ρ‚ΠΈΡ‚Π΅ Π΄Π°Ρ‚ΠΎΡ‚Π΅ΠΊΠΈ ΠΈ Π½Π° Π΄Π°Ρ‚ΠΎΡ‚Π΅ΠΊΠΈΡ‚Π΅ ΡˆΡ‚ΠΎ зависат ΠΎΠ΄ Π½ΠΈΠ². Mypy Π΄ΡƒΡ€ΠΈ ΠΎΡ‚ΠΈΠ΄Π΅ ΠΌΠ°Π»ΠΊΡƒ ΠΏΠΎΠ΄Π°Π»Π΅ΠΊΡƒ: Π°ΠΊΠΎ Π½Π°Π΄Π²ΠΎΡ€Π΅ΡˆΠ½ΠΈΠΎΡ‚ ΠΈΠ½Ρ‚Π΅Ρ€Ρ„Π΅Ρ˜Ρ Π½Π° ΠΌΠΎΠ΄ΡƒΠ»ΠΎΡ‚ Π½Π΅ сС ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈ, mypy прСтпоставува Π΄Π΅ΠΊΠ° Π΄Ρ€ΡƒΠ³ΠΈΡ‚Π΅ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ ΡˆΡ‚ΠΎ Π³ΠΎ ΡƒΠ²Π΅Π·ΠΎΠ° овој ΠΌΠΎΠ΄ΡƒΠ» Π½Π΅ Ρ‚Ρ€Π΅Π±Π° ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ Π΄Π° сС ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡƒΠ²Π°Π°Ρ‚.

Π˜Π½ΠΊΡ€Π΅ΠΌΠ΅Π½Ρ‚Π°Π»Π½ΠΎΡ‚ΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡƒΠ²Π°ΡšΠ΅ Π½ΠΈ ΠΏΠΎΠΌΠΎΠ³Π½Π° ΠΌΠ½ΠΎΠ³Ρƒ ΠΊΠΎΠ³Π° Π·Π°Π±Π΅Π»Π΅ΠΆΡƒΠ²Π°ΠΌΠ΅ Π³ΠΎΠ»Π΅ΠΌΠΈ ΠΊΠΎΠ»ΠΈΡ‡ΠΈΠ½ΠΈ Π½Π° постоСчки ΠΊΠΎΠ΄. ΠŸΠΎΠ΅Π½Ρ‚Π°Ρ‚Π° Π΅ Π²ΠΎ Ρ‚ΠΎΠ° ΡˆΡ‚ΠΎ овој процСс ΠΎΠ±ΠΈΡ‡Π½ΠΎ Π²ΠΊΠ»ΡƒΡ‡ΡƒΠ²Π° ΠΌΠ½ΠΎΠ³Ρƒ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π»ΠΈΠ²ΠΈ Ρ€Π°Π±ΠΎΡ‚ΠΈ Π½Π° mypy бидСјќи ΠΏΡ€ΠΈΠ±Π΅Π»Π΅ΡˆΠΊΠΈΡ‚Π΅ постСпСно сС Π΄ΠΎΠ΄Π°Π²Π°Π°Ρ‚ Π²ΠΎ ΠΊΠΎΠ΄ΠΎΡ‚ ΠΈ постСпСно сС ΠΏΠΎΠ΄ΠΎΠ±Ρ€ΡƒΠ²Π°Π°Ρ‚. ΠŸΡ€Π²Π°Ρ‚Π° ΡΠ΅Ρ€ΠΈΡ˜Π° Π½Π° mypy сè ΡƒΡˆΡ‚Π΅ бСшС ΠΌΠ½ΠΎΠ³Ρƒ Π±Π°Π²Π½Π° бидСјќи имашС ΠΌΠ½ΠΎΠ³Ρƒ зависности Π·Π° ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ°. ΠŸΠΎΡ‚ΠΎΠ°, Π·Π° Π΄Π° ја ΠΏΠΎΠ΄ΠΎΠ±Ρ€ΠΈΠΌΠ΅ ΡΠΈΡ‚ΡƒΠ°Ρ†ΠΈΡ˜Π°Ρ‚Π°, ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½Ρ‚ΠΈΡ€Π°Π²ΠΌΠ΅ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·Π°ΠΌ Π·Π° далСчинско ΠΊΠ΅ΡˆΠΈΡ€Π°ΡšΠ΅. Ако mypy ΠΎΡ‚ΠΊΡ€ΠΈΠ΅ Π΄Π΅ΠΊΠ° Π»ΠΎΠΊΠ°Π»Π½Π°Ρ‚Π° кСш Π΅ Π²Π΅Ρ€ΠΎΡ˜Π°Ρ‚Π½ΠΎ застарСна, ја ΠΏΡ€Π΅Π·Π΅ΠΌΠ° ΠΌΠΎΠΌΠ΅Π½Ρ‚Π°Π»Π½Π°Ρ‚Π° слика ΠΎΠ΄ ΠΊΠ΅ΡˆΠΎΡ‚ Π·Π° Ρ†Π΅Π»Π°Ρ‚Π° Π±Π°Π·Π° Π½Π° ΠΊΠΎΠ΄ΠΎΠ²ΠΈ ΠΎΠ΄ Ρ†Π΅Π½Ρ‚Ρ€Π°Π»ΠΈΠ·ΠΈΡ€Π°Π½ΠΎΡ‚ΠΎ ΡΠΊΠ»Π°Π΄ΠΈΡˆΡ‚Π΅. ΠŸΠΎΡ‚ΠΎΠ° Π²Ρ€ΡˆΠΈ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»Π½Π° ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° ΠΊΠΎΡ€ΠΈΡΡ‚Π΅Ρ˜ΡœΠΈ ја ΠΎΠ²Π°Π° слика. Ова Π½ΠΈ донСсС ΡƒΡˆΡ‚Π΅ Π΅Π΄Π΅Π½ Π³ΠΎΠ»Π΅ΠΌ Ρ‡Π΅ΠΊΠΎΡ€ ΠΊΠΎΠ½ Π·Π³ΠΎΠ»Π΅ΠΌΡƒΠ²Π°ΡšΠ΅ Π½Π° пСрформанситС Π½Π° mypy.

Ова бСшС ΠΏΠ΅Ρ€ΠΈΠΎΠ΄ Π½Π° Π±Ρ€Π·ΠΎ ΠΈ ΠΏΡ€ΠΈΡ€ΠΎΠ΄Π½ΠΎ ΠΏΡ€ΠΈΡ„Π°ΡœΠ°ΡšΠ΅ Π½Π° ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Π½Π° Ρ‚ΠΈΠΏΠΎΡ‚ Π²ΠΎ Dropbox. Π”ΠΎ ΠΊΡ€Π°Ρ˜ΠΎΡ‚ Π½Π° 2016 Π³ΠΎΠ΄ΠΈΠ½Π°, вСќС ΠΈΠΌΠ°Π²ΠΌΠ΅ ΠΏΡ€ΠΈΠ±Π»ΠΈΠΆΠ½ΠΎ 420000 Π»ΠΈΠ½ΠΈΠΈ Python ΠΊΠΎΠ΄ со ΠΏΡ€ΠΈΠ±Π΅Π»Π΅ΡˆΠΊΠΈ Π·Π° Ρ‚ΠΈΠΏΠΎΠ²ΠΈ. ΠœΠ½ΠΎΠ³Ρƒ корисници Π±Π΅Π° Π΅Π½Ρ‚ΡƒΠ·ΠΈΡ˜Π°ΡΡ‚ΠΈ Π·Π° ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Π½Π° Ρ‚ΠΈΠΏΠΎΡ‚. Π‘Γ¨ повСќС Ρ€Π°Π·Π²ΠΎΡ˜Π½ΠΈ Ρ‚ΠΈΠΌΠΎΠ²ΠΈ користСа Dropbox mypy.

Π‘Γ¨ изглСдашС Π΄ΠΎΠ±Ρ€ΠΎ Ρ‚ΠΎΠ³Π°Ρˆ, Π½ΠΎ ΠΈΠΌΠ°Π²ΠΌΠ΅ ΡƒΡˆΡ‚Π΅ ΠΌΠ½ΠΎΠ³Ρƒ Π΄Π° Π½Π°ΠΏΡ€Π°Π²ΠΈΠΌΠ΅. ΠŸΠΎΡ‡Π½Π°Π²ΠΌΠ΅ Π΄Π° спровСдувамС ΠΏΠ΅Ρ€ΠΈΠΎΠ΄ΠΈΡ‡Π½ΠΈ ΠΈΠ½Ρ‚Π΅Ρ€Π½ΠΈ Π°Π½ΠΊΠ΅Ρ‚ΠΈ Π½Π° корисници со Ρ†Π΅Π» Π΄Π° Π³ΠΈ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΡƒΠ²Π°ΠΌΠ΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°Ρ‚ΠΈΡ‡Π½ΠΈΡ‚Π΅ области Π½Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΡ‚ ΠΈ Π΄Π° Ρ€Π°Π·Π±Π΅Ρ€Π΅ΠΌΠ΅ ΠΊΠΎΠΈ ΠΏΡ€Π°ΡˆΠ°ΡšΠ° Ρ‚Ρ€Π΅Π±Π° Π΄Π° сС Ρ€Π΅ΡˆΠ°Ρ‚ ΠΏΡ€Π²ΠΎ (ΠΎΠ²Π°Π° ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ° сè ΡƒΡˆΡ‚Π΅ сС користи Π²ΠΎ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΡ˜Π°Ρ‚Π° дСнСс). НајваТни, ΠΊΠ°ΠΊΠΎ ΡˆΡ‚ΠΎ стана јасно, Π±Π΅Π° Π΄Π²Π΅ Π·Π°Π΄Π°Ρ‡ΠΈ. ΠŸΡ€Π²ΠΎ, Π½ΠΈ Ρ‚Ρ€Π΅Π±Π°ΡˆΠ΅ повСќС ΠΏΠΎΠΊΡ€ΠΈΠ²Π°ΡšΠ΅ Π½Π° Ρ‚ΠΈΠΏΠΎΡ‚ Π½Π° ΠΊΠΎΠ΄ΠΎΡ‚, Π²Ρ‚ΠΎΡ€ΠΎ, Π½ΠΈ Ρ‚Ρ€Π΅Π±Π°ΡˆΠ΅ mypy Π·Π° Π΄Π° Ρ€Π°Π±ΠΎΡ‚ΠΈ ΠΏΠΎΠ±Ρ€Π·ΠΎ. Π‘Π΅ΡˆΠ΅ апсолутно јасно Π΄Π΅ΠΊΠ° Π½Π°ΡˆΠ°Ρ‚Π° Ρ€Π°Π±ΠΎΡ‚Π° Π΄Π° Π³ΠΎ Π·Π°Π±Ρ€Π·Π°ΠΌΠ΅ mypy ΠΈ Π΄Π° ја ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½Ρ‚ΠΈΡ€Π°ΠΌΠ΅ Π²ΠΎ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈ Π½Π° ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΡ˜Π°Ρ‚Π° сè ΡƒΡˆΡ‚Π΅ бСшС Π΄Π°Π»Π΅ΠΊΡƒ ΠΎΠ΄ Π·Π°Π²Ρ€ΡˆΠ΅Π½Π°. НиС, цСлосно свСсни Π·Π° ваТноста Π½Π° ΠΎΠ²ΠΈΠ΅ Π΄Π²Π΅ Π·Π°Π΄Π°Ρ‡ΠΈ, сС Π·Π°Ρ„Π°Ρ‚ΠΈΠ²ΠΌΠ΅ со Π½ΠΈΠ²Π½ΠΎ Ρ€Π΅ΡˆΠ°Π²Π°ΡšΠ΅.

ПовСќС продуктивност!

Π˜Π½ΠΊΡ€Π΅ΠΌΠ΅Π½Ρ‚Π°Π»Π½ΠΈΡ‚Π΅ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ Π³ΠΎ Π½Π°ΠΏΡ€Π°Π²ΠΈΡ˜Π° mypy ΠΏΠΎΠ±Ρ€Π·, Π½ΠΎ Π°Π»Π°Ρ‚ΠΊΠ°Ρ‚Π° сè ΡƒΡˆΡ‚Π΅ Π½Π΅ бСшС Π΄ΠΎΠ²ΠΎΠ»Π½ΠΎ Π±Ρ€Π·Π°. ΠœΠ½ΠΎΠ³Ρƒ ΠΏΠΎΠ΅Π΄ΠΈΠ½Π΅Ρ‡Π½ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ Ρ‚Ρ€Π°Π΅Ρ˜Π° ΠΎΠΊΠΎΠ»Ρƒ Π΅Π΄Π½Π° ΠΌΠΈΠ½ΡƒΡ‚Π°. ΠŸΡ€ΠΈΡ‡ΠΈΠ½Π°Ρ‚Π° Π·Π° Ρ‚ΠΎΠ° бСшС Ρ†ΠΈΠΊΠ»ΠΈΡ‡Π½ΠΈΠΎΡ‚ ΡƒΠ²ΠΎΠ·. Ова Π²Π΅Ρ€ΠΎΡ˜Π°Ρ‚Π½ΠΎ Π½Π΅ΠΌΠ° Π΄Π° Π³ΠΎ ΠΈΠ·Π½Π΅Π½Π°Π΄ΠΈ сСкој кој Ρ€Π°Π±ΠΎΡ‚Π΅Π» со Π³ΠΎΠ»Π΅ΠΌΠΈ Π±Π°Π·ΠΈ Π½Π° ΠΊΠΎΠ΄ΠΎΠ²ΠΈ напишани Π²ΠΎ Python. ИмавмС ΠΊΠΎΠΌΠΏΠ»Π΅Ρ‚ΠΈ ΠΎΠ΄ стотици ΠΌΠΎΠ΄ΡƒΠ»ΠΈ, ΠΎΠ΄ ΠΊΠΎΠΈ сСкој ΠΈΠ½Π΄ΠΈΡ€Π΅ΠΊΡ‚Π½ΠΎ Π³ΠΈ ΡƒΠ²Π΅Π·ΡƒΠ²Π°ΡˆΠ΅ ситС Π΄Ρ€ΡƒΠ³ΠΈ. Ако Π±ΠΈΠ»ΠΎ која Π΄Π°Ρ‚ΠΎΡ‚Π΅ΠΊΠ° Π²ΠΎ ΡƒΠ²ΠΎΠ·Π½Π°Ρ‚Π° јамка Π±ΠΈΠ»Π° смСнСта, mypy ΠΌΠΎΡ€Π°Π» Π΄Π° Π³ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΈ ситС Π΄Π°Ρ‚ΠΎΡ‚Π΅ΠΊΠΈ Π²ΠΎ Ρ‚Π°Π° јамка, Π° чСсто ΠΈ ситС ΠΌΠΎΠ΄ΡƒΠ»ΠΈ ΡˆΡ‚ΠΎ ΡƒΠ²Π΅Π·ΡƒΠ²Π°Π»Π΅ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ ΠΎΠ΄ Ρ‚Π°Π° јамка. Π•Π΄Π΅Π½ Ρ‚Π°ΠΊΠΎΠ² циклус бСшС озлогласСниот β€žΠ·Π°ΠΏΠ»Π΅Ρ‚ Π½Π° Π·Π°Π²ΠΈΡΠ½ΠΎΡΡ‚β€œ ΡˆΡ‚ΠΎ ΠΏΡ€Π΅Π΄ΠΈΠ·Π²ΠΈΠΊΠ° ΠΌΠ½ΠΎΠ³Ρƒ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈ Π²ΠΎ Dropbox. ΠžΡ‚ΠΊΠ°ΠΊΠΎ ΠΎΠ²Π°Π° структура ΡΠΎΠ΄Ρ€ΠΆΠ΅ΡˆΠ΅ Π½Π΅ΠΊΠΎΠ»ΠΊΡƒ стотици ΠΌΠΎΠ΄ΡƒΠ»ΠΈ, Π΄ΠΎΠ΄Π΅ΠΊΠ° бСшС ΡƒΠ²Π΅Π·Π΅Π½Π°, Π΄ΠΈΡ€Π΅ΠΊΡ‚Π½ΠΎ ΠΈΠ»ΠΈ ΠΈΠ½Π΄ΠΈΡ€Π΅ΠΊΡ‚Π½ΠΎ, ΠΌΠ½ΠΎΠ³Ρƒ тСстови, сС ΠΊΠΎΡ€ΠΈΡΡ‚Π΅ΡˆΠ΅ ΠΈ Π²ΠΎ ΠΊΠΎΠ΄ΠΎΡ‚ Π·Π° производство.

Ја Ρ€Π°Π·Π³Π»Π΅Π΄Π°Π²ΠΌΠ΅ моТноста Π·Π° β€žΠΎΡ‚ΠΏΠ»Π΅Ρ‚ΠΊΡƒΠ²Π°ΡšΠ΅β€œ Π½Π° ΠΊΡ€ΡƒΠΆΠ½ΠΈΡ‚Π΅ зависности, Π½ΠΎ Π½Π΅ΠΌΠ°Π²ΠΌΠ΅ рСсурси Π΄Π° Π³ΠΎ Π½Π°ΠΏΡ€Π°Π²ΠΈΠΌΠ΅ Ρ‚ΠΎΠ°. ИмашС ΠΏΡ€Π΅ΠΌΠ½ΠΎΠ³Ρƒ ΠΊΠΎΠ΄ со кој Π½Π΅ Π±Π΅Π²ΠΌΠ΅ Π·Π°ΠΏΠΎΠ·Π½Π°Π΅Π½ΠΈ. Како Ρ€Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚ Π½Π° Ρ‚ΠΎΠ°, дојдовмС Π΄ΠΎ Π°Π»Ρ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π΅Π½ пристап. РСшивмС Π΄Π° Π½Π°ΠΏΡ€Π°Π²ΠΈΠΌΠ΅ mypy Π΄Π° Ρ€Π°Π±ΠΎΡ‚ΠΈ Π±Ρ€Π·ΠΎ Π΄ΡƒΡ€ΠΈ ΠΈ Π²ΠΎ присуство Π½Π° β€žΠ·Π°ΠΏΠ»Π΅Ρ‚ΠΊΠΈ Π²ΠΎ Π·Π°Π²ΠΈΡΠ½ΠΎΡΡ‚β€œ. Ја постигнавмС ΠΎΠ²Π°Π° Ρ†Π΅Π» ΠΊΠΎΡ€ΠΈΡΡ‚Π΅Ρ˜ΡœΠΈ Π³ΠΎ Π΄Π΅ΠΌΠΎΠ½ΠΎΡ‚ mypy. Π”Π΅ΠΌΠΎΠ½ΠΎΡ‚ Π΅ процСс Π½Π° сСрвСр кој ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½Ρ‚ΠΈΡ€Π° Π΄Π²Π΅ интСрСсни способности. ΠŸΡ€Π²ΠΎ, складира ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ Π·Π° Ρ†Π΅Π»Π°Ρ‚Π° Π±Π°Π·Π° Π½Π° ΠΊΠΎΠ΄ΠΎΠ²ΠΈ Π²ΠΎ ΠΌΠ΅ΠΌΠΎΡ€ΠΈΡ˜Π°Ρ‚Π°. Ова Π·Π½Π°Ρ‡ΠΈ Π΄Π΅ΠΊΠ° сСкогаш ΠΊΠΎΠ³Π° ќС ΠΈΠ·Π²Ρ€ΡˆΠΈΡ‚Π΅ mypy, Π½Π΅ ΠΌΠΎΡ€Π° Π΄Π° Π²Ρ‡ΠΈΡ‚ΡƒΠ²Π°Ρ‚Π΅ ΠΊΠ΅ΡˆΠΈΡ€Π°Π½ΠΈ ΠΏΠΎΠ΄Π°Ρ‚ΠΎΡ†ΠΈ ΠΏΠΎΠ²Ρ€Π·Π°Π½ΠΈ со ΠΈΠ»Ρ˜Π°Π΄Π½ΠΈΡ†ΠΈ ΡƒΠ²Π΅Π·Π΅Π½ΠΈ зависности. Π’Ρ‚ΠΎΡ€ΠΎ, Ρ‚ΠΎΡ˜ Π²Π½ΠΈΠΌΠ°Ρ‚Π΅Π»Π½ΠΎ, Π½Π° Π½ΠΈΠ²ΠΎ Π½Π° ΠΌΠ°Π»ΠΈ структурни Π΅Π΄ΠΈΠ½ΠΈΡ†ΠΈ, Π³ΠΈ Π°Π½Π°Π»ΠΈΠ·ΠΈΡ€Π° зависноститС ΠΏΠΎΠΌΠ΅Ρ“Ρƒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈΡ‚Π΅ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΡ‚Π΅ Π΅Π½Ρ‚ΠΈΡ‚Π΅Ρ‚ΠΈ. На ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π°ΠΊΠΎ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡ˜Π°Ρ‚Π° foo ΠΏΠΎΠ²ΠΈΠΊΡƒΠ²Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡ˜Π° bar, Ρ‚ΠΎΠ³Π°Ρˆ постои зависност foo ΠΎΠ΄ bar. Кога Π΄Π°Ρ‚ΠΎΡ‚Π΅ΠΊΠ°Ρ‚Π° сС ΠΌΠ΅Π½ΡƒΠ²Π°, Π΄Π΅ΠΌΠΎΠ½ΠΎΡ‚ ΠΏΡ€Π²ΠΎ, ΠΈΠ·ΠΎΠ»ΠΈΡ€Π°Π½ΠΎ, ја ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΡƒΠ²Π° само ΠΏΡ€ΠΎΠΌΠ΅Π½Π΅Ρ‚Π°Ρ‚Π° Π΄Π°Ρ‚ΠΎΡ‚Π΅ΠΊΠ°. ΠŸΠΎΡ‚ΠΎΠ° Π³ΠΈ Ρ€Π°Π·Π³Π»Π΅Π΄ΡƒΠ²Π° Π½Π°Π΄Π²ΠΎΡ€Π΅ΡˆΠ½ΠΎ Π²ΠΈΠ΄Π»ΠΈΠ²ΠΈΡ‚Π΅ ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈ Π½Π° Ρ‚Π°Π° Π΄Π°Ρ‚ΠΎΡ‚Π΅ΠΊΠ°, ΠΊΠ°ΠΊΠΎ ΡˆΡ‚ΠΎ сС потписитС Π½Π° ΠΏΡ€ΠΎΠΌΠ΅Π½Π΅Ρ‚ΠΈΡ‚Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ. Π”Π΅ΠΌΠΎΠ½ΠΎΡ‚ користи Π΄Π΅Ρ‚Π°Π»Π½ΠΈ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ Π·Π° ΡƒΠ²ΠΎΠ·ΠΎΡ‚ само Π·Π° двојно Π΄Π° Π³ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈ ΠΎΠ½ΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΡˆΡ‚ΠΎ Π²ΡΡƒΡˆΠ½ΠΎΡΡ‚ ја користат ΠΈΠ·ΠΌΠ΅Π½Π΅Ρ‚Π°Ρ‚Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡ˜Π°. Π’ΠΎΠΎΠ±ΠΈΡ‡Π°Π΅Π½ΠΎ, со овој пристап, Ρ‚Ρ€Π΅Π±Π° Π΄Π° ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚Π΅ ΠΌΠ½ΠΎΠ³Ρƒ ΠΌΠ°Π»ΠΊΡƒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ.

Π‘ΠΏΡ€ΠΎΠ²Π΅Π΄ΡƒΠ²Π°ΡšΠ΅Ρ‚ΠΎ Π½Π° сСто ΠΎΠ²Π° Π½Π΅ бСшС лСсно, бидСјќи ΠΎΡ€ΠΈΠ³ΠΈΠ½Π°Π»Π½Π°Ρ‚Π° ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡ˜Π° Π½Π° mypy бСшС ΠΌΠ½ΠΎΠ³Ρƒ фокусирана Π½Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π½Π° Π΅Π΄Π½Π° Π΄Π°Ρ‚ΠΎΡ‚Π΅ΠΊΠ° Π²ΠΎ исто Π²Ρ€Π΅ΠΌΠ΅. ΠœΠΎΡ€Π°Π²ΠΌΠ΅ Π΄Π° сС справимС со ΠΌΠ½ΠΎΠ³Ρƒ Π³Ρ€Π°Π½ΠΈΡ‡Π½ΠΈ ситуации, Ρ‡ΠΈΠ΅ΡˆΡ‚ΠΎ ΠΏΠΎΡ˜Π°Π²ΡƒΠ²Π°ΡšΠ΅ Π±Π°Ρ€Π°ΡˆΠ΅ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π΅Π½ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ Π²ΠΎ случаи ΠΊΠΎΠ³Π° Π½Π΅ΡˆΡ‚ΠΎ сС смСни Π²ΠΎ ΠΊΠΎΠ΄ΠΎΡ‚. На ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΎΠ²Π° сС случува ΠΊΠΎΠ³Π° Π½Π° класата ΠΈ Π΅ Π΄ΠΎΠ΄Π΅Π»Π΅Π½Π° Π½ΠΎΠ²Π° основна класа. ΠžΡ‚ΠΊΠ°ΠΊΠΎ Π³ΠΎ Π½Π°ΠΏΡ€Π°Π²ΠΈΠ²ΠΌΠ΅ ΠΎΠ½Π° ΡˆΡ‚ΠΎ Π³ΠΎ сакавмС, ΠΌΠΎΠΆΠ΅Π²ΠΌΠ΅ Π΄Π° Π³ΠΎ Π½Π°ΠΌΠ°Π»ΠΈΠΌΠ΅ Π²Ρ€Π΅ΠΌΠ΅Ρ‚ΠΎ Π½Π° ΠΈΠ·Π²Ρ€ΡˆΡƒΠ²Π°ΡšΠ΅ Π½Π° ΠΏΠΎΠ²Π΅ΡœΠ΅Ρ‚ΠΎ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»Π½ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ Π½Π° само Π½Π΅ΠΊΠΎΠ»ΠΊΡƒ сСкунди. Ова Π½ΠΈ изглСдашС ΠΊΠ°ΠΊΠΎ Π³ΠΎΠ»Π΅ΠΌΠ° ΠΏΠΎΠ±Π΅Π΄Π°.

Π£ΡˆΡ‚Π΅ ΠΏΠΎΠ³ΠΎΠ»Π΅ΠΌΠ° продуктивност!

Π—Π°Π΅Π΄Π½ΠΎ со далСчинското ΠΊΠ΅ΡˆΠΈΡ€Π°ΡšΠ΅ ΡˆΡ‚ΠΎ Π³ΠΎ дискутирав ΠΏΠΎΠ³ΠΎΡ€Π΅, Π΄Π΅ΠΌΠΎΠ½ΠΎΡ‚ mypy рСчиси цСлосно Π³ΠΈ Ρ€Π΅ΡˆΠΈ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈΡ‚Π΅ ΡˆΡ‚ΠΎ сС ΠΏΠΎΡ˜Π°Π²ΡƒΠ²Π°Π°Ρ‚ ΠΊΠΎΠ³Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠ΅Ρ€ΠΎΡ‚ чСсто ΠΈΠ·Π²Ρ€ΡˆΡƒΠ²Π° ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Π½Π° Ρ‚ΠΈΠΏΠΎΡ‚, ΠΏΡ€Π°Π²Π΅Ρ˜ΡœΠΈ ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈ Π½Π° ΠΌΠ°Π» Π±Ρ€ΠΎΡ˜ Π΄Π°Ρ‚ΠΎΡ‚Π΅ΠΊΠΈ. Π‘Π΅ΠΏΠ°ΠΊ, пСрформанситС Π½Π° систСмот Π²ΠΎ Π½Π°Ρ˜Π½Π΅ΠΏΠΎΠ²ΠΎΠ»Π½ΠΈΠΎΡ‚ ΡΠ»ΡƒΡ‡Π°Ρ˜ Π½Π° ΡƒΠΏΠΎΡ‚Ρ€Π΅Π±Π° сè ΡƒΡˆΡ‚Π΅ Π±Π΅Π° Π΄Π°Π»Π΅ΠΊΡƒ ΠΎΠ΄ ΠΎΠΏΡ‚ΠΈΠΌΠ°Π»Π½ΠΈ. Чистото ΡΡ‚Π°Ρ€Ρ‚ΡƒΠ²Π°ΡšΠ΅ Π½Π° mypy ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΏΠΎΡ‚Ρ€Π°Π΅ повСќС ΠΎΠ΄ 15 ΠΌΠΈΠ½ΡƒΡ‚ΠΈ. И ΠΎΠ²Π° бСшС ΠΌΠ½ΠΎΠ³Ρƒ повСќС ΠΎΡ‚ΠΊΠΎΠ»ΠΊΡƒ ΡˆΡ‚ΠΎ Π±ΠΈ Π±ΠΈΠ»Π΅ Π·Π°Π΄ΠΎΠ²ΠΎΠ»Π½ΠΈ. БСкоја Π½Π΅Π΄Π΅Π»Π° ΡΠΈΡ‚ΡƒΠ°Ρ†ΠΈΡ˜Π°Ρ‚Π° ΡΡ‚Π°Π½ΡƒΠ²Π°ΡˆΠ΅ полоша бидСјќи ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠ΅Ρ€ΠΈΡ‚Π΅ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ˜Π° Π΄Π° ΠΏΠΈΡˆΡƒΠ²Π°Π°Ρ‚ Π½ΠΎΠ² ΠΊΠΎΠ΄ ΠΈ Π΄Π° Π΄ΠΎΠ΄Π°Π²Π°Π°Ρ‚ ΠΏΡ€ΠΈΠ±Π΅Π»Π΅ΡˆΠΊΠΈ Π½Π° постоСчкиот ΠΊΠΎΠ΄. ΠΠ°ΡˆΠΈΡ‚Π΅ корисници сè ΡƒΡˆΡ‚Π΅ Π±Π΅Π° Π³Π»Π°Π΄Π½ΠΈ Π·Π° повСќС пСрформанси, Π½ΠΎ Π±Π΅Π²ΠΌΠ΅ ΡΡ€Π΅ΡœΠ½ΠΈ ΡˆΡ‚ΠΎ Π³ΠΈ Π·Π°ΠΏΠΎΠ·Π½Π°Π²ΠΌΠ΅ Π½Π° ΠΏΠΎΠ»ΠΎΠ²ΠΈΠ½Π° ΠΏΠ°Ρ‚.

РСшивмС Π΄Π° сС Π²Ρ€Π°Ρ‚ΠΈΠΌΠ΅ Π½Π° Π΅Π΄Π½Π° ΠΎΠ΄ ΠΏΡ€Π΅Ρ‚Ρ…ΠΎΠ΄Π½ΠΈΡ‚Π΅ ΠΈΠ΄Π΅ΠΈ Π²ΠΎ врска со mypy. ИмСно, Π·Π° ΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚ΠΈΡ€Π°ΡšΠ΅ Π½Π° Python ΠΊΠΎΠ΄ Π²ΠΎ C ΠΊΠΎΠ΄. Π•ΠΊΡΠΏΠ΅Ρ€ΠΈΠΌΠ΅Π½Ρ‚ΠΈΡ€Π°ΡšΠ΅Ρ‚ΠΎ со Cython (систСм кој Π²ΠΈ ΠΎΠ²ΠΎΠ·ΠΌΠΎΠΆΡƒΠ²Π° Π΄Π° Π³ΠΎ ΠΏΡ€Π΅Π²Π΅Π΄Π΅Ρ‚Π΅ ΠΊΠΎΠ΄ΠΎΡ‚ напишан Π²ΠΎ Python Π²ΠΎ C ΠΊΠΎΠ΄) Π½Π΅ Π½ΠΈ Π΄Π°Π΄Π΅ Π²ΠΈΠ΄Π»ΠΈΠ²ΠΎ Π·Π°Π±Ρ€Π·ΡƒΠ²Π°ΡšΠ΅, ΠΏΠ° Ρ€Π΅ΡˆΠΈΠ²ΠΌΠ΅ Π΄Π° ја ΠΎΠΆΠΈΠ²Π΅Π΅ΠΌΠ΅ ΠΈΠ΄Π΅Ρ˜Π°Ρ‚Π° Π·Π° ΠΏΠΈΡˆΡƒΠ²Π°ΡšΠ΅ наш сопствСн ΠΊΠΎΠΌΠΏΠ°Ρ˜Π»Π΅Ρ€. Π‘ΠΈΠ΄Π΅Ρ˜ΡœΠΈ Π±Π°Π·Π°Ρ‚Π° Π½Π° ΠΊΠΎΠ΄ΠΎΠ²ΠΈ mypy (напишана Π²ΠΎ Python) вСќС Π³ΠΈ содрТи ситС ΠΏΠΎΡ‚Ρ€Π΅Π±Π½ΠΈ ΠΏΡ€ΠΈΠ±Π΅Π»Π΅ΡˆΠΊΠΈ Π·Π° Ρ‚ΠΈΠΏΠΎΡ‚, смСтавмС Π΄Π΅ΠΊΠ° Π±ΠΈ Π±ΠΈΠ»ΠΎ Π²Ρ€Π΅Π΄Π½ΠΎ Π΄Π° сС ΠΎΠ±ΠΈΠ΄Π΅ΠΌΠ΅ Π΄Π° Π³ΠΈ користимС ΠΎΠ²ΠΈΠ΅ ΠΏΡ€ΠΈΠ±Π΅Π»Π΅ΡˆΠΊΠΈ Π·Π° Π΄Π° Π³ΠΎ Π·Π°Π±Ρ€Π·Π°ΠΌΠ΅ систСмот. Π‘Ρ€Π·ΠΎ создадов ΠΏΡ€ΠΎΡ‚ΠΎΡ‚ΠΈΠΏ Π·Π° Π΄Π° ја тСстирам ΠΎΠ²Π°Π° идСја. ПокаТа повСќС ΠΎΠ΄ 10-ΠΊΡ€Π°Ρ‚Π½ΠΎ Π·Π³ΠΎΠ»Π΅ΠΌΡƒΠ²Π°ΡšΠ΅ Π½Π° пСрформанситС Π½Π° Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ ΠΌΠΈΠΊΡ€ΠΎ-Π±Π΅Π½Ρ‡ΠΌΠ°Ρ€ΠΊΠΎΠ²ΠΈ. ΠΠ°ΡˆΠ°Ρ‚Π° идСја бСшС Π΄Π° Π³ΠΈ ΠΊΠΎΠΌΠΏΠ°Ρ˜Π»ΠΈΡ€Π°ΠΌΠ΅ ΠΌΠΎΠ΄ΡƒΠ»ΠΈΡ‚Π΅ Π½Π° Python Π²ΠΎ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ C ΠΊΠΎΡ€ΠΈΡΡ‚Π΅Ρ˜ΡœΠΈ Cython ΠΈ Π΄Π° Π³ΠΈ ΠΏΡ€Π΅Ρ‚Π²ΠΎΡ€ΠΈΠΌΠ΅ ΠΏΡ€ΠΈΠ±Π΅Π»Π΅ΡˆΠΊΠΈΡ‚Π΅ Π·Π° Ρ‚ΠΈΠΏΠΎΠ²ΠΈ Π²ΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ Π½Π° Ρ‚ΠΈΠΏΠΎΡ‚ Π½Π° Π²Ρ€Π΅ΠΌΠ΅ Π½Π° ΠΈΠ·Π²Ρ€ΡˆΡƒΠ²Π°ΡšΠ΅ (ΠΎΠ±ΠΈΡ‡Π½ΠΎ ΠΏΡ€ΠΈΠ±Π΅Π»Π΅ΡˆΠΊΠΈΡ‚Π΅ Π·Π° Ρ‚ΠΈΠΏΠΎΡ‚ сС ΠΈΠ³Π½ΠΎΡ€ΠΈΡ€Π°Π°Ρ‚ ΠΏΡ€ΠΈ ΠΈΠ·Π²Ρ€ΡˆΡƒΠ²Π°ΡšΠ΅ ΠΈ сС користат само ΠΎΠ΄ систСмитС Π·Π° ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Π½Π° Ρ‚ΠΈΠΏΠΎΡ‚ ). НиС, Π²ΡΡƒΡˆΠ½ΠΎΡΡ‚, ΠΏΠ»Π°Π½ΠΈΡ€Π°Π²ΠΌΠ΅ Π΄Π° ја ΠΏΡ€Π΅Π²Π΅Π΄Π΅ΠΌΠ΅ ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡ˜Π°Ρ‚Π° mypy ΠΎΠ΄ Python Π½Π° јазик кој Π΅ Π΄ΠΈΠ·Π°Ρ˜Π½ΠΈΡ€Π°Π½ Π΄Π° Π±ΠΈΠ΄Π΅ статички ΠΏΠΈΡˆΡƒΠ²Π°Π½, кој ќС ΠΈΠ·Π³Π»Π΅Π΄Π° (ΠΈ, Π²ΠΎ најголСм Π΄Π΅Π», ќС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½ΠΈΡ€Π°) Ρ‚ΠΎΡ‡Π½ΠΎ ΠΊΠ°ΠΊΠΎ Python. (Овој Π²ΠΈΠ΄ Π½Π° ΠΌΠ΅Ρ“ΡƒΡ˜Π°Π·ΠΈΡ‡Π½Π° ΠΌΠΈΠ³Ρ€Π°Ρ†ΠΈΡ˜Π° стана Π½Π΅ΡˆΡ‚ΠΎ ΠΊΠ°ΠΊΠΎ Ρ‚Ρ€Π°Π΄ΠΈΡ†ΠΈΡ˜Π° Π½Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΡ‚ mypy. ΠžΡ€ΠΈΠ³ΠΈΠ½Π°Π»Π½Π°Ρ‚Π° ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡ˜Π° Π½Π° mypy бСшС напишана Π²ΠΎ Alore, Π° ΠΏΠΎΡ‚ΠΎΠ° имашС синтаксички Ρ…ΠΈΠ±Ρ€ΠΈΠ΄ Π½Π° Java ΠΈ Python).

Π€ΠΎΠΊΡƒΡΠΈΡ€Π°ΡšΠ΅Ρ‚ΠΎ Π½Π° API Π½Π° Π΅ΠΊΡΡ‚Π΅Π½Π·ΠΈΡ˜Π°Ρ‚Π° CPython бСшС ΠΊΠ»ΡƒΡ‡Π½ΠΎ Π·Π° Π΄Π° Π½Π΅ сС ΠΈΠ·Π³ΡƒΠ±Π°Ρ‚ способноститС Π·Π° ΡƒΠΏΡ€Π°Π²ΡƒΠ²Π°ΡšΠ΅ со ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈ. НС Π½ΠΈ Ρ‚Ρ€Π΅Π±Π°ΡˆΠ΅ Π΄Π° ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½Ρ‚ΠΈΡ€Π°ΠΌΠ΅ Π²ΠΈΡ€Ρ‚ΡƒΠ΅Π»Π½Π° машина ΠΈΠ»ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ ΡˆΡ‚ΠΎ Π½ΠΈ Π±Π΅Π° ΠΏΠΎΡ‚Ρ€Π΅Π±Π½ΠΈ Π½Π° mypy. Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»Π½ΠΎ, сè ΡƒΡˆΡ‚Π΅ ќС ΠΈΠΌΠ°ΠΌΠ΅ пристап Π΄ΠΎ Ρ†Π΅Π»ΠΈΠΎΡ‚ СкосистСм Π½Π° Python ΠΈ ситС Π°Π»Π°Ρ‚ΠΊΠΈ (ΠΊΠ°ΠΊΠΎ ΡˆΡ‚ΠΎ Π΅ pytest). Ова Π·Π½Π°Ρ‡Π΅ΡˆΠ΅ Π΄Π΅ΠΊΠ° ΠΌΠΎΠΆΠ΅ΠΌΠ΅ Π΄Π° ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΠΌΠ΅ Π΄Π° Π³ΠΎ користимС ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚ΠΈΡ€Π°Π½ΠΈΠΎΡ‚ Python ΠΊΠΎΠ΄ Π·Π° Π²Ρ€Π΅ΠΌΠ΅ Π½Π° Ρ€Π°Π·Π²ΠΎΡ˜ΠΎΡ‚, ΠΎΠ²ΠΎΠ·ΠΌΠΎΠΆΡƒΠ²Π°Ρ˜ΡœΠΈ Π½ΠΈ Π΄Π° ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΠΌΠ΅ Π΄Π° Ρ€Π°Π±ΠΎΡ‚ΠΈΠΌΠ΅ со ΠΌΠ½ΠΎΠ³Ρƒ Π±Ρ€Π·Π° шСма Π½Π° ΠΏΡ€Π°Π²Π΅ΡšΠ΅ ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈ Π²ΠΎ ΠΊΠΎΠ΄ΠΎΡ‚ ΠΈ Π½Π΅Π³ΠΎΠ²ΠΎ Ρ‚Π΅ΡΡ‚ΠΈΡ€Π°ΡšΠ΅, намСсто Π΄Π° Ρ‡Π΅ΠΊΠ°ΠΌΠ΅ ΠΊΠΎΠ΄ΠΎΡ‚ Π΄Π° сС ΠΊΠΎΠΌΠΏΠ°Ρ˜Π»ΠΈΡ€Π°. ИзглСдашС ΠΊΠ°ΠΊΠΎ Π΄Π° ΠΏΡ€Π°Π²ΠΈΠΌΠ΅ ΠΎΠ΄Π»ΠΈΡ‡Π½Π° Ρ€Π°Π±ΠΎΡ‚Π° сСдСјќи Π½Π° Π΄Π²Π΅ ΡΡ‚ΠΎΠ»Ρ‡ΠΈΡšΠ°, Ρ‚Π°ΠΊΠ° Π΄Π° сС ΠΊΠ°ΠΆΠ΅, ΠΈ Π½ΠΈ сС Π΄ΠΎΠΏΠ°Π΄Π½Π°.

ΠšΠΎΠΌΠΏΠ°Ρ˜Π»Π΅Ρ€ΠΎΡ‚, кој Π³ΠΎ Π½Π°Ρ€Π΅ΠΊΠΎΠ²ΠΌΠ΅ mypyc (бидСјќи користи mypy ΠΊΠ°ΠΊΠΎ ΠΏΡ€Π΅Π΄Π΅Π½ Π΄Π΅Π» Π·Π° Π°Π½Π°Π»ΠΈΠ·Π° Π½Π° Ρ‚ΠΈΠΏΠΎΠ²ΠΈ), сС ΠΏΠΎΠΊΠ°ΠΆΠ° ΠΊΠ°ΠΊΠΎ ΠΌΠ½ΠΎΠ³Ρƒ ΡƒΡΠΏΠ΅ΡˆΠ΅Π½ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚. Π‘Π΅Π²ΠΊΡƒΠΏΠ½ΠΎ, постигнавмС ΠΏΡ€ΠΈΠ±Π»ΠΈΠΆΠ½ΠΎ 4x Π·Π°Π±Ρ€Π·ΡƒΠ²Π°ΡšΠ΅ Π·Π° чСсти бСгства Π½Π° mypy Π±Π΅Π· ΠΊΠ΅ΡˆΠΈΡ€Π°ΡšΠ΅. Π—Π° Ρ€Π°Π·Π²ΠΎΡ˜ Π½Π° Ρ˜Π°Π΄Ρ€ΠΎΡ‚ΠΎ Π½Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΡ‚ mypyc Π½Π° ΠΌΠ°Π» Ρ‚ΠΈΠΌ ΠΎΠ΄ Мајкл Π‘Π°Π»ΠΈΠ²Π°Π½, Иван ЛСвкивски, Π₯Ρ˜Ρƒ Π₯Π°Π½ ΠΈ јас ΠΌΡƒ Π±Π΅Π° ΠΏΠΎΡ‚Ρ€Π΅Π±Π½ΠΈ ΠΎΠΊΠΎΠ»Ρƒ 4 калСндарски мСсСци. Овој ΠΎΠ±Π΅ΠΌ Π½Π° Ρ€Π°Π±ΠΎΡ‚Π° бСшС ΠΌΠ½ΠΎΠ³Ρƒ ΠΏΠΎΠΌΠ°Π» ΠΎΠ΄ ΠΎΠ½Π° ΡˆΡ‚ΠΎ Π±ΠΈ Π±ΠΈΠ»ΠΎ ΠΏΠΎΡ‚Ρ€Π΅Π±Π½ΠΎ Π·Π° Π΄Π° сС ΠΏΡ€Π΅ΠΏΠΈΡˆΠ΅ mypy, Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π²ΠΎ C++ ΠΈΠ»ΠΈ Go. И ΠΌΠΎΡ€Π°Π²ΠΌΠ΅ Π΄Π° Π½Π°ΠΏΡ€Π°Π²ΠΈΠΌΠ΅ ΠΌΠ½ΠΎΠ³Ρƒ ΠΏΠΎΠΌΠ°Π»ΠΊΡƒ ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈ Π²ΠΎ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΡ‚ ΠΎΡ‚ΠΊΠΎΠ»ΠΊΡƒ ΡˆΡ‚ΠΎ ќС Ρ‚Ρ€Π΅Π±Π°ΡˆΠ΅ Π΄Π° Π½Π°ΠΏΡ€Π°Π²ΠΈΠΌΠ΅ ΠΊΠΎΠ³Π° Π³ΠΎ ΠΏΡ€Π΅ΠΏΠΈΡˆΡƒΠ²Π°Π²ΠΌΠ΅ Π½Π° Π΄Ρ€ΡƒΠ³ јазик. Π˜ΡΡ‚ΠΎ Ρ‚Π°ΠΊΠ°, сС Π½Π°Π΄Π΅Π²Π°Π²ΠΌΠ΅ Π΄Π΅ΠΊΠ° ќС Π³ΠΎ Π΄ΠΎΠ²Π΅Π΄Π΅ΠΌΠ΅ mypyc Π½Π° Ρ‚Π°ΠΊΠ²ΠΎ Π½ΠΈΠ²ΠΎ ΡˆΡ‚ΠΎ Π΄Ρ€ΡƒΠ³ΠΈΡ‚Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠ΅Ρ€ΠΈ Π½Π° Dropbox Π±ΠΈ ΠΌΠΎΠΆΠ΅Π»Π΅ Π΄Π° Π³ΠΎ користат Π·Π° Π΄Π° Π³ΠΎ ΠΊΠΎΠΌΠΏΠ°Ρ˜Π»ΠΈΡ€Π°Π°Ρ‚ ΠΈ Π·Π°Π±Ρ€Π·Π°Π°Ρ‚ Π½ΠΈΠ²Π½ΠΈΠΎΡ‚ ΠΊΠΎΠ΄.

Π—Π° Π΄Π° Π³ΠΎ постигнСмС ΠΎΠ²Π° Π½ΠΈΠ²ΠΎ Π½Π° пСрформанси, ΠΌΠΎΡ€Π°Π²ΠΌΠ΅ Π΄Π° ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΠΌΠ΅ Π½Π΅ΠΊΠΎΠ»ΠΊΡƒ интСрСсни инТСнСрски Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ˜Π°. Π’Π°ΠΊΠ°, ΠΊΠΎΠΌΠΏΠ°Ρ˜Π»Π΅Ρ€ΠΎΡ‚ ΠΌΠΎΠΆΠ΅ Π΄Π° Π·Π°Π±Ρ€Π·Π° ΠΌΠ½ΠΎΠ³Ρƒ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ со ΠΊΠΎΡ€ΠΈΡΡ‚Π΅ΡšΠ΅ Π½Π° Π±Ρ€Π·ΠΈ конструкции Π½Π° ниско Π½ΠΈΠ²ΠΎ C. На ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΊΠΎΠΌΠΏΠ°Ρ˜Π»ΠΈΡ€Π°Π½ ΠΏΠΎΠ²ΠΈΠΊ Π½Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡ˜Π° сС ΠΏΡ€Π΅Π²Π΅Π΄ΡƒΠ²Π° Π²ΠΎ ΠΏΠΎΠ²ΠΈΠΊ Π½Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡ˜Π° C. И Ρ‚Π°ΠΊΠΎΠ² ΠΏΠΎΠ²ΠΈΠΊ Π΅ ΠΌΠ½ΠΎΠ³Ρƒ ΠΏΠΎΠ±Ρ€Π· ΠΎΡ‚ΠΊΠΎΠ»ΠΊΡƒ ΠΏΠΎΠ²ΠΈΠΊΡƒΠ²Π°ΡšΠ΅ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚ΠΈΡ€Π°Π½Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡ˜Π°. НСкои ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ, ΠΊΠ°ΠΊΠΎ ΡˆΡ‚ΠΎ сС ΠΏΡ€Π΅Π±Π°Ρ€ΡƒΠ²Π°ΡšΠ΅ Π½Π° Ρ€Π΅Ρ‡Π½ΠΈΠΊ, сè ΡƒΡˆΡ‚Π΅ Π²ΠΊΠ»ΡƒΡ‡ΡƒΠ²Π°Π° ΠΊΠΎΡ€ΠΈΡΡ‚Π΅ΡšΠ΅ Π½Π° Ρ€Π΅Π΄ΠΎΠ²Π½ΠΈ ΠΏΠΎΠ²ΠΈΡ†ΠΈ C-API ΠΎΠ΄ CPython, ΠΊΠΎΠΈ Π±Π΅Π° само ΠΌΠ°Ρ€Π³ΠΈΠ½Π°Π»Π½ΠΎ ΠΏΠΎΠ±Ρ€Π·ΠΈ ΠΊΠΎΠ³Π° сС ΠΊΠΎΠΌΠΏΠ°Ρ˜Π»ΠΈΡ€Π°Π°Ρ‚. УспСавмС Π΄Π° Π³ΠΎ Π΅Π»ΠΈΠΌΠΈΠ½ΠΈΡ€Π°ΠΌΠ΅ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»Π½ΠΎΡ‚ΠΎ ΠΎΠΏΡ‚ΠΎΠ²Π°Ρ€ΡƒΠ²Π°ΡšΠ΅ Π½Π° систСмот создадСно со Ρ‚ΠΎΠ»ΠΊΡƒΠ²Π°ΡšΠ΅, Π½ΠΎ ΠΎΠ²Π° Π²ΠΎ овој ΡΠ»ΡƒΡ‡Π°Ρ˜ Π΄Π°Π΄Π΅ само ΠΌΠ°Π»Π° Π΄ΠΎΠ±ΠΈΠ²ΠΊΠ° Π²ΠΎ однос Π½Π° пСрформанситС.

Π—Π° Π΄Π° Π³ΠΈ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΡƒΠ²Π°ΠΌΠ΅ Π½Π°Ρ˜Ρ‡Π΅ΡΡ‚ΠΈΡ‚Π΅ β€žΠ±Π°Π²Π½ΠΈβ€œ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ, ΠΈΠ·Π²Ρ€ΡˆΠΈΠ²ΠΌΠ΅ ΠΏΡ€ΠΎΡ„ΠΈΠ»ΠΈΡ€Π°ΡšΠ΅ Π½Π° ΠΊΠΎΠ΄. Π’ΠΎΠΎΡ€ΡƒΠΆΠ΅Π½ΠΈ со ΠΎΠ²ΠΈΠ΅ ΠΏΠΎΠ΄Π°Ρ‚ΠΎΡ†ΠΈ, сС ΠΎΠ±ΠΈΠ΄ΠΎΠ²ΠΌΠ΅ ΠΈΠ»ΠΈ Π΄Π° Π³ΠΎ ΠΏΡ€ΠΈΠ»Π°Π³ΠΎΠ΄ΠΈΠΌΠ΅ mypyc Π·Π° Π΄Π° Π³Π΅Π½Π΅Ρ€ΠΈΡ€Π° ΠΏΠΎΠ±Ρ€Π· C ΠΊΠΎΠ΄ Π·Π° Ρ‚Π°ΠΊΠ²ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ ΠΈΠ»ΠΈ Π΄Π° Π³ΠΎ ΠΏΡ€Π΅Ρ€Π°Π±ΠΎΡ‚ΠΈΠΌΠ΅ соодвСтниот Python-ΠΊΠΎΠ΄ ΠΊΠΎΡ€ΠΈΡΡ‚Π΅Ρ˜ΡœΠΈ ΠΏΠΎΠ±Ρ€Π·ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ (Π° понСкогаш Сдноставно Π½Π΅ΠΌΠ°Π²ΠΌΠ΅ Π΄ΠΎΠ²ΠΎΠ»Π½ΠΎ Сдноставно Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ Π·Π° Ρ‚ΠΎΡ˜ ΠΈΠ»ΠΈ Π΄Ρ€ΡƒΠ³ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ) . ΠŸΡ€Π΅ΠΏΠΈΡˆΡƒΠ²Π°ΡšΠ΅Ρ‚ΠΎ Π½Π° ΠΊΠΎΠ΄ΠΎΡ‚ Π½Π° ΠŸΠ°Ρ˜Ρ‚ΠΎΠ½ чСсто бСшС полСсно Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ Π·Π° ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΎΡ‚ ΠΎΡ‚ΠΊΠΎΠ»ΠΊΡƒ ΠΊΠΎΠΌΠΏΠ°Ρ˜Π»Π΅Ρ€ΠΎΡ‚ автоматски Π΄Π° ја ΠΈΠ·Π²Ρ€ΡˆΠΈ истата Ρ‚Ρ€Π°Π½ΡΡ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡ˜Π°. На Π΄ΠΎΠ»Π³ Ρ€ΠΎΠΊ, сакавмС Π΄Π° Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·ΠΈΡ€Π°ΠΌΠ΅ ΠΌΠ½ΠΎΠ³Ρƒ ΠΎΠ΄ ΠΎΠ²ΠΈΠ΅ трансформации, Π½ΠΎ Π²ΠΎ Ρ‚ΠΎΠ° Π²Ρ€Π΅ΠΌΠ΅ Π±Π΅Π²ΠΌΠ΅ фокусирани Π½Π° Π·Π°Π±Ρ€Π·ΡƒΠ²Π°ΡšΠ΅ Π½Π° mypy со ΠΌΠΈΠ½ΠΈΠΌΠ°Π»Π΅Π½ Π½Π°ΠΏΠΎΡ€. И ΠΏΡ€ΠΈ Π΄Π²ΠΈΠΆΠ΅ΡšΠ΅Ρ‚ΠΎ ΠΊΠΎΠ½ ΠΎΠ²Π°Π° Ρ†Π΅Π», прСсСковмС Π½Π΅ΠΊΠΎΠ»ΠΊΡƒ Π°Π³Π»ΠΈ.

Π”Π° сС ​​продолТи ...

ΠŸΠΎΡ‡ΠΈΡ‚ΡƒΠ²Π°Π½ΠΈ Ρ‡ΠΈΡ‚Π°Ρ‚Π΅Π»ΠΈ! Какви Π±Π΅Π° Π²Π°ΡˆΠΈΡ‚Π΅ Π²ΠΏΠ΅Ρ‡Π°Ρ‚ΠΎΡ†ΠΈ ΠΎΠ΄ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΡ‚ mypy ΠΊΠΎΠ³Π° Π΄ΠΎΠ·Π½Π°Π²Ρ‚Π΅ Π·Π° Π½Π΅Π³ΠΎΠ²ΠΎΡ‚ΠΎ ΠΏΠΎΡΡ‚ΠΎΠ΅ΡšΠ΅?

ΠŸΠ°Ρ‚ΠΎΡ‚ Π΄ΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Π½Π° Ρ‚ΠΈΠΏΠΎΡ‚ Π½Π° 4 ΠΌΠΈΠ»ΠΈΠΎΠ½ΠΈ Π»ΠΈΠ½ΠΈΠΈ ΠΎΠ΄ Python ΠΊΠΎΠ΄. Π”Π΅Π» 2
ΠŸΠ°Ρ‚ΠΎΡ‚ Π΄ΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Π½Π° Ρ‚ΠΈΠΏΠΎΡ‚ Π½Π° 4 ΠΌΠΈΠ»ΠΈΠΎΠ½ΠΈ Π»ΠΈΠ½ΠΈΠΈ ΠΎΠ΄ Python ΠΊΠΎΠ΄. Π”Π΅Π» 2

Π˜Π·Π²ΠΎΡ€: www.habr.com

Π”ΠΎΠ΄Π°Π΄Π΅Ρ‚Π΅ ΠΊΠΎΠΌΠ΅Π½Ρ‚Π°Ρ€