Простая и понятная серверная генерилка текста/json'на — это то, что нужно, хотя в Play наворочено побольше.
Кому и CGI то что нужно. Кто до чего дорос.
Более сложные веб-проекты уже давно ваяют на client-side фреймворках типа Angular.
Вот этот фреймворк и есть аналог Angular-а, только без необходимости вручную связывать его с сервером, вручную генерить джейсон, и склеивать все это в одно приложение. Вместо этого код (и клиентский, и серверный) пишется на Немерле, а компилятор сам преобразует его в js или в серверный код. При этом обеспечивается автоматическая и прозрачная сериализация, контроль ошибок во время компиляции и куча других вкусностей.
Банально удобнее работать, когда код на JS чистый, а не сгенерированный.
Это спорный вопрос. Немерл более мощный язык. В нем есть алгебраические типы, паттерн матчинг, и макросы (с помощью которых можно автоматизировать рутинные задачи). Плюс контроль ошибок во время компиляции (того же биндинга, например) и полная анегиляция болерплэйт-кода за счет макросов.
Я, кстати, не поленился заглянуть в вики и почитать про MVVM, потому что давно ничего про него не слышал
О, это в духе тех кто рассуждает о чужом ЧСВ. Сначала сослаться на AngularJS, а потом сказать, что давно не слышал про MVVM. Но AngularJS и есть реализация MVVM.
Лифт никакого js автоматически не генерирует. Лифт — это серверная генерилка текста. Он конечно может сгенерировать страницу содержащую js, но это совсем не тоже самое, что сгенерировать js по коду на Скале. Соответственно понятия клиентского биндинга в Лифте нет.
В данном же случае код который пишется на Немерле преобразуется в js во время компиляции. И биндинги делаются на клиентской стороне.
Если этого не понять, то понять написанное в статье невозможно.
Орлы, я вас удивлю. Лифт — это серверная генерилка текста вроде Разора. С Play, но по беглому описанию это тоже самое, но с синтаксисом Разора. К описываемому здесь продукту и его подходу он (и Разор) не имеют никакого отношения.
Изучите на досуге MVVM и поймите, что все шаблоны представленные в этой статье: а) работают на клиенте; б) динамические (перегенерируют HTML при изменении модели представления).
Жалко здесь нет смайликов, потому что сообщение очень смешное. Покритиковал и предложил сделать то что критиковал (причем его альфа-версию). Видимо критиковать намного проще и интереснее нежели разобраться в предмете критики. :)
Так тут-то как раз легковесно.
Ангуляр и НокаутЖС взлетели ведь. Тут тот же принцип (MVVM и биндинг) плюс автоматизация целой кучи работы: автоматическая сериализация данных при передаче между сервером и клиентом, прозрачность серверной части, статическая типизация, интелисенс.
Это можно сделать просто поместив его в паршал-класс.
public partial class ReactiveToDo
{
[Html]
public View() : string
{
...
}
}
Метод же использован только потому, что у Nemerle имеет отличные средства расширения себя самого, но в нем не очень просто создать DSL хранящий код в отдельном фале (со своим расширением). Хотя это и возможно, но работы много.
Миф — это только для тех кто не в теме. Что до конкретного случая, то — да, для конкретного. Но вся мощь расширяемых языков (к которым относится Nemerle) как раз и залючается в том, что на них можно строить решения для конкретных случаев. Этот подход называется LOP (Language Oriented Programming). Вы создаете простые языки (или языковые расширения) решающие конкретные задачи, а макросы позволяют сотворить почти любую магию во время компиляции, автоматически генерируя весь нужный обвязочный код.
Учиться нужно, в первую очередь, для себя. Ведь пока не освоишь что-то, и оценить его невозможно. Тут вот в обсуждении очень много высказываний в стиле персонажа одной известной басни. Не уподобляйтесь им!
А для начала можно и на C# писать. Nemerle его компилировать умеет. Одна беда — ителлисенса нет для C#.
Вот здесь у них есть пример на C#.
Нет. Мы выпиливаем Nitra — language workbench (т.е. средство для создания своих языков). К разработке ReSharper-а мы непричастны (хотя и сидим в соседних комнатах).
Я так понимаю, что пример этот совсем плевый. По крайней мере для этого фреймворка.
Предлагаю изобразить этот же пример (с той же функциональностью) на привычном вам средстве, а мы сравним чей код окажется чище и понятнее.
То что вы в чем-то не можете разобраться может быть следствием вашей неподготовленности, а не грязи в коде. Объясните в двух словах ваши критерии «грозности кода». Лучше с примерами из этого кода.
Качество статьи, мягко говоря, невысокое. Много откровенно не относящегося к делу текста. Часть информации относящейся к делу является косметически-подправленной цитатой с википедии, при этом без ссылки на первоисточник (статья в википедии). Статья содержит множество деклараций без аргументации.
На мой взгляд, ценность этой статьи близка к нулю. С тем же успехом можно прочитать статью из википедии.
Плохо говорить о покойниках плохо, но я не помню времен, чтобы там не периодически не писали дикий лам.
Как тех.ред помню много случаев когда мы заворачивали статьи по причине дикого лама, а спустя некоторое время они появлялись на гдне даже без редактуры.
С вопросами в форуме было так же.
Мне кажется — это политика. Гдн-овцы (реально МС) пытались привлечь максимум посетителей и делали ставку на новичков. Но результат получился ровно обратным. Там где нет спецов появляется болото из ламеров. И люде которые хотят расти (в профессиональном плане) просто выбрали другие сайты.
Думаю… да что дам думаю? Уверен, что по дотнету, С++, алгоритмам и многим функциональным языкам на RSDN ответ будет быстрее и лучше.
А главное, что сформулировать вопрос и понять ответ на своем родном языке во много раз проще. Только пожив реально в англоязычной стране несколько лет люди начинают нормально формулировать свои мысли на английском.
> Виной тому — низкая культура общения или, как я его называю, «мегатроллизм». Так же проблема была и на GDN года 3-4 назад, но там всю эту нечисть как-то изжили, пускай и не полностью.
В месте с самим сайтом :). Он, как я понимаю, практически скончался.
> Насколько я понимаю, это связане не только с загруженностью резензентов, но и с тем что RSDN включен в Список научных журналов ВАК Минобрнауки России
От части — да.
>Данный положение подкрепляется материальными потоками со стороны Минобрнауки для поддержания статуса журнала или все издержки ложатся на плечи RSDN?
Нет. Денег от этого нет совсем. Есть только большая заинтересованность писать тем кому нужна публикация в научном журнале.
> Дальше — репутацией на РСДН тоже гордятся, и даже в резюме бывает пишут TOP n на сайте rsdn.ru
Скажу больше, оценки на RSDN многие работодатели рассматривают как реальную оценку компетентности специалиста. Я видел таких случаев массу. И оно понятно, ведь оцененные сообщения можно тут же прочесть и оценить. Плюс накрутки на RSDN очень тяжело делать. Алгоритм не позволяет + модераторы за этим следят.
Так что системы типа StackOverflow скорее приучают к аккуратности высказываний, а наши к объективности оценок и откровенности высказывания.
Вообще-то сайты/форумы в первую очередь выбираются на основании их содержимого (наличия ответов на свои вопросы, наличие интересной информации и т.п.). Выбирать сайт или форум по внешнему виду или способу представления данных — это все равно что выбирать программу (софт) не обращая внимание на правильность его работы, а обращая внимание на второстепенные показатели качества вроде скорости работы или красивости интерфейса.
> А что мешает, собственно, в C# это реализовать в виде библиотеки?
Отсутствие возможности расширять синтаксис. Без сокрытия деталей реализации код будет ужасен и никто не захочет писать такой код.
Для поддержки подобного в C# нужно менять компилятор. Собственно в C# 5.0 и будет введен синтаксис для подержи асинхронного программирования. Но это будет конкретная реализация которая будет гвоздями прибита к языку. В случае Nemerle реализация — это макрос. Его можно подключить в виде библиотеки, а чтобы использовать в конкретном файле проекта нужно еще открыть с помощью using.
> Скоро будет релиз, в котором будет конвертер из C# в Nemerle, а так же возможность компилятором Nemerle компилировать C# файлы. То есть берем проект на C#, а новый функционал пишем уже на Nemerle)
Уже есть. В последних инсталляторах уже есть поддержка компиляции C#-файлов. Сейчас уже основные глюки выловлены, так что можно пользоваться (хотя, конечно, какие-то ошибки будут, наверно).