C - это самый быстрый язык. Это так быстро, что мы пишем на других языках. Никто серьезно не пишет веб-сайты на C. Почему? Его очень легко испортить в C способами, которые очень трудно обнаружить, и он почти ничего не поможет вам. Короче говоря, он ест программистов и генерирует ошибки.
Создание надежного и быстрого приложения - это не выбор самого быстрого языка, а A) удобство обслуживания и B) масштабируемость.
Ремонтопригодность означает, что в ней не так много ошибок. Это означает, что вы можете быстро добавлять новые функции и изменять существующие. Вам нужен язык, который выполняет за вас как можно больше работы и не мешает вам. Вот почему такие вещи, как Perl, Python, PHP и Ruby, так популярны. Все они были написаны с учетом удобства программиста, а не просто производительности или аккуратности. C был написан для сырой производительности. Ява была написана для концептуальной аккуратности.
Масштабируемость означает, что вы можете перейти от 10 пользователей к 10000 пользователей, не переписывая все это. Раньше это означало, что вы написали самый трудный код, которым вы можете управлять, но код с высокой степенью оптимизации обычно трудно поддерживать. Обычно это означает делать что-то на пользу компьютера, а не человека и бизнеса. Это жертвует ремонтопригодностью, и вы должны сообщить своему боссу, что добавление новой функции займет 3 месяца.
Масштабируемость в наши дни в основном достигается за счет использования оборудования и распараллеливания. Сколько процессов, процессоров и машин вы можете обрабатывать? Если вы можете достичь этого, вы можете просто запустить еще один дешевый облачный компьютер по мере необходимости. Конечно, вы захотите оптимизировать некоторые из них, но в этом масштабе вы получите гораздо больше от реализации лучшего алгоритма, чем ужесточение кода.
Например, я взял медленное PHP-приложение, которое изо всех сил пыталось обрабатывать 50 пользователей одновременно, переключилось с Apache с mod_php на lighttpd с балансировкой нагрузки, удаленными FastCGI процессами, позволяющими распараллеливание с минимумом изменения кода. Некоторое базовое профилирование показало, что PHP-фреймворк, который они использовали для создания прототипов, был очень медленным, поэтому он был удален. Профилирование также предложило несколько индексов для ускорения запросов к базе данных. Конечным результатом была система, которая могла обрабатывать тысячи пользователей, и при необходимости можно было бы добавить больше возможностей, оставив при этом большую часть кода, реализующего бизнес-логику, без изменений. Прошло несколько недель, и я не очень хорошо знаю PHP.
Может быть полезно переопределить маленькие, острые кусочки на очень быстром языке, но обычно это уже сделано для вас в виде оптимизированной библиотеки или инструмента. Например, ваш веб-сервер. Для сложности и постоянно меняющихся потребностей бизнес-логики важна простота обслуживания и то, насколько хороши ваши программисты.
Вы обнаружите, что большая часть сети написана на PHP, Perl и Python, потому что их легко писать, с небольшими острыми частями, написанными в таких вещах, как C, Java и экзотика, таких как Scala (например, Twitter). Wikia , например, является модифицированным Mediawiki, который написан на PHP, но он эффективен (среди прочих причин), выполняя героическое количество кеширования .