LINUX.ORG.RU

Посоветуйте язык для web'a


0

0

Ни бум-бум, но хоцца :)
Как я понимаю, нужна разметка страницы (html) и скриптовый язык (СЯ). Если с html более-менее понятно, то с СЯ - вопрос ? Какими свойствами он должен
обладать ? (Приходит на ум тока скорость). Ну в общем посоветуйте, желательно
с ссылками.

P.S.
Жабу, наверное, не надо )


Ответ на: комментарий от archimag

>Это фрэймворки на продолжениях, дальше можно не рассуждать, в топку.
А есть другие? Кроме незавершенного и неизвестно как долго поддерживаемого RESTAS?

Если нет, то считай под CL нормальных фреймворков не существует. И возникает вопрос: почему?

anonymous
()
Ответ на: комментарий от volh

> В коде lisper.ru я видел голый SQL

Там не голый SQL, а s-sql (это важно) (за исключением prepared statements).

Почему не использовать cl-rdbms или даже cl-perec?


Зачем они нужны? ORM накладывает большие ограничения, хотя cl-perec и выглядит достаточно симпатично. Там ещё не полностью произведено разделение, изначально код был монолит, теперь я разбиваю всё на отдельные независимые модули, но форум и модуль авторизации ещё не допилил (будет в течении месяца, надеюсь, как время будет). Каждый модуль имеет параметр *storage*, который может настраиваться на стороне сайта. На начальном этапе разработки этих модулей я использую «storage in memory». В итоге, для модуля может использоваться любой способ хранения информации, лишь бы был реализован необходимый интерфейс. Написать реализцию требуемого интерфейса с помощью postmodern - дело тривиальное, а привязывать к нему ORM - уже не так просто. Возможно в ORM может быть смысл для каких-то очень сложных вещей, но для lisper.ru он будет только обузой.

archimag ★★★
()
Ответ на: комментарий от anonymous

> Если нет, то считай под CL нормальных фреймворков не существует.

И возникает вопрос: почему?


Почему? Один вариант: без них можно обойтись, можно просто писать для hunchentoot, более напряжно, но если основная часть приложения это бизнес-логика, то не страшно. Другой вариант: очень больших сайтов, написанных на CL я не знаю, вот и не надо было никому, но «очень больше сайты» это вообще отдельный разговор ;) А какой ваш вариант?

archimag ★★★
()
Ответ на: комментарий от archimag

>Core Server (http://labs.core.gen.tr/)
Пробовал на нем что-то делать?

Раньше у меня на их сайте браузер вис. Производит впечатление демонстрационного, успешно упокоившегося.

anonymous
()

AFAIK Reddit вначале был написан на Lisp, но потом авторам надоела нехватка библиотек и перевели на Python. Yahoo Store тоже перенесли.

Смешно, что везде он до сих пор значится как написанный на Lisp в описании LispWorks и на сайте Грема.

anonymous
()
Ответ на: комментарий от archimag

>А какой ваш вариант?
Мой таки

основная часть приложения это бизнес-логика


Но работаю не сам, так что Лисп в пролете.

anonymous
()
Ответ на: комментарий от anonymous

> AFAIK Reddit вначале был написан на Lisp

Он был написан на Scheme, afaik.

anonymous
()
Ответ на: комментарий от anonymous

> Пробовал на нем что-то делать?

Нет, в своё время смотрел Weblocks, но я однозначно за REST, и фрэймворки на продолжениях серьёзно не воспринимаю.

archimag ★★★
()
Ответ на: комментарий от archimag

>А как?

http://github.com/rails/rails/blob/2c2b84f93c6eb1a170467c1340a4eeddfa13f7da/a...

А Django на эту тему я смотрел относительно недавно.


Я имел в виду только РоР, но если честно, не понимаю проблемы. В джанговском роутере роуты разбираются регекспами, потому что они и записываются регекспами, что дает свободу для маневра, в рельсовом роутере еще год назад приходилось писать дополнения, если надо было сделать что-то нетривиальное. Наверное надо было плюнуть на всё и сделать труёво - взять Хаскель или Окамл и сделать роутер с паттернматчингом и шлюхами?

см. cl-routes


ok, я думал они зависят от hutchentoot.

Ну да, если используется стандартная схема аутенфикации, которая поставляется в составе Django. А если на сайте надо использоваю свою?


Если надо свою - используем свою. За джанго не скажу, там есть и некоторые зашитые вещи ( вроде орм того же, который наглухо впаян ), в рельсе можно что угодно и как угодно.

И простым объединением в иерархию ты не добьешься единого оформления.


Что понимается под оформлением? Если внешний вид, то что ж мешает? Вряд ли найдется кто-нибудь, кто в свое приложение будет зашивать определенное оформление, так что все что остается сделать - дописать css и js.

volh ★★
()
Ответ на: комментарий от archimag

>Зачем они нужны?

Например, чтобы не рисовать полстраничные выборки, когда моделей хотя-бы пара десятков? Я не имею в виду именно ORM, скорее библиотека-абстракция над sql вообще.

ORM накладывает большие ограничения, хотя cl-perec и выглядит достаточно симпатично.


Какие большие ограничения? Любой ORM позволяет выполнить и простой sql код. Или завернуть этот конкретный код в какой-нибудь метод. И вообще, это ж CL или Ruby - тут можно специализировать этот ORM в рантайме в какую-угодно сторону.

volh ★★
()
Ответ на: комментарий от volh

> http://github.com/rails/rails/blob/2c2b84f93c6eb1a170467c1340a4...

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

Я имел в виду только РоР, но если честно, не понимаю проблемы


Проблема проста: в приложении сотни или даже тысячи маршрутов. Сколько времени будет сжирать система маршрутизации? Мне приходилось видеть обсуждения этой проблемы для RoR.

Если надо свою - используем свою.

...


Что понимается под оформлением? ...


все что остается сделать - дописать css и js.



Хорошо, давай подробно. Вот хочу сделать сайт, для которого я хочу использовать несколько уже разработанных модулей (приложений, в терминологии Django): форум, вики, pastebin и т.п. На сайте для каждого пользователя есть отдельный профиль, где хранится различная о нём информация. Регистрация, авторизация - это всё в ведении «сайта» и является для него уникальным, с помощью стандартных компонент, идущих в поставке того же Django не выражается, т.е. пишем всё сами. Я хочу включить уже разработанные решения для форума, вики и т.п. что бы для получения информации о пользователя эти модули использовали функционал сайта, о котором в момент разработки они ничего не знали. Вопрос в том, как писать такие модули (приложения)? При этом, те же модули я хочу использовать на корпоративном сайте, где используется kerberos и AD.

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

Например, чтобы не рисовать полстраничные выборки,

когда моделей хотя-бы пара десятков?



Никогда с таким не сталкивался. Мне обычно приходится работать в основном с уже готовыми базами (большими и сложными), где большая часть сидит на уровне хранимок, через которые и происходит взаимодествие. SQL-кода для одного модуля обычно нужно минимум.

archimag ★★★
()
Ответ на: комментарий от archimag

>Вопрос в том, как писать такие модули (приложения)?

С тем же convention over configuration все договариваются что есть методы current_user, logged_in?, authenticated?, is_admin?, etc; делегация аутентификации куда угодно через передачу нужного объекта в модуль ; в модуле может быть реализована заглушка, специализировать которую можно в основном приложении. Это из тех что сейчас. В будущем интересно было бы заюзать механизм «provides» - lookup по иерархии middleware и опрос «кто за что отвечает» и «как именно отвечает».

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


Шапка, панель, футер и т.д. общие для всех приложений, само приложение рендерится в основной ( или еще какой-нибудь ) блок. То есть в модулях могут быть дефолтные шапки и меню, но мы вовсе не обязаны их загружать. В Django и Rails есть классы для порядка загрузки разных объектов.

Никогда с таким не сталкивался. Мне обычно приходится работать в основном с уже готовыми базами (большими и сложными), где большая часть сидит на уровне хранимок, через которые и происходит взаимодествие. SQL-кода для одного модуля обычно нужно минимум.


Значит все еще впереди.

volh ★★
()
Ответ на: комментарий от volh

> С тем же convention over configuration все договариваются

Понял плохо, в документации, которую я смотрел, а так же в примерах, с которыми я разбирался, ничего подобного не было. Где-нибудь можно практический пример посмотреть? И это для RoR или Django?


В будущем интересно было бы заюзать механизм «provides» - lookup по

иерархии middleware и опрос «кто за что отвечает» и «как именно


отвечает».



Звучит жутко, как-нибудь проще нельзя? ;)

Шапка, панель, футер и т.д. общие для всех приложений


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

Значит все еще впереди.


Гы... сомневаюсь...

archimag ★★★
()
Ответ на: комментарий от volh

> Например, чтобы не рисовать полстраничные выборки, когда моделей хотя-бы пара десятков? Я не имею в виду именно ORM, скорее библиотека-абстракция над sql вообще.

Чтобы не рисовать полстраничные выборки, существуют хранимые процедуры, которые к тому же работают и значительно быстрее ORM.

anonymous
()
Ответ на: комментарий от anonymous

многие большие ребята намеренно от них избавлялись и приводили аргументацию, почему такое размазывание логики и работа с бд как с черным ящиком не рулят, поищи например презентацию о архитектуре ebay.

вообще, *все* на хранимках перестали делать еще в прошлом веке, особенно логику приложения.

volh ★★
()
Ответ на: комментарий от volh

> многие большие ребята намеренно от них избавлялись и приводили аргументацию, почему такое размазывание логики и работа с бд как с черным ящиком не рулят, поищи например презентацию о архитектуре ebay.

В ebay отказались от «логики в бд» из-за проблем с масштабированием. Но это ebay - решения обычного вебдева для него естественно не подходят.

anonymous
()
Ответ на: комментарий от drZlo

Да поковыряться пока ) А что для начала замутить можно, чтоб потренироваться?

web2py

ei-grad ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.