Почему интерпретируемые языки, такие как Python и PHP, становятся популярными? Вопрос

Info Info 26 Февраля 2022

Eсли они медленнее по сравнению с компилируемыми языками, такими как Java, C# и другими?

3 Комментария

  1. Потому что производительность — это еще не все. Поскольку нет бесконечно быстрого языка программирования, вам просто нужно выбрать тот, который достаточно быстр.

    Другие важные соображения при выборе языка включают в себя:

    • уровень навыков вашей команды и уровень комфорта при работе с инструментами;
    • существующий программный стек, который невозможно заменить;
    • устаревшие приложения, которые необходимо поддерживать;
    • богатство экосистемы и пригодность для конкретной предметной области;
    • скорость разработки и время выхода на рынок (т. е. производительность).

    В некоторых ситуациях производительность будет иметь решающее значение, поэтому вы выбираете правильный инструмент для работы.

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

  1. В первую очередь следует обратить внимание на то, что означает «скомпилировано».

    Когда я впервые занялся программированием давным-давно, слово «скомпилированный» использовалось для обозначения того, что сейчас «скомпилировано в собственный исполняемый файл»… это означает, что исполняемый файл содержит фактические инструкции, которые выполняются в ЦП.

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

    Так что в этом отношении ни Java, ни C# исходные коды не компилируются по-настоящему! Они компилируются только в байт-код, который работает на виртуальных машинах… сравните это с языком сценариев, который теперь имеет JIT (компиляция точно в срок), и разница становится менее заметной.

    Конечно, все еще существуют языки, скомпилированные в собственном коде, в первую очередь C/C++, и они используются для критичных к производительности приложений, но во многих случаях интерпретируемые языки достаточно быстры, чтобы выполнить работу, особенно с учетом того, насколько мощными сегодня являются машины и насколько проще писать и поддерживать код на этих языках.

  1. Главное преимущество этих языков — быстрое вхождение в язык, простота разработки и динамическая типизация (то есть типы не надо объявлять заранее, а в Java ещё и избыточно писать тип дважды при создании экземпляра класса через new).
    В случае PHP ещё одним плюсом является то, что скрипты на нём легко запускать на любом shared-хостинге.