Підтримку Python 2.7 припиняють вже першого січня. Але багато компаній досі не перейшли на його оновлену версію. Обговорюємо причини ситуації, що склалася.
Не всі готові до нового «пітона»
На початку 2020 року буде припинено підтримку версії Python 2.7, і оновлення по частині безпеки призупинять. Незважаючи на те, що про ці плани стало відомо ще п'ять років тому - в 2014 році Гвідо ван Россум, автор Python, особисто закликав розробників і компанії мігрувати на Python 3 - процес адаптації нової версії йде повільно. На початку року близько 60% пакетів, скачуваних з The Python Package Index (PyPI), ставилися до версії 2.7. До вересня ця цифра зменшилася до 40%, але, швидше за все, вона не досягне нуля до дедлайну.
У великій компанії впровадження нового фреймворка або перехід на оновлену технологію завжди вимагає істотних ресурсів і часу. У деяких випадках процес затягується на місяці і навіть роки. Це пов'язано з масивною кодової базою і великим числом залежностей.
У Facebook почали переводити сервіси компанії на Python 3 ще в 2014 році. На реалізацію цього проекту пішов рік - довелося переписати значне число бібліотек і поправити тисячі регрессий. Після цього інженери компанії взялися за Instagram - в цьому випадку перехід зайняв десять місяців. У Dropbox - міграція на Python 3 йде вже цілих три роки.
У деяких компаніях діють суворі правила узгодження істотних технологічних оновлень зі службою безпеки. Іноді цей підрозділ регулює навіть завантаження PIP-пакетів. Служби безпеки компаніі турбує, що при переході на Python 3 в сервісах почнуть з'являтися критичні баги.
Дійсно, в таких сферах, як банкінг і охорона здоров'я, ціна помилки може бути високою. Так, в минулому році британський TSB - в процесі впровадження нової IT-системи - зіткнувся з багом, який викликав збій в роботі системи мобільного банкінгу. В результаті 1,9 млн людей втратили доступ до своїх рахунків. Організація досі розбирається з наслідками і заявами від клієнтів.
Python 2 до сих пір підтримують провідні ОС на базі Linux. Наприклад, в RHEL користувачі можуть перемикатися між двома версіями мови. При цьому процедура не позбавлена багів, в основному пов'язаних з роботою покажчиків. У жовтні схожу помилку знайшли в Debian. Тому тут ще є над чим працювати.
Що думає спільнота
Резиденти Hacker News в тематичному форумі відзначають, що головна причина повільної міграції - відсутність (до недавнього часу) будь-якої відчутної вигоди від цього процесу. У мові не було нових функцій, які могли б зацікавити розробників і підштовхнути їх до переходу на Python 3. При цьому деякі рішення, зроблені авторами мови, навпаки, псували враження від програмування на ньому. Зокрема, велику хвилю невдоволення викликало виключення підтримки байтових рядків і перехід на роботу з Unicode.
Фахівці з Stack Overflow також відзначають, що в екосистемі Python бракувало вбудованих інструментів для автоматизованої трансляції коду з однієї версії на іншу. Проблему вирішили з появою таких утиліт, як 2to3 і six .
Відзначимо, що за останні роки функціональність Python 3 значно розширилася. Додали множення матриць, модуль asyncio для організації конкурентного програмування, а також анотації типів змінних, полів класу, аргументів і значень функцій. Підтримка Python 3 навіть з'явилася для інших популярних бібліотек, наприклад scikit-learn для ML.
Оновлений набір функцій повинен переконати компанії перейти на наступну версію мови. І хоча число адептів Python 3 в наступному році значно зросте, ще довгий час будуть зустрічатися компанії, що працюють з Python 2.7.
0 комментариев
Добавить комментарий