Приветствую всех посетителей моего блога! Сегодня хотелось бы пролить немного критики на язык программирования Python, назвать его минусы.
Сейчас очень много людей связано со сферой IT. Кто-то с самого начала пошёл в профильный вуз, тем самым с самого начала связав свою жизнь с информационными технологиями, кто-то разочаровался в своей родной сфере и решил переучиться, проходя разные курсы, а кто-то встал на нелегкий путь самоучки. Компьютеры сейчас повсюду, у каждого в близком круге общения будет знакомый или родственник айтишник.
Каждый специалист такого профиля имеет свои любимые и нелюбимые ЯП, а вопрос того, на чем лучше начинать кодить посещает каждого новичка в сфере IT.
Прежде всего, хочу отметить, что Python прекрасный многофункциональный язык, бьющий все рекорды по популярности, ни в коем случае не хотелось бы как-то принизить данный ЯП, но всё же он не идеален, и надо быть осторожнее с его использованием в ряде случаев.
Интерпретируемый язык
Каждый айтишник знает, что языки программирования делятся на компилируемые и интерпретируемые. Компилируемые языки программирования при исполнении напрямую транслируются компилятором в машинный код, который исполняется компьютером. В случае с интерпретируемыми языками, между исходным и машинным кодами добавляется еще и байт-код, который является промежуточным низкоуровневым языком программирования.
Да, многие любят Python за его простой синтаксис, но эта особенность напрямую связана с интерпретируемостью языка: синтаксис не строгий, типизация динамическая, поэтому и нужен байт-код, который обрастает дополнительными командами и замедляет выполнение программы.
Программисты на C/C++, кстати, любят подколоть питонистов за то, что интерпретатор языка написан собственно на C. Но в целом, тут ситуация как с курицей и яйцом: как без курицы не будет яйца, так и чтобы был рабочий компилятор, его надо написать сначала на другом языке: наиболее пригодны для этого ассемблер и C/C++, но возиться с ассемблером то ещё удовольствие.
Так, например, в
геймдеве в принципе не особо жалуют собственно интерпретируемые языки, на Python игры вообще почти не пишут: там рулит C++, реже C#. На таких языках ещё и можно точно управлять памятью, что также ускоряет прорисовку сложных 3D объектов.
Тем не менее, есть моменты, где Python просто превосходен. Например, менеджер пакетов pip позволяет с легкостью подключить мощные библиотеки и модули для вашего проекта.
Они нередко имеют компоненты, написанные на C++, что позволяет сочетать лёгкость в использовании Python и молниеносную скорость C++. А в таких ресурсозатратных сферах, как нейросети, Python стал де-факто стандартом, всё так же благодаря библиотекам, а также данный язык демонстрирует хорошие показатели при отдельных операциях с крупными числами.
Синтаксис
Нет, это не какая-то ошибка, мне нравится синтаксис Python, очень многим нравится. Он реально простой и позволяющий лаконично описать необходимые алгормиты. Но есть откровенно спорные моменты на этот счет.
Во-первых, многие отметили, что там отсутствует классическое написание оператора инкремента. Допустим, мы хотим инкрементировать переменную i, так вот i++ не пойдёт, надо писать i += 1, что взрывает мозг специалистам, давно работавшим с языками семейства C.
Также многие айтишники критикуют язык за динамическую типизацию. Давайте приведем пример:
Такая типизация, с одной стороны, облегчает написание программы при выполнении ряда задач, уменьшает шанс ошибок компилятора, с другой стороны такая каша вызывает головную боль при дебаге, а также может вызвать проблемы при масштабировании кода.
Ещё одной темой для дискуссий являются отступы в коде. В привычных ЯП надо следить за точками с запятой, здесь же надо следить за отступами. С одной стороны, это облегчает чтение кода, но опять же, с другой, иногда при невнимательном написании программы можно забыть про отступы, и визуально отследить, где допущены ошибки в расстановке отступов порой даже сложнее, чем проглядеть отсутствующую точку с запятой.
А вы интересуетесь сферой IT? А может работаете в ней? Какой ваш любимый язык программирования? Отпишитесь в комментариях!