@Gudsaf
Школьник

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

Взять те же Python, PHP, Javascript, Ruby - типичные языки веб-разработки. Все они считаются интерпретируемыми. Если смотреть по их доле на рынке, то в сравнении с компилируемым детищем MS в виде C# и их платформы .NET - майкрософт будто листочек на теле огромного дерева семьи интерпретаторов.

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

Причём есть вполне успешные примеры с обоих сторон: stackoverflow/vk, bing/yandex.
Да и сравнения говорят, что компилируемый язык тоже может in to space: сравнения

Почему так произошло и чью сторону принять?
  • Вопрос задан
  • 3432 просмотра
Решения вопроса 1
laska
@laska
PHP/JS разработчик
Первое и самое важное. Немного статистики Дотнет и Ява занимают 2 и 3 место веб-серверных языков. Руби, JS и Питон имеют в сумме меньше процента.

Поэтому вопрос следует переформулировать так: почему пхп так катастрофически популярен, и почему в России доля дотнета так мала?

На второе вопрос сравнительно простой: дотнет платный, IIS платный, windows платный. Сейчас на это стало более-менее плевать, но привычка еще с 90х осталась.

А первый вопрос наверное нормального ответа не имеет. Огромное количество везения, исторических факторов, удачных CMS и готовых решений. Ну и крайне низкий порог вхождения. Наверное как-то так.

Ну и что выбрать? Компилируемые языки сами по себе не лучше. Они быстрее, но разрабатывать на них дольше (скорее всего). А ваше время дороже времени сервера. Поэтому оптимизация зачастую неважна. Да и в любом случае производительность упрется в работу с БД. Безопасность тоже не очевидно. Компилируемые языки в теории наверное надежнее, но все зависит от реализации. Но в целом не так важно что выбрать, переучиться на другой язык легко (только ассинхронный Node.js в сторонке прототипы свои раскинул, и сидит с эрлангом переговаривается).
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
Tiendil
@Tiendil
Разработчик ПО.
Как заметил Ришат Кадыров, производительность людей важнее производительности кода. Поэтому явных преимуществ именно между языками нет. На выбор влияет наличие инструментов: библиотек, фреймворков.

Это влияние хорошо демонстрирует Ruby, который стал популярен только благодаря появлению Ruby On Rails и с тех пор, в общем, ничем другим не отметился.

А появление фреймворков, во многом, случайное явление. Кто-то талантливый реализовал какую-то новую идею на том, что ему было удобно — язык реализации получил небольшое преимущество. Сочетание таких случайностей и делает «специализацию» языка.

Плюс, в разных областях есть немного разные требования к семантике ЯП, некоторые концепты проще реализовать на одном языке, чем на другом.
Ответ написан
SerafimArts
@SerafimArts
Senior Notepad Reader
...Тот же PHP компилируется каким-нибудь Phalanger в CLR, а вот, например вообще полуофициальный jit (https://github.com/zendtech/php-src ), Python тоже, Ruby тоже умеет. Языков как таковых вообще не может существовать компилируемых или интерпретируемых, есть их реализация. И почти под все популярные есть как компиляторы, половинчатые JIT, интерпретаторы и прочее. Тот же C# и вообще .NET, например, это тоже полуинтерпретируемая платформа (JIT + CLR).

Короче, критерий "интерпретиуремый" или "компилируемый", думаю, была применим в районе 2000х, а сейчас чёрт-те-что, всё вместе и вперемешку.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы