Переваги і недоліки мови Python

Переваги і недоліки мови Python

  • 14 липня, 2020
  • читати 4 хв
Олексій Волошин
Олексій Волошин Senior Software Engineer/Team Lead у RaccoonGang, Викладач Комп'ютерної школи Hillel.

Сьогодні, коли обчислювальні потужності персональних комп'ютерів і серверів стали досить високими, з'явився величезний попит на інтерпретовані мови програмування. Адже крім запуску самої програми необхідний запуск інтерпретатора, що вимагає додаткових ресурсів. Саме такою мовою і є Python.

Якщо переглянути статистики останніх п'яти років, можна побачити, що дана мова входить до п'ятірки найбільш затребуваних мов і за даними DOU за перший квартал 2020 рік є четвертим по затребуваності в Україні, поступившись таким мовам як JavaScript, Java і C #. Це показує наскільки дана мова популярний і затребуваний на ринку на сьогоднішній день.

Популярність Python обумовлена ​​тим, що даний мова здатна вирішувати широке коло завдань і його застосування можливе на всіх популярних на сьогоднішній день платформах, за винятком мобільного сегменту, на якому щільно вкоренилися специфічні мови. В останні роки Python придбав свою популярність за рахунок ефективності в таких сферах розробки як Machine Learning і Data Science завдяки своїй розширюваності і гнучкості, що так необхідно в даному сегменті програмування. У той же час Python широко застосовується в WEB, в якому дана мова відчуває себе чудово з початку 2000-х років і до цього дня розвиває і вдосконалює цей напрямок.

Давайте більш детально розглянемо всі переваги і недоліки даного мови.

Переваги

  • Гнучкість — це, на мою думку, основна перевага мови, так як завдяки своїй гнучкості мова отримала популярність серед багатьох розробників. Як сказав один з моїх знайомих, коли починав вивчати цю мову: «Та в Python можна все на гвинтики розібрати і зібрати в будь-який момент». І він мав рацію.
  • Можливість розширення — один із слоганів мови звучить як — Just Import! — що повністю пояснює, наскільки мова розширюється і була розширена за останні роки. Існують бібліотеки і фреймворки під будь-який тип завдань і потреб. Також величезним плюсом є те, що ми можемо використовувати C код з Python.
  • Простота синтаксису. Синтаксис — це саме те, через що я закохався в Python, з синтаксису було прибрано все зайве, код чистий і зрозумілий без зайвих дужок і виразів.
  • Інтерпретованість. Інтерпретатор Python існує для всіх популярних платформ і за замовчуванням входить в більшість дистрибутивів Linux, а значить є на більшості серверів «з коробки».
  • PEP — єдиний стандарт для написання коду, що робить код підтримуваним і читабельним навіть при переході від одного програміста до іншого. Це підтримує популярність Python.
  • Open Source — код інтерпретатора Python є відкритим, що дозволяє будь-кому, хто зацікавлений у розвитку мови взяти участь в його розробці і поліпшити його. Якщо дивитися деталі релізу однією з версій мови, то можна помітити, що величезні частини нового функціоналу реалізовані сторонніми розробниками.
  • Ком'юніті — навколо Python утворилося досить дружнє і приємне ком'юніті, яке готове прийти на допомогу будь-якому починаючому або вже вмілому розробнику і розібратися в його проблемі.

Всі ці переваги мови зробили його популярним і затребуваним на даний момент, дозволивши Python розвиватися величезними темпами. Існує вже третя версія мови, яка є основною сьогодні. Друга версія мови перестала підтримуватися в грудні 2019-го року.

Але незважаючи на всі явні переваги, Python також має ряд недоліків, які, на мою думку, з лишком перекриваються його перевагами.

Рекомендуємо курс по темі

Недоліки

  • Продуктивність. Більшість розробників, та й сам творець мови, сходяться на думці, що Python не такий спритний, наскільки хотілося б. Це обумовлено тим, що Python інтерпретована мова. Але навіть у порівнянні з іншими інтерпретованими мовами помітно, що Python програє в продуктивності. Але це легко можна нівелювати за допомогою C реалізацій того чи іншого проблемного ділянки коду. В умовах сьогоднішніх потужностей — це несильно помітно.
  • Синтаксис — так, на мою думку, синтаксис це і мінус теж, так як якщо ви переходите з іншої мови програмування, синтаксис буде незвичним і трохи дивним для вас, але це тільки справа звички.
  • Динамічна типізація — через динамічну типізацію Python споживає більше ресурсів, ніж міг би, але це часто компенсується внутрішнім кешуванням.
  • Global Interpriter Lock. На даний момент це є основною проблемою продуктивності в Python, а також цим обумовлена ​​погана реалізація багатопоточності. Код GIL не змінювався з першої версії мови. Це явно вказує на те, що він застарів. Залишається сподіватися, що розробники приділять цьому увагу в найближчих релізах.

Висновок

Виходячи з перерахованого вище, я все ж стверджую, що всі недоліки мови з лишком нівелюються його перевагами, які набагато вагоміші в сьогоднішніх реаліях. І не варто забувати, що мова розвивається. Це дає надію на те, що всі недоліки будуть або скорочені, або усунуті зовсім.

Python — це відмінна мова програмування як для навчання, так і для реальної розробки. Він допомагає вирішити величезний спектр завдань!