Як ефективно працювати з даними та до чого тут Python
Привіт! Мене звуть Олег Андрус, я Python developer у Levi9 і люблю цю мову за зручність, читабельність і велике ком’юніті однодумців.
Python входить у четвірку найпопулярніших мов програмування у світі та поступається лише JavaScript, HTML/CSS і SQL. Ці мови з’явилися раніше та знайшли своє місце на багатьох бізнес-проєктах. І, попри це, Python активно завойовує ІТ-ринок. Він універсальний, зручний у написанні та спрощує роботу з даними.
В цьому матеріалі я з колегами по Levi9 Python Meetup, що проходив всередині липня, Анастасією Ляцькою та В’ячеславом Леськів, розбираємося з можливостями Python і з власного професійного досвіду підтверджуємо ефективність цієї мови в більшості бізнес-задач.
Досвідчені інженери можуть переконатися в правильності вибору мови програмування для проєкту та дізнатися кілька цікавих інсайтів, а початківці — побачити перспективи. Буде корисно!
Поширений і дієвий майже всюди
У 2022 році рейтинг найпопулярніших мов програмування у світі очолюють JavaScript, HTML/CSS та SQL. Наступним йде Python — на ньому пишуть проєкти понад 48% розробників. Зокрема, він поширений у веброзробці, data science та машинному навчанні. Останні роки його часто обирають для NLP-проєктів, як-от створення голосових асистентів, смартконтрактів у блокчейні та спецефектів для кіноіндустрії.
Python не належить жодній компанії та має відкритий код, який кожен може змінити. Як і в більшості open-source напрямах, навколо Python сформувалося велике ком’юніті розробників. Вони обмінюються досвідом і створеними для власних проєктів інтерфейсами, оновлюють та перевіряють бібліотеки на віруси й коректність роботи. Безпечні пакети можна встановити через PIP (package installer for Python).
В Python ти не думаєш, як зробити, а просто робиш
Python добре кластеризує дані та дозволяє спростити їх обробку, що полегшує роботу. Саме тому бізнеси часто обирають його для своїх потреб. Наприклад, його використовує Uber, щоб покращувати взаємодію між водіями та пасажирами. В цьому допомагають численні Python-бібліотеки та фреймворки. Вони дозволяють не писати код з нуля, а швидко та зручно виконувати необхідні операції.
Однією з переваг Python є його тісна взаємодія з Raspberry Pi, що поширений в ІоТ, а також з популярними бібліотеками для ML — TensorFlow і Keras. Крім того, в нього багато інструментів «під капотом» та простий синтаксис коду. Завдяки цьому можна зосередитися на функціоналі, рефакторингу та краще пропрацювати логіку проєкту.
Моя колега Анастасія працює з бібліотекою pandas. Ця бібліотека містить багато методів написання коду, тож розробник витрачає на це менше часу, отримує читабельний код і може зосередитися на логіці та алгоритмах обробки даних.
Анастасія займається створенням чатботів, де основною мовою розробки залишається Python. Проте вибір залежить від сфери та потреб, які має вирішити бот. Так, для месенджерів частіше використовується Python або Java, для браузерної гри — Javascript, а з комп’ютерною впорається С# або C++.
Python універсальний і в сучасній розробці немає області, де він не впорається, натомість є відповідні умови, за яких доречніше використати іншу мову.
Python vs Java
Python, на відміну від Java, — це динамічно типізована мова. Тобто, не потрібно хвилюватися про типи даних і писати довгий код, а концентруватися на інших важливих речах. При цьому є думка, що продуктивність обробки даних в Java набагато краща. Проте практика показує, що якість і швидкість опрацювання гігантських об’ємів даних в обох мовах майже однакова.
Щобільше, такі речі, як Текст-блоки та методи роботи зі String з’явилися в Java лише в одній з її останніх версій, тоді як у Pyton воно працює вже декілька років.
Python vs C
Глибоко в надрах Python побудований на С, але дозволяє написати код набагато швидше. В нього вищий рівень абстракції, тож можна обробляти масиви даних, не вдаючись у деталі. Крім того, є багато вже готових С-based інтерфейсів — наприклад, бібліотеки NumPi чи PsyFi, — що дозволяють працювати з даними як на С. Таке розширення функцій дозволяє зробити продукт ціліснішим.
При цьому С, хоча й вимагає багато часу на написання коду, швидший у процесі виконання логіки. На практиці різниця у швидкодії невідчутна для користувачів, але важлива, наприклад, embedded-розробникам, що мають вмістити багато речей в обмежені за обсягом пам’яті мікроконтролери.
Кожна мова має різний стиль написання функцій і будову, а вибір відповідної залежить від задач і досвіду людей, які з нею працюватимуть. За словами мого колеги В’ячеслава, маленька помилка може вартувати місяця роботи. Цей ризик варто усвідомлювати та не лише враховувати особливості кожної мови, але й адаптувати підхід до виконання задачі та підлаштуватися під мову.
Сильний, але має певні слабкі місця
Недолік Python у порівнянні з мовами як С++ в тому, що при написанні коду треба завжди враховувати можливі варіанти виникнення Runtime помилок і підкріплювати код тестами. Інтерпретатор Python знаходить баги вже при виконанні коду та повністю зупиняє програму.
Крім того, код виконується line by line і помилка — ділення на нуль, невідповідність типів і неправильно вказані змінні тощо — може з’явитись в найнеочікуваніший момент. Такої проблеми, наприклад, немає в С++, адже помилки помітні вже на етапі компіляції, а не під час виконання програми.
Незручності від використання Python можуть виникнути, якщо треба під’єднатися до різних баз даних, адже там діють певні обмеження. У порівнянні з такими популярними технологіями, як JDBC і ODBC, рівень доступу Python до баз даних виявляється дещо обмежений.
Проте перевага Python у роботі з даними в тому, що ми будуємо уявлення про щось на основі його можливостей, а не сутності чи типу. Проводячи аналогію з конструктором Lego, С — це малі кубики, ставши на які можна поламати ноги, а Python — дитячі пластикові, наступити на які не так боляче.
Python — це як великі кубики Lego. Простий і має хороший потенціал
Мови як Java, C# та JavaScript з’явилися раніше за Python, тож legacy багатьох проєктів написані на них і компанії не бачать сенсу щось змінювати. Але Python не лише залишиться, але й проявить себе ще не раз. Наприклад, він вже зайняв нішу ML і цей напрям розвиватиметься в контексті Python. База проєктів писатиметься цією мовою, і, відповідно, бізнес шукатиме фахівців під них. На Python також часто пишуться блокчейн-проєкти.
З Python добре починати, адже в порівнянні з іншими мовами його легше вивчити та застосувати на практиці. Ця мова може здатися простою — ніби розібратися з нею так само легко, як з книгою рецептів.
Проте навчитися та зрозуміти синтаксис мови — це одне, а розв’язувати на ній задачі — інше. Смішно мірятися кубиками Lego, якщо задача — побудувати Ейфелеву вежу. Це буде складно зробити на всіх мовах, незалежно від вмінь чи досвіду.
26 коментарів
Додати коментар Підписатись на коментаріВідписатись від коментарів