Nemerle WUI
От: _NN_ www.nemerleweb.com
Дата: 15.04.12 11:02
Оценка:
После прочтения Веб фрэймворк для Nemerle
Автор: VladD2
Дата: 13.02.11
, появилось пару вопросов.

http://rsdn.nemerleweb.com
http://nemerleweb.com
Re: Nemerle WUI
От: VladD2 Российская Империя www.nemerle.org
Дата: 15.04.12 15:44
Оценка:
Здравствуйте, _NN_, Вы писали:

_NN>
  • Как быть с JS-Only библиотеками ?
    _NN>Неужели оборачивать их в Nemerle аналог.

    Ты как-то сам с собой разговариваешь.

    _NN>В Google Web Toolkit таким образом это решается.

    _NN>Не очень удобно когда нужно это делать вручную с нуля.

    Так в чем вопрос то? Оборачивай если надо.

    _NN>
  • Как интегрируется веб дизайнер в этом фреймворке ?

    Веб-дизайнер — это HTML-редактор?

    _NN>Например, веб дизайнер выдает голый HTML с JS контролями.


    Зачем с JS?

    _NN>Будет ли нужно это все переводить вручную в DSL ?


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

    А вообще тот кто занимается мордой должен освоить ДСЛ для описания view и используя предоставляемые программистами VioewModel-ы делать интерфейс. По сути там получается что-то типа ХТМЛ с незначительным количеством конструкций позволяющих биндить VioewModel и рендерить динамический контент.

    Погляди примеры http://knockoutjs.com. Вьюх будут чем-то подобным их вьюхам, толко статически типизированными и с Н вместо ЖС в качестве кода.
  • Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
    Re[2]: Nemerle WUI
    От: _NN_ www.nemerleweb.com
    Дата: 16.04.12 08:00
    Оценка:
    Здравствуйте, VladD2, Вы писали:

    VD>Так в чем вопрос то? Оборачивай если надо.


    В чем тогда отличие от GWT ?

    _NN>>Как интегрируется веб дизайнер в этом фреймворке ?


    VD>Веб-дизайнер — это HTML-редактор?

    Человек.

    _NN>>Например, веб дизайнер выдает голый HTML с JS контролями.


    VD>Зачем с JS?

    Ну скажем используется JQuery UI.

    _NN>>Будет ли нужно это все переводить вручную в DSL ?


    VD>Если у тебя есть статическая верстка, то можешь ее сделать где угодно и потом добавить в нее динамику.


    VD>А вообще тот кто занимается мордой должен освоить ДСЛ для описания view и используя предоставляемые программистами VioewModel-ы делать интерфейс. По сути там получается что-то типа ХТМЛ с незначительным количеством конструкций позволяющих биндить VioewModel и рендерить динамический контент.

    Т.е. человек который создает статическую разметку, сначала создает HTML в его любимом редакторе, а потом вручную переводит в DSL ?
    http://rsdn.nemerleweb.com
    http://nemerleweb.com
    Re[3]: Nemerle WUI
    От: Ziaw Россия  
    Дата: 16.04.12 09:10
    Оценка: +1
    Здравствуйте, _NN_, Вы писали:

    VD>>А вообще тот кто занимается мордой должен освоить ДСЛ для описания view и используя предоставляемые программистами VioewModel-ы делать интерфейс. По сути там получается что-то типа ХТМЛ с незначительным количеством конструкций позволяющих биндить VioewModel и рендерить динамический контент.

    _NN>Т.е. человек который создает статическую разметку, сначала создает HTML в его любимом редакторе, а потом вручную переводит в DSL ?

    Имхо, все шаблоны должны быть в html. Как статика, так и для динамического биндинга. Динамически подгружаемые со вставками DSL вроде jquery-template, в том числе и для биндингов. Валидность биндингов должна проверяться в процессе компиляции. А "статику" должен обеспечивать любой существующий фреймворк ASP.NET MVC, NancyFx, хоть WebForms. WUI должен обеспечивать только реактивный UI и не быть зависимым от внешних фреймворков. Подключаться он должен как точка маппинга урлов для методов передачи данных и генерируемого js.

    По поводу подключения внешних js тоже пока нет единого мнения. Я считаю, что на уровне языка достаточно дать возможность вставлять в nemerle нетипизированный js код, который будет общаться с внешними либами. Это даст возможность как писать типизированные обертки так и спокойно работать без них.

    Сейчас бесполезно гадать, что и как будет. Ибо это будет решать разработчик WUI, все что у нас есть это очень общие идеи, наброски для DSL и прототип компилятора nemerle кода в js.
    Re[4]: Nemerle WUI
    От: _NN_ www.nemerleweb.com
    Дата: 16.04.12 13:23
    Оценка:
    Здравствуйте, Ziaw, Вы писали:

    Z>Здравствуйте, _NN_, Вы писали:


    VD>>>А вообще тот кто занимается мордой должен освоить ДСЛ для описания view и используя предоставляемые программистами VioewModel-ы делать интерфейс. По сути там получается что-то типа ХТМЛ с незначительным количеством конструкций позволяющих биндить VioewModel и рендерить динамический контент.

    _NN>>Т.е. человек который создает статическую разметку, сначала создает HTML в его любимом редакторе, а потом вручную переводит в DSL ?

    Z>Имхо, все шаблоны должны быть в html. Как статика, так и для динамического биндинга. Динамически подгружаемые со вставками DSL вроде jquery-template, в том числе и для биндингов. Валидность биндингов должна проверяться в процессе компиляции. А "статику" должен обеспечивать любой существующий фреймворк ASP.NET MVC, NancyFx, хоть WebForms. WUI должен обеспечивать только реактивный UI и не быть зависимым от внешних фреймворков. Подключаться он должен как точка маппинга урлов для методов передачи данных и генерируемого js.

    А разве WUI не претендовал на замену всему ?
    Выглядит конечно более разумно на первый взгляд, но насколько тогда нужен сам WUI ?
    Тогда можно взять C# и добавить к нему метаатрибуты для генерации.

    Z>По поводу подключения внешних js тоже пока нет единого мнения. Я считаю, что на уровне языка достаточно дать возможность вставлять в nemerle нетипизированный js код, который будет общаться с внешними либами. Это даст возможность как писать типизированные обертки так и спокойно работать без них.

    Это похоже на путь GWT, там можно писать обертки и генерировать js.
    Но мне он не понравился, слишком много кода писать для простых действий.
    Да и Java

    Z>Сейчас бесполезно гадать, что и как будет. Ибо это будет решать разработчик WUI, все что у нас есть это очень общие идеи, наброски для DSL и прототип компилятора nemerle кода в js.

    Я подумываю заняться разработкой.
    Нужно только уточнить насколько стоит этим заниматься и не проще взять что-то другое. С другой стороны что "другое" можно взять ?
    http://rsdn.nemerleweb.com
    http://nemerleweb.com
    Re[5]: Nemerle WUI
    От: Аноним  
    Дата: 16.04.12 13:38
    Оценка:
    Здравствуйте, _NN_, Вы писали:


    _NN>Я подумываю заняться разработкой.

    _NN>Нужно только уточнить насколько стоит этим заниматься и не проще взять что-то другое. С другой стороны что "другое" можно взять ?
    websharper, не?
    Re[6]: Nemerle WUI
    От: hardcase Пират http://nemerle.org
    Дата: 16.04.12 14:03
    Оценка:
    Здравствуйте, Аноним, Вы писали:

    А>websharper, не?


    Его синтаксис рвет шаблоны нормальным людям.
    /* иЗвиНите зА неРовнЫй поЧерК */
    Re[5]: Nemerle WUI
    От: hardcase Пират http://nemerle.org
    Дата: 16.04.12 14:05
    Оценка:
    Здравствуйте, _NN_, Вы писали:

    _NN>Я подумываю заняться разработкой.

    _NN>Нужно только уточнить насколько стоит этим заниматься и не проще взять что-то другое. С другой стороны что "другое" можно взять ?

    Я пробовал скрестить knockoutjs и haXe, но понял что для нормального секрещивания нужно забираться в дебри макросов haXe. Без нормального PM-а и квазицитат мне показалась задача слабоподъемной.
    /* иЗвиНите зА неРовнЫй поЧерК */
    Re[3]: Nemerle WUI
    От: VladD2 Российская Империя www.nemerle.org
    Дата: 16.04.12 15:32
    Оценка:
    Здравствуйте, _NN_, Вы писали:

    VD>>Так в чем вопрос то? Оборачивай если надо.


    _NN>В чем тогда отличие от GWT?


    Я GWT не видел. Судя по описанию GWT — это просто генерилка жабаскрипта по Жабе.

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

    Короче, у нас генерация жабаскрипта — это всего лишь подфича. У GWT — это основная фича.

    VD>>Зачем с JS?

    _NN>Ну скажем используется JQuery UI.

    Вот весь смысл этого фрэймворка в том, чтобы не надо было писать вообще никакого кода, и уж тем более на жабаскрипте.

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

    Писать же код нужно только в модели представления. В самом представлении кода быть не должно. Максимум простенькие инлайн-вставки.

    Короче, еще раз отправляю поглядеть код кнокаута.
    http://knockoutjs.com/examples/
    http://learn.knockoutjs.com/#/?tutorial=intro

    _NN>Т.е. человек который создает статическую разметку, сначала создает HTML в его любимом редакторе, а потом вручную переводит в DSL ?


    Дык сам ДСЛ — это и разновидность ХМЛ-я. Так что он все будет делать в своем любимом редакторе. Просто его придется обучить тому какие теги что значат, и тому как делать биндинг.

    Если будет комплит (что вполне возможно поддержать), то он будет выбирать биндинг из списка.
    Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
    Re[4]: Nemerle WUI
    От: VladD2 Российская Империя www.nemerle.org
    Дата: 16.04.12 18:02
    Оценка:
    Здравствуйте, Ziaw, Вы писали:

    Z>Сейчас бесполезно гадать, что и как будет.


    Вот это, пожалуй, самая здравая мысль. Идея есть. Прототип есть. То что проект можно реализовать сомнений нет. А детали реализации будут 100 раз изменяться по ходу углубления в детали. Так бывает всегда и везде. Так что нужно не думать и гадать, а браться и делать. Жизнь сама подскажет лучшие решения.

    ЗЫ

    Не подумай, что я согласился с тем, что идея пихать жабаскрипт куда попало — хорошая.
    Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
    Re[6]: Nemerle WUI
    От: VladD2 Российская Империя www.nemerle.org
    Дата: 16.04.12 18:05
    Оценка:
    Здравствуйте, Аноним, Вы писали:

    _NN>>С другой стороны что "другое" можно взять ?

    А>websharper, не?

    Не.
    Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
    Re[5]: Nemerle WUI
    От: VladD2 Российская Империя www.nemerle.org
    Дата: 16.04.12 18:26
    Оценка:
    Здравствуйте, _NN_, Вы писали:

    _NN>А разве WUI не претендовал на замену всему ?


    В WUI главное то что ты опустил — Nemerle...Reactive.

    Первое (Nemerle) дает нам возможность забыть о разделении на серверный код написанный на одном языке, и на клиентский на другом (скриптовом). Так же он позволяет автоматизировать все рутинные операции и сделать решение почти декларативным. Reactive позволяет сделать полностью декларативным описание того самого WUI. Это делается за счет того, что представление практически не содержит кода.

    _NN>Выглядит конечно более разумно на первый взгляд, но насколько тогда нужен сам WUI ?


    Выглядит как раз не разумно. Никакая статика не нужна. Если у нас есть динамические "шаблоны", то сделать их статическими (т.е. отрабатывающими на сервере) уже дело техники.

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

    Я бы вообще не называл это шаблонизатором. Это ДСЛ представлений. В нем главное — это биндинг, а не код. Код там должен быть очень ограниченным. И по возможности его нужно так же помещать в контролы с биндингом, а не писать в прикладных решениях.

    _NN>Тогда можно взять C# и добавить к нему метаатрибуты для генерации.


    Тогда ты никогда не получишь того о что можно добиться в Nemerle.WUI.Reactive. Ты получишь еще один убогий фрэмворк похожий на 100500 таких же убогих фрэймворков. Повышать производительность струда по сравнению с ними он не будет. А по сравнению с применением того же кнокаута ты еще и проиграешь. Учитывая не высокую популярность самого немерла с огромной вероятностью можно сказать, что фрэмворк никого не заинтересует.

    Z>>По поводу подключения внешних js тоже пока нет единого мнения. Я считаю, что на уровне языка достаточно дать возможность вставлять в nemerle нетипизированный js код, который будет общаться с внешними либами. Это даст возможность как писать типизированные обертки так и спокойно работать без них.

    _NN>Это похоже на путь GWT, там можно писать обертки и генерировать js.

    Это доже в 100 раз хуже. Это похоже на дырявую абстракцию. В этом смысл нет вообще.
    Есть смысл полностью запретить использование жабаскрипта (и других языков) в моделе представления и самой модели.

    Для совместимости со внешними жабаскриптовыми библиотеками имеет смысл дать возможность писать кастом-контролы которые будут инкапсулировать жабаскрипт. Кастом-контрол — это типизированный интерфейс в виде контророла Nemerle.WUI.Reactive, но содержащий в своих кишках произвольный жабаскрипт и хмл/хтмл. Суть его заключается в том, что у такого контрола (тега) будут четко прописан интерфейс в виде атрибутов тега и биндингов на них.

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

    _NN>Нужно только уточнить насколько стоит этим заниматься и не проще взять что-то другое. С другой стороны что "другое" можно взять ?


    Проще — возьми. За одно расскажешь остальным чем это проще и что это дает.

    Мое мнение однозначное — Nemerle.WUI.Reactive мог бы стать киллер-приложением для Н. Он явно будет востребован и обладает вполне осязаемой крутостью. Аналогов в типизированном мире нет и не ясно когда появятся (если я ничего не просмотрел). Ну, разве что UrWeb (или как там его?), но это явно академический проект который вряд ли выйдет использовать на практике.
    Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
     
    Подождите ...
    Wait...
    Пока на собственное сообщение не было ответов, его можно удалить.