Pull to refresh

Comments 10

Всё это очень интересно и даже хотелось бы прямо сейчас, а не потом.

Вопрос на понимание современного состояния Roslyn:
Приведенные примеры могут быть написаны в студии в обычном файле кода (*.cs) и студия не будет на них ругаться? позволит запустить? и даже продебажить?
Форк языка будет поддерживаться только компилятором, поддержки IDE не будет.
А если написать расширение для VS которое будет обеспечивать Inellisense и цветовую раскраску? Не чрезмерно сложно?
Я пока на это не смотрел. Для этих целей рекомендую смотреть на nemerle и nitra
При открытости Roslyn я бы не рассчитывал, что откроют код VisualStudio или ReSharper.

Можете посмотреть OmniSharp — сервис, за счёт которого реализована поддержка C# в куче редакторов. Основывается на NRefactory — куске SharpDevelop.

Готовьтесь к тому, что вы лишитесь всех инструментов и всё будете реализовывать с нуля. То есть занятие по определению странное.

Вам чего конкретно не хватает-то? Тот же match через версию будет.
> Вам чего конкретно не хватает-то?

Не то что не хватает, но вижен есть, что будет полезен навык создания DSL и «улучшайзеров» к VS (цвет, интеллисенс, дополнительные вью ...).

Например, можно встроит Prolog в код C#. С точки зрения C# это будет блок данных. А VS будет разукрашивать и подсказывать конструкции Prolog.

Может быть, MVVM можно будет очень компактно написать. Скажем, вместо реализации INotifyPropertyChanged просто добавить пару символов к определению свойства.

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

Это уже сейчас можно делать через кучу разных инструментов (например Fody.PropertyChanged).

А вот возможность встраиваемых DSL-ей — интересна
Интеллисенс и цвет написать и улучшить-то можно, это вполне подъёмная задача. Более того, с приходом Roslyn (или на базе ReSharper) это делать довольно просто. Просто в момент, когда вы меняете язык, вы лишаетесь того, что уже есть. А это дофига. Вам вряд ли понравится результат.

Например, можно встроит Prolog в код C#. С точки зрения C# это будет блок данных.

Не понял, как вы себе это представляете.

Скажем, вместо реализации INotifyPropertyChanged просто добавить пару символов к определению свойства.

Для INotifyPropertyChanged существует 100500 способов уже сейчас. Атрибут на класс/свойство — и готово.

Метапрограммирование позволяет реализовать много чего интересного и, увы, сложного можно нагородить.

Может, сразу взять другой язык за основу? :)
У меня была еще в 2011 про Рослин статья habrahabr.ru/post/133340/ Через два года правда MS уже сами это реализовали)
А зачем для C# match, если нет алгебраических типов?
Sign up to leave a comment.