Здравствуйте, IT, Вы писали:
IT>Как ты сам понимаешь, между использованием API для компиляции кода в run-time и расширением компилятора для генерации кода в compile-time огромная разница.
Как ты сам понимаешь, между тем, что есть сейчас, и тем что будет в релизной Dev11 огромная разница.
IT> Пока, как видно из презентации, речь идёт исключительно о первом. К сожалению, для второго не достаточно переписать компилятор на C#. Но, надеюсь, мы доживём и до этого Они там сами говорят, что у них уже у самих слюнки текут, а если втянутся (а они втянутся), то есть надежда на то, что рано или поздно мы получим полноценное метапрограммирование в compile-time.
Только далеко не факт что в итоге у них получится Nemerle.
... << RSDN@Home 1.2.0 alpha 4 rev. 1127 on Windows Vista 6.0.6001.65536>>
Здравствуйте, IB, Вы писали:
IT>>То, что продемонстрировано должно было появится ещё в 2002-м году, если бы компилятор писался на самом себе и имел нормальную модульную архитектуру. IB>Ну вот они и переписывают компилятор на самом себе с модульной архитектурой. Как следствие, фича получается нахаляву.
Когда же будет следующий этап, когда они напишут микро-ядро, а все остальные фичи будут реализовывать поверх с помощью макросов? Вроде же говорили, мол есть спрос, многие заказчики требуют такие-то языковые фичи, но всем не угодишь... Дабы не превращать язык в помойку, логичнее было бы сделать язык с минимумом базовых вещей, а остальное по желанию пусть эти самые заказчики и делают сами.
Lisp is not dead. It’s just the URL that has changed: http://clojure.org
Здравствуйте, yumi, Вы писали:
Y>Когда же будет следующий этап, когда они напишут микро-ядро, а все остальные фичи будут реализовывать поверх с помощью макросов? Вроде же говорили, мол есть спрос, многие заказчики требуют такие-то языковые фичи, но всем не угодишь... Дабы не превращать язык в помойку, логичнее было бы сделать язык с минимумом базовых вещей, а остальное по желанию пусть эти самые заказчики и делают сами.
Меня щас справедливо запинают, но добавлять возможность произвольного расширения мейнстрим-языка... оверкилл получается
Если дело ограничится развитием идеи Code Contracts с генерацией кода по атрибутам — я только за.
Не лучше разнести — мейнстрим-язык пусть себе живёт, для ыкзотики — язык с макросами?
Здравствуйте, Sinix, Вы писали:
S>Меня щас справедливо запинают, но добавлять возможность произвольного расширения мейнстрим-языка... оверкилл получается
S>Если дело ограничится развитием идеи Code Contracts с генерацией кода по атрибутам — я только за.
Они даже на это не пойдут (скорее всего).
S>Не лучше разнести — мейнстрим-язык пусть себе живёт, для ыкзотики — язык с макросами?
Да, лучше. Дайте денег!
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, IT, Вы писали:
IT>Здравствуйте, Cyberax, Вы писали:
C>>А можно подробнее? У меня Silverlight (повбывав бы, нет чтоб обычный flash использовать ) на моём компьютере не работает
IT>Подробнее — eval из javascript. Но выглядит прикольненько.
Вообще-то АВК явно не про динамические фичи говорил, а про последние слайды презентации (не доступные в авишниках). Там говорится об объектной модели компилятора и о возможности вмешиваться в процесс компиляции.
В общем — это идеи давно опробированные в Яве и Boo. Ксати, в Boo от них отказались в пользу макросов (после того как поглядели на Немерле).
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, Andrei F., Вы писали:
AF>А у меня есть нехорошее предчувствие, что метапрограммирование будет только для динамики
В последних слайдах четко показано, что во время компиляции можно будет вмешаться и поиграться с объектным представлением кода (а-ка АСТ). Так что скорее всего ты не прав. Просто Хейльсберг конечно нагнал с дикамикой и мета-программированием по полной. Вот теперь все и шугаются.
AF>И еще всякие неприятные квирки у вариантности не радуют. Типа — List<string> может быть вариантным, а List<int> — нет; IEnumerable вариантный, а IList и ICollection — нет (кто мешал добавить IReadonlyList, чтобы обеспечить безопасность?); вообще непонятно, будет ли работать вариантность при наследовании. AF>В общем, впечатления двойственные. С одной стороны — суп получается вроде бы вкусный. С другой стороны — мухи там ну совершенно лишние.
Это беспочвенные страхи. В Немерле ко/контр-вариантность для интерфейсов существует уже два года и никаких проблем от этого нет. Что же касается IReadonlyList, то (хотя это к теме отношения не имеет) я считаю, что методы модифицирующие списки вообще лишние в интерфейсах. Но обратного пути уже нет.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, AndrewVK, Вы писали:
AVK>На 2007 год ресурсов на переписывание компилятора не было, в 2008 они появились. Кое какие результаты этой деятельности как раз и можно увидеть в презентации.
А можно как-то законтактировать с теми кто работает над менеджед-компилятором?
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, IB, Вы писали:
VD>>Согласен. Презентаха тупо обрезана на середине. IB>Там первые 10 минут, как видно из названия. Надо скачивать те файлы, ссылку на которые дал AVK, там полная.
Вань, ты меня не слышишь, что ли? Глючит их долбаная авторизация. Я даже зайти не могу. Дай прямую ссылуку или кинь в меня этим файлом, плиз.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, AndrewVK, Вы писали:
AVK>Здравствуйте, VladD2, Вы писали:
VD>>Так, что вопрос к тем кто присутствовал на докладе. Что говорилось о двух последених слайдах?
AVK>В конце была демка кусочков нового managed компилятора. Они не записаны? AVK>Скачал, поглядел — все на месте, видео заканчивается слайдом о розыгрыше призов.
Здравствуйте, AndrewVK, Вы писали:
IT>> Пока, как видно из презентации, речь идёт исключительно о первом. К сожалению, для второго не достаточно переписать компилятор на C#. Но, надеюсь, мы доживём и до этого Они там сами говорят, что у них уже у самих слюнки текут, а если втянутся (а они втянутся), то есть надежда на то, что рано или поздно мы получим полноценное метапрограммирование в compile-time.
AVK>Только далеко не факт что в итоге у них получится Nemerle.
Я даже скажу больше. Факт, что у них Nemerle не получится. Для этого язык изначально нужно было проектировать под мета-программирование и поддержку ФП.
Но по любому, будет лучше чем есть сейчас.
Вопрос только насколько это будет удобно. Если они не ввидут квази-цитирования (или чего-то его заменяющего), то говорить о серьезных макросах позволяющих анализировать и переписывать код не пийдется. Можно будет только анализировать дерево типов. Но и это конечно лучше чем ничего.
В общем, им сейчас просо обязательно нужно серьезно изучить опыт Немерле, чтобы не создавать граблей по которым они в дальнешем будут ходить (и что самое противное, по которым они будут водить остальных).
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, AndrewVK, Вы писали: AVK>Только далеко не факт что в итоге у них получится Nemerle.
Ничего. Managed C# + Reflector спасут джедаев от темных сил
... << RSDN@Home 1.2.0 alpha rev. 677>>
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Здравствуйте, Sinclair, Вы писали:
AVK>>Только далеко не факт что в итоге у них получится Nemerle. S>Ничего. Managed C# + Reflector спасут джедаев от темных сил
Можно пояснить, что имелось в виду?
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, VladD2, Вы писали: VD>Можно пояснить, что имелось в виду?
Поясняю: настояшего джедая отсутствие API для управления компилятором не смутит.
Декомпильнул — подправил — компильнул — и вперед, на танки
... << RSDN@Home 1.2.0 alpha rev. 677>>
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Здравствуйте, Sinclair, Вы писали:
S>Поясняю: настояшего джедая отсутствие API для управления компилятором не смутит. S>Декомпильнул — подправил — компильнул — и вперед, на танки
Понял. Ну, Релектором компилируемую версию не получить. Править задолбаешся. Проще тогда декомпильнуть в IL с помощью Ildasm-а, а Рефлектором уже выцеплять только значимые функции и их править.
Вот только это будут козьи потягушки, так как в мета-программировании главная проблема — это сложность написания мета-кода. Компилятор не только должен предоставлять возможность влезть в процесс компиляции, но и предоставить очень удобный АПИ для декомпозиции кода распарсенного из файлов и композиции нового.
Так что если в МС не озаботятся этими проблемами, то толку будет мало. Ты ведь и сейчас можешь создать фрэймворк на базе динамик-методов и прочих рефлекшон-эмитов, только что-то оных на 6 лет не нарисовалось.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, yumi, Вы писали:
Y>Когда же будет следующий этап, когда они напишут микро-ядро, а все остальные фичи будут реализовывать поверх с помощью макросов? Вроде же говорили, мол есть спрос, многие заказчики требуют такие-то языковые фичи, но всем не угодишь... Дабы не превращать язык в помойку, логичнее было бы сделать язык с минимумом базовых вещей, а остальное по желанию пусть эти самые заказчики и делают сами.
Тут есть проблема — пока компилятор черный ящик и никто снаружи его не использует — ты можешь корежить его как угодно и ничего тебе за это не будет. А как только ты выставляешь API наружу, то будь любезен его поддерживать, какое бы кривое оно изначально не получилось.
Здравствуйте, AndrewVK, Вы писали:
VD>>А можно как-то законтактировать с теми кто работает над менеджед-компилятором?
AVK>Наверное можно, но я сам не знаю кто этим занят. Ты у nikov спроси, он должен быть в курсе.
Доклад читал парень из группы ВБ. У меня его контакты вроде бы где-то были. Попробую написать.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.