Разработка web приложений на C!

Discussion in 'PHP' started by masbear, 17 Jun 2009.

  1. masbear

    masbear Elder - Старейшина

    Joined:
    4 Aug 2008
    Messages:
    81
    Likes Received:
    7
    Reputations:
    1
    Всю свою 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? Будут ли такие страницы работать быстрее пхпшных?
     
  2. neval

    neval Elder - Старейшина

    Joined:
    13 Dec 2006
    Messages:
    457
    Likes Received:
    116
    Reputations:
    23
    Все имеет право на существование... Только нужно ли это?
    PHP разработан как язык web-программирования (кстати написан на С)

    Можно и на баше писать

    Наверное самым оптимальным решением будет java
     
  3. mr.The

    mr.The Elder - Старейшина

    Joined:
    30 Apr 2007
    Messages:
    1,079
    Likes Received:
    456
    Reputations:
    38
    будут и на порядок. но, имхо, писать сайты на си это изврат.
    дык не ново...
     
  4. BrainDeaD

    BrainDeaD Elder - Старейшина

    Joined:
    9 Jun 2005
    Messages:
    774
    Likes Received:
    292
    Reputations:
    214
    ну не зря ведь множество хостингов поддерживает с. но с полезен только для небольших функций. для чего-то обширного он посто не предназначен. простейшие вещи из рнр или java могут быть очень сложными и обшырными в с. иногда спасают библиотеки, но не от всего и не сильно.
     
  5. login999

    login999 Elder - Старейшина

    Joined:
    12 Jun 2008
    Messages:
    491
    Likes Received:
    280
    Reputations:
    92
    А на ассемблере будет еще быстрее ...
     
  6. Qwazar

    Qwazar Elder - Старейшина

    Joined:
    2 Jun 2005
    Messages:
    989
    Likes Received:
    904
    Reputations:
    587
    На самом деле сильно зависит. Для мелких веб-приложений (80% интернета) лучше PHP. Для высоконагруженных, однозначно Java.

    Писать веб-приложения на C и Asm, что гвозди микроскопом забивать.

    P.S.
    "Переписав исходный код приложения на Assembler мы добились повышения производительности на 3%, и увеличения времени отладки на 300%." - из старого анекдота.
     
    #6 Qwazar, 17 Jun 2009
    Last edited: 17 Jun 2009
    1 person likes this.
  7. VDShark

    VDShark Elder - Старейшина

    Joined:
    1 Feb 2007
    Messages:
    260
    Likes Received:
    158
    Reputations:
    62
    Писать то можно, и этому есть куча примеров. Но без правильного подхода, как показывает практика, результат труда будет обладать очень плохой масштабируемостью.
     
  8. H1Z

    H1Z Elder - Старейшина

    Joined:
    23 Mar 2007
    Messages:
    103
    Likes Received:
    61
    Reputations:
    6
    Вообще лучше писать не на C, а на C++. На высоко нагруженных серверах, сервисы пишут либо на C++ либо на Java.

    P.S. сайт icloud.com написан на C++ и бегает под Ubuntu Server ;)
     
  9. KaZ@NoVa

    KaZ@NoVa Elder - Старейшина

    Joined:
    5 Jul 2008
    Messages:
    368
    Likes Received:
    438
    Reputations:
    -16
    http://habrahabr.ru/blogs/cpp/61563/
     
  10. Fata1ex

    Fata1ex Elder - Старейшина

    Joined:
    12 Dec 2006
    Messages:
    703
    Likes Received:
    300
    Reputations:
    38
    ru-board.com/new/article.php?sid=49

    небольшой мануал по CGI на С/C++

    + на netcode есть целый ряд статей, посвященных сетевому программированию на C++
     
    #10 Fata1ex, 17 Jun 2009
    Last edited: 17 Jun 2009
  11. masbear

    masbear Elder - Старейшина

    Joined:
    4 Aug 2008
    Messages:
    81
    Likes Received:
    7
    Reputations:
    1
    Спасибо за ответы. Все ясно. Я думаю, главным достоинством действительно является скорость - так как имеем дело с настоящим компидируемым файлом. В CGI/Python будет открываться новый процесс интерпретатора на каждый запрос страницы .py. Здесь же как я понял ничему запускаться не надо - прога уже скомпилирована.

    Я сам не любитель программирования на C/Asm, люблю удобные C#/Java. Но тот факт, что сайты можно писать на C мне в голову никогда не приходил.

    По идее из всех библиотек, которые я использую в ASP.NET, единственное, что мне будет не хватать на C - это коннекторов к бд.
     
  12. Joker-jar

    Joker-jar Elder - Старейшина

    Joined:
    11 Mar 2007
    Messages:
    581
    Likes Received:
    205
    Reputations:
    37
    Теоретически, таким подходом можно обходить некоторые ограничения php (к примеру, max_post_size и т.п.) а также напрямую получать аплоад файлов (без создания временных файлов) и еще много чего, если покопаться. Помню, как то в универе на курсач писал класс (правда на Делфи) для разработки cgi-приложений. Реализовал обработку и разложение get, post, cookie, file, установку кукисов и еще много чего. Интересное это дело, с точки зрения обучения. В процессе создания впервые узнал какие конкретно вещи обрабатываются веб-сервером, а какие интерпритатором
     
  13. nerezus

    nerezus Banned

    Joined:
    12 Aug 2004
    Messages:
    3,191
    Likes Received:
    727
    Reputations:
    266
    И смысл?
    Тормоза будут - это же CGI.

    Нет, т.к. современные C-компиляторы генерируют более быстрый код, чем человек.

    И оба решения будут медленнее, чем PHP, т.к. юзают тормозной SAPI.
     
  14. masbear

    masbear Elder - Старейшина

    Joined:
    4 Aug 2008
    Messages:
    81
    Likes Received:
    7
    Reputations:
    1
    nerezus, ты уверен? Интерпретируемый PHP будет быстрее уже скомпилированного екзешника? o_O
     
Loading...