Альтернативы php для встроенного веб-программирования?
Я сначала изучил веб-программирование с php некоторое время назад. У этого есть некоторые особенности, которые я нахожу очень полезными, но общий язык не то, что мне нравится, так же как и личное предпочтение. Мне интересно, какие альтернативы я мог бы использовать для обеспечения аналогичной функциональности с использованием другого базового языка программирования (Python? Ruby?).
Что я ищу:
- возможность программирования общего назначения
- встроенный серверный код, встроенный в HTML (т.е. я хочу, если нужно, сделать мои документы чистым HTML, а не требовать специального синтаксиса, даже если я не хочу динамического содержимого)
- доступ к параметрам запроса
- возможность отправлять заголовки, устанавливать файлы cookie и т.д.
Предпочтительно:
- не требует отдельного процесса сервера
- легко подключаться к Apache
Есть ли у кого-нибудь предложения?
Одна вещь, которую я пытался сделать, - это встроенный Ruby (erb) через CGI. Это выглядело как хорошая подгонка на бумаге. К сожалению, я не смог заставить его работать, потому что я следил за несколькими разными руководствами, и результат их объединения не сработал. Во всяком случае, похоже, это не позволило мне установить произвольные заголовки (и, что более важно, использовать сеансы и файлы cookie).
Примечание. Я не ищу полную веб-структуру на данный момент. Просто относительно небольшое количество динамического контента среди других HTML-страниц.
Спасибо!
Ответы
Ответ 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>