Подтвердить что ты не робот

Альтернативы php для встроенного веб-программирования?

Я сначала изучил веб-программирование с php некоторое время назад. У этого есть некоторые особенности, которые я нахожу очень полезными, но общий язык не то, что мне нравится, так же как и личное предпочтение. Мне интересно, какие альтернативы я мог бы использовать для обеспечения аналогичной функциональности с использованием другого базового языка программирования (Python? Ruby?).

Что я ищу:

  • возможность программирования общего назначения
  • встроенный серверный код, встроенный в HTML (т.е. я хочу, если нужно, сделать мои документы чистым HTML, а не требовать специального синтаксиса, даже если я не хочу динамического содержимого)
  • доступ к параметрам запроса
  • возможность отправлять заголовки, устанавливать файлы cookie и т.д.

Предпочтительно:

  • не требует отдельного процесса сервера
  • легко подключаться к Apache

Есть ли у кого-нибудь предложения?

Одна вещь, которую я пытался сделать, - это встроенный Ruby (erb) через CGI. Это выглядело как хорошая подгонка на бумаге. К сожалению, я не смог заставить его работать, потому что я следил за несколькими разными руководствами, и результат их объединения не сработал. Во всяком случае, похоже, это не позволило мне установить произвольные заголовки (и, что более важно, использовать сеансы и файлы cookie).

Примечание. Я не ищу полную веб-структуру на данный момент. Просто относительно небольшое количество динамического контента среди других HTML-страниц.

Спасибо!

4b9b3361

Ответ 1

Вы попали по большой причине, почему PHP настолько популярен - у него есть все эти части в серверном встраиваемом пакете. Существует не так много решений с легкостью развертывания; PHP написан специально для того, что вы хотите, что является его силой и слабостью. Это почему это такой слабый язык общего назначения, и почему все и их собака это знают. Он везде, и барьер для входа близок к нулю.

PHP - это язык плюс шаблоны плюс веб-фреймворк, запеченный в одном пакете. Чтобы получить эквивалент, вам понадобится веб-фреймворк, даже если он будет небольшим. Что-то вроде Sinatra - это суперлегкий способ сделать подобное в Ruby, хотя для этого требуется отдельный серверный процесс.

Вы можете посмотреть что-то вроде Perl с cgi.pm, но это может быть шаг в неправильном направлении, если вы хотите что-то более чистое, чем PHP.

Я не знаю пакетов Python достаточно хорошо, чтобы предлагать предложения там, но Twisted упрощает привязку программы Python к веб-интерфейсу. Тем не менее, это заканчивается запуском в своем собственном серверном процессе.

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

Ответ 2

Python Flask - это хорошая веб-инфраструктура: она соответствует вашим требованиям, легко учится и масштабируется грациозно. Пройдите учебник, чтобы посмотреть!

Ответ 3

У меня есть три предложения.

Первый - Ruby on Rails - Это очень забавно, когда вы входите в него. Я бы рекомендовал пройти Rails для Zombies, чтобы получить общее представление о том, нравится вам это или нет.

http://railsforzombies.org/

Очень легко получить что-то на Heroku бесплатно, поэтому вам не нужно тратить деньги, чтобы получить что-то в сети..

Мое второе предложение - это то, что я просто пытаюсь назвать Node.js. Я бы рекомендовал посмотреть это видео, чтобы понять, о чем он говорит:

http://www.youtube.com/watch?v=jo_B4LTHi3I

Если вы в Javascript, я думаю, вы сразу это получите. Вы также можете создать проект Node.js с открытым исходным кодом на www.cloud9ide.com, который тоже довольно изящный.

Третий, если вы изучаете Java, является "Play". Холодное видео на этом:

http://vimeo.com/7087610

Я не использовал это много, но это на моем "делать" список вещей, чтобы проверить. В целом, я предлагаю просто окунуть пальцы ног в воду за кучу разных рамок и получить представление о том, как они работают, и тогда вы, естественно, будете преследовать все, что имеет для вас наибольший смысл. Удачи!

Ответ 4

Я бы сказал, учитывая ваше требование

Просто относительно небольшое количество динамического контента среди других HTML-страниц.

тогда PHP будет трудно превзойти для быстрой работы и минимума накладных расходов на обучение. Это позволяет избежать всех проблем CGI, с которыми вам в противном случае пришлось бы иметь дело, и на самом деле является его собственным языком шаблонов. Вот почему так много начинают с этого. После того, как вы достигнете цели, связанной с смешиванием небольшой логики программирования в HTML-страницах, а также разработкой более гибких, поддерживаемых и проверяемых приложений, тогда такие среды, как Rails, Django и другие, будут стоить вашего урока.

Ответ 5

Использование Схема как язык веб-разработки соответствует вашим критериям, с оговоркой: вместо встроенного кода, встроенного в HTML, у вас встроенный встроенный код в Lisp -образном представлении HTML, называемом s-выражениями. (Существует взаимно однозначное соответствие между HTML и эквивалент s-exp, они могут быть взаимно конвертированы с помощью одного вызова функции.) Таким образом, статические части вашей страницы и кода имеют один и тот же синтаксис - что-то мне очень нравится в Scheme.

> (sxml->xml `(div (p "It been: " (i ,(current-time)) " seconds")))

<div>
  <p>
     It been: <i>1339772791</i> seconds
  </p>
</div>