Обновить
8K+
5

Пользователь

4,5
Рейтинг
12
Подписчики
Отправить сообщение
Дизайнеру, как и самому программисту, проще и удобней редактировать код, максимально приближенный к целевой разметке.

Кроме того, в данном приложении автор использует библиотеку cl-closure-template. которая имеет ещё и совсем другие преимущества (хотя это и не важно для данного приложения), я писал об этом здесь
Ну так шаблоны же позволяют тоже самое, только они не забивают мусором основной код и их могу править дизайнеры.
Я пробовал так. В итоге когда перешёл на шаблоны, то был просто счастлив от того, насколько всё стало проще и яснее.

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

На практике получается просто жуть.
Безусловно. Только это другие языки. Не такие как CL. И сделано там метапрограммирование совсем по другому. Я говорю о том, что конкретно CL практически не реально сделать на основе другого синтаксиса.
Гипотеза неверная, проверенно на опыте.
Например, на этот основано метапрограммирование. Ньюансов много разных.
> почему люди, освоившие лисп предпочитают старый синтаксис без изменений

А его просто нельзя изменить. Нельзя сделать язык со свойствами CL на базе С-синтаксиса.
В asp.net при попытке выйти за пределы стандартной схемы начинается жуть разная. Т.е. это нормально работает только для стандартных (с точки зрения разработчиков ASP.NET) приложений. Если ваше приложение не такое, то с asp.net лучше не связываться.

Кроме того, так же нет REPL, макросов, CLOS и т.п., т.е. более слабый язык. Да ещё и не работает на нормальных ОС.
Судя по заголовками, сайт работает через nginx, который просто проксирует запросы на Hunchentoot. Вот на lisper.ru/ чистый CL.
Языка лисп нет уже давно, сейчас это семейство языков, которые достаточно сильно различаются между собой и очень далеко ушли от первоначальной идеи Маккарти.
Мне синтаксис тоже не очень нравится, но он обладает рядом важных свойств, необходимых для lisp. Так что приходится его принимать ради тех преимущества, которые даёт CL.
CL не функциональный язык. И ему не 50 лет, стандарт датируется 1994 годом кажись.
У меня нет какого либо желания переубеждать конкретно вас, в конце концов, это ваш личный выбор. Но в подобных статьях, цель которых, насколько я понимаю, — популяризация, нельзя обходиться только cl-who, ибо это производит очень негативное впечатление на опытных веб-разработчиков.
Ладно, в мире CL есть такая болезнь, над которой смеются все веб-разработчики: старание генерировать html/xml через s-выражения и cl-who часть этой болезни. Веб-разработка на CL становится значительно проще если от этой болезни избавиться.
Насколько долго?

lisper.ru я сначала так и писал. Потом передела на шаблонах и насколько же всё стало проще. Закрывающиеся тэги здесь вообще не при чём, редактируйте шаблоны в нормальном редакторе (Emacs) и не будете иметь с ними никаких проблем.

> Построение web-страницы при помощи CL-WHO прекрасно разбивается на функции

Нет, не разбивается, ибо cl-who специальным образом перерабатывает дерево с кодом и генерирует на его основании новый код, вы не сможете разбить шаблон на несколько функций (если не использовать недокументированные возможности).

> не говоря уже о Lisp-макросах

А, так дизайнер должен ещё и макросы освоить? Для такой тривиальной задачи как генерация html не имеет никакого смысла привлекать тяжёлую артиллерию. Иначе идёт усложение простейших вещей, которые решаются элементарно за счёт шаблоново.

Кроме того, при использовании cl-who происходит смешивание логики приложения с логикой представления и править это потом просто кошмар, особенно учитывая какие простыни кода при этом получаются при генерации реальный веб-страниц.
Дизайнер не сможет править cl-who, ибо там код на CL. Что, дизайнер должен изучить CL? И при этом его надо пускать в код с логикой? Лучше дизайнеров держать подальше от таких вещей. А сами шаблоны не должны быть частью кода. Всем будет от этого лучше, и прежде всего самим разработчикам.
Во-первых, про дизайнеров тут уже всё сказали. Но даже если в роли дизайнера выступает программист, то всё равно использование системы шаблонов намного более эффективно. При использовании cl-who происходит жуткое раздувание основного кода, потом по нему надо тыкаться и исправлять логику. Это очень не эффективно.

Во-вторых, cl-who (если не лезть в кишки) не позволяет эффективно составлять страницы из разных частей.

Шаблонизаторы это сейчас единственный приемлемый способ генерации контента, как бы доказано всей практикой веб-разработки. Та же E-factory из lxml (Python) будет, например, удобней, чем cl-who, но никто не использует её для генерации веб-страниц.
Не надо, использовать cl-who в серьёзных проектах никто в здравом уме не будет. cl-who годится только для небольших демонстраций.

Информация

В рейтинге
1 438-й
Зарегистрирован
Активность