Другое серьезное основание состоит в том, который на большой скорости выполнения сервера не так проблема как скорость соединения так или иначе. Большая часть времени проведена, отправляя и получая данные, не перемалывание чисел. И на самом деле в определенных веб-сервисах, которые делают много вычислений, трудное уплотнение , вероятно, выполнено как скомпилированная программа.
Плюс интерпретируемые языки не нуждаются в компиляции (который на крупном проекте может занять время), таким образом она больше подходит для обычно гибкой разработки веб-решений.
Большинство веб-приложений говорит с базой данных. Подавляющее большинство этих приложений проводит почти все их время, связываясь с базой данных. Так, для любого данного запроса к приложению существует крошечный объем обработки в сервере приложений и затем длинной паузе при ожидании базы данных. Так как такой небольшой процент времени любого запроса потрачен в серверном коде реального приложения, оптимизировав тот код путем записи, что это в C/C++ получит только крошечное, вероятно, не примечательное, улучшение в ответ время.
Так, вместо того, чтобы фокусироваться на C/C++ и сохранить каждый последний цикл ЦП, имеет больше смысла волноваться о производительности разработчика. Разработчики являются очень дорогими. И, они обычно намного более продуктивны в языке сценариев или даже в Java, чем они находятся в C/C++.
, Конечно, существуют исключения к этому. И если некоторые запросы к Вашему приложению являются ЦП или интенсивно использующий память, они должны быть записаны в C/C++. Но для остальной части Вашего приложения Вы - более обеспеченная фокусировка на оптимизации Ваших алгоритмов, структур данных, связи с базой данных и производительности разработчика, чем в оптимизации Вашего языка.
Языки сценариев имеют следующие преимущества перед C:
C использовался для веб-приложений вначале - я записал различные сценарии CGI в нем.
Со временем, однако, более продуктивные языки (C# и Java, например - но не исключительно те, конечно), оказалось, были "достаточно эффективны" для веб-приложений. Обратите внимание, что и C# и Java скомпилированы в промежуточный код и затем скомпилированы в JIT, достигнув "примерно" производительности собственного кода. Почему мы хотели бы использовать C вместо этого?
Даже традиционно "действительно интерпретируемые" языки, такие как PHP часто компилируются во время выполнения в эти дни, насколько я знаю. (Мое знание PHP в особенности является всей секундной стрелкой. Возможно, это всегда компилировалось... И аналогично я уверен, что существуют веб-платформы, которые все еще всегда интерпретируются.)
По крайней мере, первоначально большая работа, сделанная кодом бэкенда (то, которое я принимаю, - то, что Вы говорите о), была ориентирована на текст. Они или созданные страницы непосредственно с нуля, или, например, объединяющиеся данные из базы данных с шаблоном.
C не является... всегда подходящим для обработки текста. Струны до являются очень простыми, и в то время как обработка текста в C, конечно, может выполниться быстро, это часто берет немного дольше для разработки и требует, чтобы несколько более глубокие навыки разобрались, чем языки, которые помогают Вам немного больше.
Большой вопрос. Причина происходит в основном из-за эволюции сети. Думайте об этом на шагах:
1) Основной текст в 'сети'-> 2) Некоторая 'разметка', добавленная к тексту-> 3), "центральный" тег и "пунктирная рамка" формируются!!! какой прогресс!!!-> 4) пишущий сценарий на клиенте!!! 5)-> хм... пишущий сценарий на сервере!!!
, В то время как я сформировал этот ответ для глупости, это действительно верно. interenet, и наиболее особенно "сеть", были удивительным эволюционным процессом. Действительно, требования для более мощных языков (и большего количества производительных языков) только была более свежая вещь.
кроме того, посмотрите на инструменты. Я сделал свой PHP в блокноте (и некоторые другие простые приложения). Когда я сначала делал веб-разработку, мой компьютер не имел достаточного пространства на жестком диске для поддержки Visual Studio 2008:)
Точка Стороны Однако: были ".exe" приложения там (я думаю" , SunBiz" отправляет на 'exe'), и некоторые скомпилировали cgi приложения некоторое время, но они были намного меньше.
Стоит указать, что большинство языков сценариев (Python, Ruby, и т.д.) образует мост легко - почти тривиально - к C. (Я просто записал некоторые расширения C для программы Python, и я был впечатлен тем, насколько легкий это было.), Если веб-сайт/веб-приложение действительно имеет некоторые узкие места из-за использования "медленного" языка сценариев, можно обычно писать критические по отношению к производительности разделы на более быстром языке как C. На самом деле это - то, какие крупные приложения как поиск Google, Facebook, и т.д., делает - они пишут интерфейс в языке сценариев и делают тяжелый подъем с другими языками как C.
Это главным образом, потому что это быстро и просто изменить их на лету. Скомпилированные языки требуют среды разработки, которая должна соответствовать серверу. Со сценарием можно использовать инструмент ftp и отредактировать текст непосредственно и затем сохранить его. Эта способность сделать это от любого компьютера любой ОС или типа имеет, спасают мою жизнь (или правильно мою жизнь веб-сайтов) много раз.
Попытайтесь сделать некоторый строковый парсинг/управление в C в Perl/PHP, и Вы будете знать.
BTW: Почему делают столько людей заявляет, что производительность больше не является проблемой? Я не мог бы быть проблемой для маленьких домашних страниц/блогов, но крупномасштабные веб-приложения все еще должны быть настроены для производительности (CPU/сеть/память), неважно, если они записаны в Java, php или рубине.
Вот мои мысли о проблеме:
Так, вместо того, чтобы фокусироваться на C/C++ и сохранить каждый последний цикл ЦП, имеет больше смысла волноваться о производительности разработчика. Разработчики являются очень дорогими. И, они обычно намного более продуктивны в языке сценариев или даже в Java, чем они находятся в C/C++.
, О, так очень, очень верный. Если использование более динамического языка побреет неделю разработчика от расписания, на той неделе времени программиста, когда Вы не должны платить за, то купит Вас дополнительный сервер. Возможно, даже несколько серверов, если Вам нравится много дешевых вместо нескольких крупных зверей.
Для большей части мира (т.е. не Google/Amazon/eBay/и т.д.), один дополнительный сервер больше, чем компенсирует любую потерю необработанной производительности, которая может следовать из выбора языка.
Много чрезвычайно полезных функций динамических языков, таких как самоанализ и функции как оценка () является действительно трудным/невозможным? реализовать на языках ту компиляцию к собственному коду.
Однако большинство языков "сценариев" действительно компилирует (на лету) в своего рода промежуточный код, который тогда интерпретируется (Python, Ruby, Perl) или возможно даже JIT, скомпилированный в собственный код (JSP.NET)
Моя компания использует C++ (расширение ISAPI) для нашего веб-приложения. Почти все сделано в скомпилированных двоичных файлах. Мы также используем механизм JavaScript для частей системы, которые требуют сценариев (да, серверная сторона JavaScript). Причиной, процитированной за этот дизайн, является скорость, но возраст является также фактором..., это - старая кодовая база. Кроме того, мы распределяем наш продукт некоторым нашим клиентам для хостинга себя, таким образом компилировать его защищает наш исходный код (много интерпретируемых языков тривиально decompilable, или в случае PHP и Perl, никогда не компилируемого вообще).
Языки сценариев, где единственная опция для веб-разработки давным-давно. Теперь у нас есть другие альтернативы (Java.NET..), таким образом, ситуация не так плоха.
C как платформа не был очень успешен для веб-разработки, так как трудно создать модуль, который мог быть загружен и выполнен от сети/сервера приложений, но одна из первой платформы для создания динамического веб-приложения была модулями ISAPI для IIS Microsoft что, где главным образом разработано в C++ и, где скомпилировано.