Всю свою web деятельность я провел за технологиями типа ASP/PHP/ASP.NET. Недавно решил попробовать Python. Установил интерпретатор, запустил такую программку PHP: #!c:\Python26\python.exe print "Content-Type: text/html\n" print "Hello from Python" И тут меня осенила шальная идея - а что если через C? Написал вот такую вещь PHP: int main() { printf("HTTP/1.0 200 OK\nContent-Type: text/html"); printf("\n\n\n"); printf("Hello fromo C"); return 0; } Откомпилил через GCC, и какое же мое удивление, когда по ссылке localhost/test/ctest.exe я в браузере получил "Hello from C"! Так имеет ли право на существование разарботка web на чистом C? Будут ли такие страницы работать быстрее пхпшных?
Все имеет право на существование... Только нужно ли это? PHP разработан как язык web-программирования (кстати написан на С) Можно и на баше писать Наверное самым оптимальным решением будет java
ну не зря ведь множество хостингов поддерживает с. но с полезен только для небольших функций. для чего-то обширного он посто не предназначен. простейшие вещи из рнр или java могут быть очень сложными и обшырными в с. иногда спасают библиотеки, но не от всего и не сильно.
На самом деле сильно зависит. Для мелких веб-приложений (80% интернета) лучше PHP. Для высоконагруженных, однозначно Java. Писать веб-приложения на C и Asm, что гвозди микроскопом забивать. P.S. "Переписав исходный код приложения на Assembler мы добились повышения производительности на 3%, и увеличения времени отладки на 300%." - из старого анекдота.
Писать то можно, и этому есть куча примеров. Но без правильного подхода, как показывает практика, результат труда будет обладать очень плохой масштабируемостью.
Вообще лучше писать не на C, а на C++. На высоко нагруженных серверах, сервисы пишут либо на C++ либо на Java. P.S. сайт icloud.com написан на C++ и бегает под Ubuntu Server
ru-board.com/new/article.php?sid=49 небольшой мануал по CGI на С/C++ + на netcode есть целый ряд статей, посвященных сетевому программированию на C++
Спасибо за ответы. Все ясно. Я думаю, главным достоинством действительно является скорость - так как имеем дело с настоящим компидируемым файлом. В CGI/Python будет открываться новый процесс интерпретатора на каждый запрос страницы .py. Здесь же как я понял ничему запускаться не надо - прога уже скомпилирована. Я сам не любитель программирования на C/Asm, люблю удобные C#/Java. Но тот факт, что сайты можно писать на C мне в голову никогда не приходил. По идее из всех библиотек, которые я использую в ASP.NET, единственное, что мне будет не хватать на C - это коннекторов к бд.
Теоретически, таким подходом можно обходить некоторые ограничения php (к примеру, max_post_size и т.п.) а также напрямую получать аплоад файлов (без создания временных файлов) и еще много чего, если покопаться. Помню, как то в универе на курсач писал класс (правда на Делфи) для разработки cgi-приложений. Реализовал обработку и разложение get, post, cookie, file, установку кукисов и еще много чего. Интересное это дело, с точки зрения обучения. В процессе создания впервые узнал какие конкретно вещи обрабатываются веб-сервером, а какие интерпритатором
И смысл? Тормоза будут - это же CGI. Нет, т.к. современные C-компиляторы генерируют более быстрый код, чем человек. И оба решения будут медленнее, чем PHP, т.к. юзают тормозной SAPI.