31 подписчик

Python плох ?

160 прочитали
Привет всем!

Привет всем! За последний год я заметил то что, все начинают дико хейтить язык программирования Python и все что с ним связано, в основном это новички, которые только вчера начали учить какой-нибудь С++ ну или CSharp/Java. Поэтому я бы хотел сегодня поговорить о плюсах и минусах Python'а, в частности о том почему Python достоин существовать

Поехали!

Начнем с минусов языка.

1. Python - интерпретируемый язык

Да, сейчас наверное в комментах в меня будут кидаться камнями, потому что есть другие реализации Python, но все же, не все они готовы для масштабного применения, не весь код написанный под CPython будет работать под каким нибудь PyPy, напомню что основная реализация языка Python это CPython, которая по сути является транслирующим интерпретатором, с точки зрения производительности она очень медленна, но у интерпретаторов есть и свои преимущества, например они более гибкие, интерпретируемый код легко переносится на другие платформы и так далее, с недавних пор интерпретатор начали оптимизировать поэтому Python на данных момент является одним из самых быстрых интерпретируемых языков, такие дела.

2. Python динамически типизированный язык

Я думаю вы все знаете что язык Python придерживается динамической типизации, но у этого есть и свои плюсы, но засада такова что это сильно "режет" производительность и ловля багов становится еще сложнее, но плюс в том что динамическая типизация сильно упрощает написание библиотек, фреймворков да и вообще код становится более ясным и понятным.

3. GIL

Global Interpreter Lock это некий механизм который разрешает только одному потоку использовать интерпретатор, если вы пишите однопоточные программы, то с этим у вас проблем не будет. Просто знайте, что GIL не дает всем потокам работать одновременно что соответственно "хоронит" производительность. Однако кроме потоков, есть еще и процессы, при помощи которых можно избежать GIL.

Плюсы языка Python

1. Код легко переносится на другие платформы

Да, как я сказал ранее, Python является интерпретируемым языком и вам достаточно лишь перенести скрипты на другую платформу, остальное за вас сделает Python, напоминаю что если вы пишите например на С++, вам придется не только "портировать" программу, но еще и перекомпилировать ее (я думаю это и так понятно) что делает перенос с платформы на платформу весьма затруднительным...

2. Большое community и "бешанное" количество библиотек

Python один из самых популярных языков, выше его только Java и С

TIOBE Index
TIOBE Index

Все это в сумме дает нам огромное количество библиотек, фреймворков при помощи которых можно сделать по сути все что угодно

Надо сделать графический интерфейс для программы ? Не беда!

- Есть tkinter, wxPython, PyGTK, PyQT

Нужно распарсить html сраничку ? Не беда!

- Есть BeautifulSoup, Scrappy

По сути, для любой задачи найдется готовое решение, которое нужно лишь применить, таково количества готовых решений вы вряд-ли найдете где-то еще, разве что в npm...

3. Приятный синтаксис, богатая стандартная библиотека

У Python'а по настоящему приятный и красивый синтаксис и в сочетании с богатой стандартной библиотекой и встроенными функциями можно написать код в одну строчку и наслаждаться решением, в то время как на С++ вам придется многое делать "вручную" и не слабо так запарится.

Ок, что дальше ?

Вот мы и разобрались с плюсами и минусами Python, теперь возникнет вопрос, для чего он действительно годен ? Что с ним можно делать ?

Ответ таков, на Python можно сделать буквально "всё", но что-то выходит хорошо, а что-то не очень, поэтому хочу подчеркнуть именно самые важные сферы применения Python

1. Веб разработка (Django, Flask)

2. Парсинг, обработка больших данных

3. Искуственный интеллект

4. Автоматизация, написание ботов под разные платформы

В этих сферах Python реально может показать себя, если вы хотите работать именно в этих сферах, можете брать Python абсолютно не задумываясь, Python по любому вам поможет.

А что думаете вы о Python ? Пишите об этом в комментариях

Скажу заранее, скоро мы будем рассматривать язык программирования Nim, будет интересно!

Подписывайтесь наш Telegram-канал!

Удачи!