Альтернативы PHP? - PullRequest
       17

Альтернативы PHP?

17 голосов
/ 05 января 2010

Существуют ли альтернативы PHP, которые работают быстрее и имеют несколько одинаковый набор функций (например, поддержку общих СУБД, Curl, Regex и т. Д.)?

А как насчет кодирования сайтов на C? Как это работает? Является ли эта платформа независимой и работает на каждом сервере?

Ответы [ 7 ]

17 голосов
/ 05 января 2010

Ваш вопрос широкий.

  • PHP можно сделать быстрым и масштабируемым (Flickr, Facebook и другие сайты работают на PHP)

  • Несколько похожи по назначению веб-фреймворки, такие как Ruby on Rails, Django, Lift, ... (они тоже могут масштабироваться, см. Например, Twitter)

  • Краткое введение в CGI в C: http://www.cs.tut.fi/~jkorpela/forms/cgic.html

9 голосов
/ 27 марта 2012

Если вам нравится Javascript, вы можете использовать его на стороне сервера с Node.js

8 голосов
/ 05 января 2010

Perl (CGI)

Python

RoR (Ruby On Rails)

ASP (не лучший вариант)

Уверен, если вы собираетесь кодировать сайт на C, вы тоже будете кодировать свой собственный веб-сервер, поэтому я бы держался подальше от этого.

RoR будет хорошим вариантом. Но это зависит только от ваших личных предпочтений. Я склонен придерживаться php, так как знаю, как делать практически все в PHP.

7 голосов
/ 05 января 2010

"Есть ли альтернативы PHP" - Да

"... которые работают быстрее ..." - Да

"... тот же набор функций ..." - Нет - это сделает PHP избыточным.

Вы задаете очень широкий вопрос. Есть много языков, которые поддерживают все виды СУБД, PCRE и другие вещи.

«Как насчет кодирования сайтов в C? Как это работает? Является ли эта платформа независимой и работает на каждом сервере?»

  • Нет, это не зависит от платформы.

Довольно сложно указать вам конкретное направление, основанное на столь широкомасштабном вопросе.

Возможно, вы захотите прочитать это:

http://benchmarksgame.alioth.debian.org/

Но учтите, что большая часть стоимости программного обеспечения заключается в разработке - аппаратное обеспечение дешевое - поэтому возможность реализовать что-то в половине строк кода будет гораздо выгоднее для большинства людей, чем удвоение производительности.

Есть также менее очевидные ограничения и / или преимущества в использовании определенных языков - например,

http://www.oreillynet.com/ruby/blog/2007/09/7_reasons_i_switched_back_to_p_1.html

С

6 голосов
/ 05 января 2010

PHP подключается непосредственно к Apache.

С не имеет. Чтобы соединить C с Apache, вам придется использовать безопасную / быструю реализацию CGI вместо стандартной CGI.

C - как язык - много работы для создания веб-сайтов.

Посмотрите на веб-фреймворки в Python.

Посмотрите на Ruby on Rails.

3 голосов
/ 03 июля 2014

А как насчет кодирования сайтов на 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.
1 голос
/ 05 января 2010

Если ваша проблема с веб-сайтом или веб-приложением, которое кажется слишком медленным, переключение языков, вероятно, не стоит усилий. Есть гораздо более эффективные способы ускорить процесс. Одним из них будет кэширование кода, чтобы избежать накладных расходов на новую компиляцию ваших PHP-скриптов при каждом запросе страницы. См. Например http://en.wikipedia.org/wiki/PHP_accelerator. Я лично использовал XCache с большим эффектом.

Существует много других причин, по которым веб-сайты работают медленнее, чем могли бы, многие из которых совершенно не связаны с основным языком. YSlow (http://developer.yahoo.com/yslow/) - незаменимый инструмент для поиска вашего узкого места. Например, объединение нескольких файлов CSS или JS, включенных со страницы HTML, в один файл, каждый может значительно сократить время отклика.

Итак, суть: в большинстве случаев основной язык не является виновником. Сказав все это, да, есть более быстрые языки. Смотрите другие ответы выше:)

...