Почему интерпретируемые языки, такие как Python и PHP, становятся популярными? Вопрос
Eсли они медленнее по сравнению с компилируемыми языками, такими как Java, C# и другими?
Eсли они медленнее по сравнению с компилируемыми языками, такими как Java, C# и другими?
В первую очередь следует обратить внимание на то, что означает «скомпилировано».
Когда я впервые занялся программированием давным-давно, слово «скомпилированный» использовалось для обозначения того, что сейчас «скомпилировано в собственный исполняемый файл»… это означает, что исполняемый файл содержит фактические инструкции, которые выполняются в ЦП.
Позже, когда виртуальные машины стали популярными, слово «компилировать» стало означать два значения: старое значение и новое значение: «скомпилировано в байт-код, который работает на виртуальной машине».
Так что в этом отношении ни Java, ни C# исходные коды не компилируются по-настоящему! Они компилируются только в байт-код, который работает на виртуальных машинах… сравните это с языком сценариев, который теперь имеет JIT (компиляция точно в срок), и разница становится менее заметной.
Конечно, все еще существуют языки, скомпилированные в собственном коде, в первую очередь C/C++, и они используются для критичных к производительности приложений, но во многих случаях интерпретируемые языки достаточно быстры, чтобы выполнить работу, особенно с учетом того, насколько мощными сегодня являются машины и насколько проще писать и поддерживать код на этих языках.
Главное преимущество этих языков — быстрое вхождение в язык, простота разработки и динамическая типизация (то есть типы не надо объявлять заранее, а в Java ещё и избыточно писать тип дважды при создании экземпляра класса через new).
В случае PHP ещё одним плюсом является то, что скрипты на нём легко запускать на любом shared-хостинге.
Потому что производительность — это еще не все. Поскольку нет бесконечно быстрого языка программирования, вам просто нужно выбрать тот, который достаточно быстр.
Другие важные соображения при выборе языка включают в себя:
В некоторых ситуациях производительность будет иметь решающее значение, поэтому вы выбираете правильный инструмент для работы.
Python и PHP достаточно прост для запуска. PHP практически не привязан к железу, возможно это и необходимо было учитывать?