Привет Владу от Эрика Липперта
От: Sinclair Россия http://corp.ingrammicro.com/Solutions/Cloud.aspx
Дата: 10.11.08 04:59
Оценка: :))) :)

Enabling metaprogramming is another possible theme on our minds, thought it is not at all clear how that would happen. (Make C# its own metalanguage? Extend expression trees to statement trees, declaration trees, and so on? Open up the internals of the compiler and provide an object model that lets people generate programs directly? It is hard to say what direction is the right one to go in here.) Fortunately, people way smarter than I am are thinking about these things.

(Fabulous Adventures in Coding, http://blogs.msdn.com/ericlippert/archive/2008/11/07/the-future-of-c-part-five.aspx)
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
http://rsdn.org/File/5743/rsdnaddict.GIF
Re: Привет Владу от Эрика Липперта
От: IT Россия linq2db.com
Дата: 10.11.08 05:32
Оценка:
Здравствуйте, Sinclair, Вы писали:

S>(Fabulous Adventures in Coding, http://blogs.msdn.com/ericlippert/archive/2008/11/07/the-future-of-c-part-five.aspx)


Ну так оно по-любому так или иначе к этому придёт.
Неясность изложения обычно происходит от путаницы в мыслях.
//rsdn.org/forum/images/bis.gif Если нам не помогут, то мы тоже никого не пощадим.
Re: Привет Владу от Эрика Липперта
От: VladD2 Российская Империя www.nemerle.org
Дата: 12.11.08 13:05
Оценка: 3 (1) +2
Здравствуйте, Sinclair, Вы писали:

S>

S>Enabling metaprogramming is another possible theme on our minds, thought it is not at all clear how that would happen. (Make C# its own metalanguage? Extend expression trees to statement trees, declaration trees, and so on? Open up the internals of the compiler and provide an object model that lets people generate programs directly? It is hard to say what direction is the right one to go in here.) Fortunately, people way smarter than I am are thinking about these things.

S>(Fabulous Adventures in Coding, http://blogs.msdn.com/ericlippert/archive/2008/11/07/the-future-of-c-part-five.aspx)

Ну, и от меня ему привет передавайте. За одно можете сказать, что для полноценной поддержки метапрограммирования в статически-типизированном языке нужно, чтобы он предоставлял все перечисленные возможности, т.е.: чтобы метапрограммы для языка писались на нем самом, чтобы было полное АСТ компилируемого выражения (то что он назвает "Extend expression trees to statement trees, declaration trees, and so on"), чтобы был из метапрограмм бы доступен API компилятора (причем не только предназначенный для работы с АСТ, но и движок типизации).
Кроме того надо подумать над средствами композиции и декомпозиции кода (чтобы писатель мета-программ мог легко найти или разобрать код имеющийся в проекте и на основе информации о нем собрать новый код).

Все это продумано и в большей части реализовано в Nemerle еще в 2005-ом году. Приятно, что люди зи MS к 2008-му году задумались о необходимости поддержки метапрограммирования в современном статически типизированном ЯП. Фигово, что они так до сих пор и не научились скачивать проекты с сайтов отличных от www.microsoft.com, компилировать их и разбираться в их сути. Глядишь многие вопрос были бы снятны... года эдак 3 назад.

Ну, хочется передать привет Хельсбергу который совсем недавно считал, что "макросы слишком большая пушка", Гейтсу который считал, что "640 килобайт хватит всем", и особо пламенный привет хочется передать всем тем, кто так рьяно отстаивали их заблуждения. Ведь товарищи Гейтс и Хейлсберг свое мнение (к их чести) изменили, а вот их группа поддержки так часто и громго повторяла эти заблуждения, что теперь окрыто признать, что они повторяли заблуждения уже будет не просто. Ну, и призываю признать свою не правоту, и способствовать тому, чтобы в C# 5+ метапрограммирование получилось бы полноценными и с человеческим лицом. А не как это всегда бывает у MS с первыми версиями (вспомним те же анонимные методы с ключевым словом "delegate" и их втору версию — лямбда-выражения).
http://nemerle.org/Banners/?g=dark
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.