Открыть список
Как стать автором
Обновить
0
Карма
0
Рейтинг

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

Что нам готовит C# 7 (Часть 2. Pattern matching)

Ещё бы discriminated union добавили, стало бы совсем хорошо


То что они называют записями и есть «discriminated union», точнее алгебраические типы.

NemerleWeb — Уникальный веб-фреймворк

Простая и понятная серверная генерилка текста/json'на — это то, что нужно, хотя в Play наворочено побольше.

Кому и CGI то что нужно. Кто до чего дорос.

Более сложные веб-проекты уже давно ваяют на client-side фреймворках типа Angular.

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

Банально удобнее работать, когда код на JS чистый, а не сгенерированный.

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

Я, кстати, не поленился заглянуть в вики и почитать про MVVM, потому что давно ничего про него не слышал

О, это в духе тех кто рассуждает о чужом ЧСВ. Сначала сослаться на AngularJS, а потом сказать, что давно не слышал про MVVM. Но AngularJS и есть реализация MVVM.

NemerleWeb — Уникальный веб-фреймворк

Лифт никакого js автоматически не генерирует. Лифт — это серверная генерилка текста. Он конечно может сгенерировать страницу содержащую js, но это совсем не тоже самое, что сгенерировать js по коду на Скале. Соответственно понятия клиентского биндинга в Лифте нет.

В данном же случае код который пишется на Немерле преобразуется в js во время компиляции. И биндинги делаются на клиентской стороне.

Если этого не понять, то понять написанное в статье невозможно.

NemerleWeb — Уникальный веб-фреймворк

Орлы, я вас удивлю. Лифт — это серверная генерилка текста вроде Разора. С Play, но по беглому описанию это тоже самое, но с синтаксисом Разора. К описываемому здесь продукту и его подходу он (и Разор) не имеют никакого отношения.

Изучите на досуге MVVM и поймите, что все шаблоны представленные в этой статье: а) работают на клиенте; б) динамические (перегенерируют HTML при изменении модели представления).

NemerleWeb — Уникальный веб-фреймворк

«Подчеркивание» ошибок не пропадет. Интеллисенс, да — пропадет. Но можно захардкодить его поддержку.

NemerleWeb — Уникальный веб-фреймворк

Жалко здесь нет смайликов, потому что сообщение очень смешное. Покритиковал и предложил сделать то что критиковал (причем его альфа-версию). Видимо критиковать намного проще и интереснее нежели разобраться в предмете критики. :)

NemerleWeb — Уникальный веб-фреймворк

Так тут-то как раз легковесно.
Ангуляр и НокаутЖС взлетели ведь. Тут тот же принцип (MVVM и биндинг) плюс автоматизация целой кучи работы: автоматическая сериализация данных при передаче между сервером и клиентом, прозрачность серверной части, статическая типизация, интелисенс.

NemerleWeb — Уникальный веб-фреймворк

Это можно сделать просто поместив его в паршал-класс.

public partial class ReactiveToDo { [Html] public View() : string { ... } }

Метод же использован только потому, что у Nemerle имеет отличные средства расширения себя самого, но в нем не очень просто создать DSL хранящий код в отдельном фале (со своим расширением). Хотя это и возможно, но работы много.

Эту проблему должна решить Nitra.

NemerleWeb — Уникальный веб-фреймворк

Здесь нет смешения модели и представления. Более того, здесь есть два уровня модели. Модель (что на сервере) и модель представления. Это же MVVM.

В представлении же встречается исключительно код отвечающий за рендеринг и связывание. Без него в интерактивных приложениях никуда.

NemerleWeb — Уникальный веб-фреймворк

Миф — это только для тех кто не в теме. Что до конкретного случая, то — да, для конкретного. Но вся мощь расширяемых языков (к которым относится Nemerle) как раз и залючается в том, что на них можно строить решения для конкретных случаев. Этот подход называется LOP (Language Oriented Programming). Вы создаете простые языки (или языковые расширения) решающие конкретные задачи, а макросы позволяют сотворить почти любую магию во время компиляции, автоматически генерируя весь нужный обвязочный код.

NemerleWeb — Уникальный веб-фреймворк

Учиться нужно, в первую очередь, для себя. Ведь пока не освоишь что-то, и оценить его невозможно. Тут вот в обсуждении очень много высказываний в стиле персонажа одной известной басни. Не уподобляйтесь им!
А для начала можно и на C# писать. Nemerle его компилировать умеет. Одна беда — ителлисенса нет для C#.
Вот здесь у них есть пример на C#.

NemerleWeb — Уникальный веб-фреймворк

Я вам сразу сказал, что это нужно в обязательном порядке сделать. Отладка по реальным (а не сгенерированным) исходникам — это очень важно.

NemerleWeb — Уникальный веб-фреймворк

Нет. Мы выпиливаем Nitralanguage workbench (т.е. средство для создания своих языков). К разработке ReSharper-а мы непричастны (хотя и сидим в соседних комнатах).

NemerleWeb — Уникальный веб-фреймворк

Я так понимаю, что пример этот совсем плевый. По крайней мере для этого фреймворка.

Предлагаю изобразить этот же пример (с той же функциональностью) на привычном вам средстве, а мы сравним чей код окажется чище и понятнее.

То что вы в чем-то не можете разобраться может быть следствием вашей неподготовленности, а не грязи в коде. Объясните в двух словах ваши критерии «грозности кода». Лучше с примерами из этого кода.

Введение в DSL. Часть 1 — Проблематика проектирования и кодирования

Да, статья в англоязычной википедии в сто раз информативное, последовательнее и интереснее. Лучше бы было ее перевести.

Введение в DSL. Часть 1 — Проблематика проектирования и кодирования

Качество статьи, мягко говоря, невысокое. Много откровенно не относящегося к делу текста. Часть информации относящейся к делу является косметически-подправленной цитатой с википедии, при этом без ссылки на первоисточник (статья в википедии). Статья содержит множество деклараций без аргументации.

На мой взгляд, ценность этой статьи близка к нулю. С тем же успехом можно прочитать статью из википедии.

10 лет RSDN

Плохо говорить о покойниках плохо, но я не помню времен, чтобы там не периодически не писали дикий лам.

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

С вопросами в форуме было так же.

Мне кажется — это политика. Гдн-овцы (реально МС) пытались привлечь максимум посетителей и делали ставку на новичков. Но результат получился ровно обратным. Там где нет спецов появляется болото из ламеров. И люде которые хотят расти (в профессиональном плане) просто выбрали другие сайты.

10 лет RSDN

Думаю… да что дам думаю? Уверен, что по дотнету, С++, алгоритмам и многим функциональным языкам на RSDN ответ будет быстрее и лучше.

А главное, что сформулировать вопрос и понять ответ на своем родном языке во много раз проще. Только пожив реально в англоязычной стране несколько лет люди начинают нормально формулировать свои мысли на английском.

10 лет RSDN

> Виной тому — низкая культура общения или, как я его называю, «мегатроллизм». Так же проблема была и на GDN года 3-4 назад, но там всю эту нечисть как-то изжили, пускай и не полностью.

В месте с самим сайтом :). Он, как я понимаю, практически скончался.

10 лет RSDN

> Насколько я понимаю, это связане не только с загруженностью резензентов, но и с тем что RSDN включен в Список научных журналов ВАК Минобрнауки России

От части — да.

>Данный положение подкрепляется материальными потоками со стороны Минобрнауки для поддержания статуса журнала или все издержки ложатся на плечи RSDN?

Нет. Денег от этого нет совсем. Есть только большая заинтересованность писать тем кому нужна публикация в научном журнале.
1

Информация

В рейтинге
5,969-й
Зарегистрирован
Активность