C легко самый быстрый язык там. Его так быстро мы пишем в нем другие языки. Никто серьезно не пишет веб-сайты в C. Почему? Его очень легко ввернуть в C способами, которые очень трудно обнаружить, и почти ничего не помогает. Короче говоря, он ест программистов и генерирует ошибки.
Построение надежного, быстрого приложения не связано с выбором самого быстрого langauge, его поддержки A) и B) масштабируемости.
Поддержание работоспособности означает, что у него не так много ошибок. Это означает, что вы можете быстро добавлять новые функции и изменять существующие. Вам нужен язык, который делает как можно больше работы для вас и не мешает. Вот почему такие вещи, как Perl, Python, PHP и Ruby, настолько популярны. Все они были написаны с учетом удобства программиста в отношении сырой производительности или аккуратности. C был написан для сырой производительности. Java была написана для концептуальной аккуратности.
Масштабируемость означает, что вы можете перейти от 10 пользователей до 10 000 пользователей, не переписывая все это. Это означало, что вы написали самый жесткий код, которым вы можете управлять, но очень оптимизированный код обычно сложно поддерживать код.Обычно это означает делать вещи на пользу компьютера, а не человека и бизнеса. Это жертвует ремонтопригодностью, и вы должны сказать своему боссу, что он займет 3 месяца, чтобы добавить новую функцию.
Масштабируемость в наши дни достигается в основном путем метало-аппаратного обеспечения и распараллеливания. Сколько процессов и процессоров и машин вы можете заниматься своей работой? Если вы можете этого достичь, вы можете просто запустить еще один дешевый облачный компьютер, как вам это нужно. Конечно, вы захотите оптимизировать некоторые, но в этом масштабе вы получите гораздо больше от реализации лучшего алгоритма, чем ужесточение кода.
К примеру, я взял вялую PHP приложение, которое изо всех сил, чтобы справиться с 50 пользователей в то время, перешли от Apache с mod_php на lighttpd с балансировкой нагрузки, удаленные FastCGI процессы, позволяющие распараллеливание с минимальным изменением кода. Некоторое базовое профилирование показало, что фреймворк PHP, который они использовали для прототипа, был медленным, поэтому он был удален. Профилирование также предложило несколько индексов, чтобы запросы к базе данных выполнялись быстрее. Конечным результатом стала система, которая могла бы обрабатывать тысячи пользователей, и при необходимости можно было бы добавить больше емкости, оставив большую часть кода, не затрагивая бизнес-логику. Прошло несколько недель, и я не очень хорошо знаю PHP.
Может быть полезно переопределить мелкие острые фрагменты на очень быстром языке, но обычно это уже сделано для вас в виде оптимизированной библиотеки или инструмента. Например, ваш веб-сервер. Для сложности и постоянно меняющихся потребностей бизнес-логики важна простота обслуживания и насколько хороши ваши программисты.
Вы найдете, что большая часть веб-страниц написана на PHP, Perl и Python, потому что их легко писать, с небольшими резкими битами, написанными на таких вещах, как C, Java и экзотики, например Scala (например, Twitter) , Например, Wikia является модифицированной Mediawiki, которая написана на PHP, но она является перманентной (среди прочих причин), делая heroic amount of caching.
Шаг 1. Определите случаи, о которых вы заботитесь. Шаг 2. Разработать системы для сбора чисел для этих случаев на разных языках. Шаг 3. Сравните, выберите язык и реализуйте. –
Обычно говорят, что великие программисты могут кодировать отличные программы на дерьмовом языке, а дрянной программист может кодировать дерьмовые программы на отличном языке. поэтому важно то, как вы его кодируете, выбор языка является второстепенным. ;) – Lukman
Если вам нужно выбрать быстрый язык для реализации известного алгоритма, контрольные показатели перестрелки означают что-то. Если вам нужно выбрать язык для написания бизнес-приложения, тесты не означают приседания. Проблема заключается не в том, «какой язык может сделать X быстрее», потому что нет простого X для «вашего бизнеса». Производительность и надежность во многом сводятся к тому, насколько хороши ваши программисты, а не язык. – Schwern