А как насчет кодирования сайтов на C? Как это работает? Является ли эта платформа независимой и работает на каждом сервере?
Написание независимого от платформы кода на C вполне возможно. (Сам PHP написан на C, и существует множество нелепых кросс-платформенных программ и библиотек, написанных на C, таких как PostgreSQL и MySQL, Boost и Poco C ++).
Создание независимой от платформы веб-приложений , с другой стороны, в первую очередь зависит от того, как вы интегрируетесь с HTTP-сервером. Например, если вы напишите приложение на C, которое напрямую интегрируется с HTTP-сервером через скомпилированный модуль (для Apache или IIS), вы получите менее переносимый код - например, написание модуля IIS в C или Delphi (что я видел, и который первоначально делал eBay) означает, что вы не только заблокированы для Windows , но также заблокированы для IIS в Windows . Аналогичная ситуация возникает при написании модулей Apache на языке C.
Но если вы пишете веб-приложение на C, которое интегрируется через общий стандарт с HTTP-сервером, тогда да, вы можете иметь достаточно переносимый код (хотя и код, который должен быть скомпилирован на каждой платформе) , Например, вы можете использовать CGI для связи с HTTP-сервером, используя переменные среды, или вы можете использовать соответствующие стандарты, FastCGI и SCGI. Опять же, я видел, как это делается в практических, коммерческих приложениях (как с хорошим, так и с плохим эффектом).
Дебаты о нативных веб-приложениях (например, написанных на C, C ++ и т. П.) И интерпретируемых веб-приложениях (PHP, Perl и т. Д.) Часто сосредоточены на трех областях.
- Код исполнения . Если это не написано мертвой обезьяной, которая не получила работу по написанию файлов cookie, код C всегда будет превосходить PHP. Однако узкое место в вашем приложении может быть связано не со скоростью и потреблением памяти в коде, а с процедурами ввода / вывода.
- Производительность разработчика . Если вы не используете хорошую инфраструктуру (а часть вашего вопроса касалась наборов функций других языков), вы будете писать много повторяющегося кода. Например, декодирование закодированных в процентах URL-адресов, анализ данных HTTP POST и т. Д. Для этого существуют платформы на C и C ++ (см. CppCMS).
- Переносимость , как вы упомянули. Если вы не готовы писать веб-приложение на C, я бы выбрал CGI или SCGI.