Всем привет, раз уж все говорят про C#5 то видимо и спрашивать про него можно
Вопроса собственно 2.
1. Что значит Compiler As Service? Означает ли это что все елементы компилятора будет возможно реюзить. Скажем просто парсер C# можно ли будет использовать?
2. Собственно что это даёт и в чём отличие от текущего компилятора который можно и сейчас прекрастно вызвать и получить сборку, которую затем можно прекрасно загрузить и выполнить нужный метод из нужного класса. Та же XML серилизация генерит себе сборки на лету.
Здравствуйте, Tom, Вы писали:
Tom>1. Что значит Compiler As Service? Означает ли это что все елементы компилятора будет возможно реюзить. Скажем просто парсер C# можно ли будет использовать?
Я этого жду
Tom>2. Собственно что это даёт и в чём отличие от текущего компилятора который можно и сейчас прекрастно вызвать и получить сборку, которую затем можно прекрасно загрузить и выполнить нужный метод из нужного класса. Та же XML серилизация генерит себе сборки на лету.
Я так понимаю можно сделать основанный на парсере компилятора инструмент рефакторинга или подсветку синтаксиса или ещё что-нибудь эдакое.
Здравствуйте, Tom, Вы писали:
Tom>Всем привет, раз уж все говорят про C#5 то видимо и спрашивать про него можно Tom>Вопроса собственно 2. Tom>1. Что значит Compiler As Service? Означает ли это что все елементы компилятора будет возможно реюзить. Скажем просто парсер C# можно ли будет использовать? Tom>2. Собственно что это даёт и в чём отличие от текущего компилятора который можно и сейчас прекрастно вызвать и получить сборку, которую затем можно прекрасно загрузить и выполнить нужный метод из нужного класса. …
Status of Compiler Services Project
Although no official announcements were made on this subject, Anders did show a demo that uses the current version of this project. In his demo he showed an extension to visual studio that uses the compiler services to copy code in C# to the clipboard and paste it as VB.NET code, the extension uses the compiler generated syntax tree for the code to do the conversion accurately.
Другой пример, с каким-то outlining regions для if statement не заработал.
Tom>…Та же XML серилизация генерит себе сборки на лету. Tom>В общем в чём праздник то?
Задачи метапрограммирования и даже написания макросов на C# так же решаются уже много лет с помощью разнообразных рерайтеров Да только это всё костыли, не натурально.
Help will always be given at Hogwarts to those who ask for it.
:
Finally Anders closed its talk on the Compiler As Service state. ... What Anders revealed yesterday is that a public fine-grained API will be made available to tweak the work of the compiler in any way you can think of.
Это он про 5й или про 6й шарп?
И да, никакого AOP изкоробки. Вот щас напилят велосипедов...
Здравствуйте, Tom, Вы писали:
Tom>Всем привет, раз уж все говорят про C#5 то видимо и спрашивать про него можно
Tom>Вопроса собственно 2. Tom>1. Что значит Compiler As Service? Означает ли это что все елементы компилятора будет возможно реюзить. Скажем просто парсер C# можно ли будет использовать?
Пример с C# -> VB вроде это и показал. Tom>2. Собственно что это даёт и в чём отличие от текущего компилятора который можно и сейчас прекрастно вызвать и получить сборку, которую затем можно прекрасно загрузить и выполнить нужный метод из нужного класса. Та же XML серилизация генерит себе сборки на лету.
А как с помощью текущего компилятора можно получить ast C#?
Tom>В общем в чём праздник то?
Раз Хейлсберг упоминал метапрограммирование, то я очень надеюсь что оно таки будет, например повесив атрибут
[Notify]
public int Value{get;set;}
Можно будет сгенерировать реализацию INotifyPropertyChanged.
... << RSDN@Home 1.2.0 alpha 4 rev. 1111>>
Talk is cheap. Show me the code.
Re: Compiler As Service - зачем?
От:
Аноним
Дата:
01.11.10 07:18
Оценка:
Здравствуйте, Tom, Вы писали:
...
3. а зачем всем managed компилятор?
Re[2]: Compiler As Service - зачем?
От:
Аноним
Дата:
01.11.10 07:57
Оценка:
Здравствуйте, Аноним, Вы писали:
А>Здравствуйте, Tom, Вы писали:
А>...
А>3. а зачем всем managed компилятор?
вообще, все это маразм людей, утонувших в своем болоте — "программирование ради программирования"...
_FR>Задачи метапрограммирования и даже написания макросов на C# так же решаются уже много лет с помощью разнообразных рерайтеров Да только это всё костыли, не натурально.
А может — ну его нафиг ? Я напоминаю, что "80% всего — говно" и, как представитель этого не-5000$-в-месяц говна скажу откровенно — мне не нравится тенденция, когда можно будет начинать проводить конкурсы "по невнятному С#". Оно уже сейчас — открываешь .cs весь в var`ах и лямбдах в текстовом редакторе — и думаешь — "что хотел сказать автор?".
Здравствуйте, Nikolay_P_I, Вы писали:
N_P>А может — ну его нафиг ? Я напоминаю, что "80% всего — говно" и, как представитель этого не-5000$-в-месяц говна скажу откровенно — мне не нравится тенденция, когда можно будет начинать проводить конкурсы "по невнятному С#". Оно уже сейчас — открываешь .cs весь в var`ах и лямбдах в текстовом редакторе — и думаешь — "что хотел сказать автор?".
Программирование из ремесла опять превращается в искусство, правда абстрактное.
Здравствуйте, Nikolay_P_I, Вы писали:
_FR>>Задачи метапрограммирования и даже написания макросов на C# так же решаются уже много лет с помощью разнообразных рерайтеров Да только это всё костыли, не натурально.
N_P>А может — ну его нафиг ? Я напоминаю, что "80% всего — говно" и, как представитель этого не-5000$-в-месяц говна скажу откровенно — мне не нравится тенденция, когда можно будет начинать проводить конкурсы "по невнятному С#". Оно уже сейчас — открываешь .cs весь в var`ах и лямбдах в текстовом редакторе — и думаешь — "что хотел сказать автор?".
Дык административно запретите у ся лямбды/var'ы, если не умеете их готовить. Делов то.
Здравствуйте, Tom, Вы писали:
Tom>1. Что значит Compiler As Service? Означает ли это что все елементы компилятора будет возможно реюзить.
Нет.
Tom> Скажем просто парсер C# можно ли будет использовать?
В какой то мере.
Tom>2. Собственно что это даёт
В основном возможность простого написания собственного не очень навороченного решарпера или сходного по потребным технологиям расширения студии.
Tom> и в чём отличие от текущего компилятора который можно и сейчас прекрастно вызвать и получить сборку, которую затем можно прекрасно загрузить и выполнить нужный метод из нужного класса.
В том, что можно получить AST, причем которое еще и модифицировать удастся.
Tom>В общем в чём праздник то?
Праздник в основном в managed языковых пакетах с богатыми и понятными внешними интерфейсами, что существенно упростит жизнь тем, кто разрабатывает поддержку собственных фреймворков и инструментов в рамкак студии.
... << RSDN@Home 1.2.0 alpha 4 rev. 1476 on Windows 7 6.1.7600.0>>
Здравствуйте, Nikolay_P_I, Вы писали:
N_P>А может — ну его нафиг ? Я напоминаю, что "80% всего — говно" и, как представитель этого не-5000$-в-месяц говна скажу откровенно — мне не нравится тенденция, когда можно будет начинать проводить конкурсы "по невнятному С#". Оно уже сейчас — открываешь .cs весь в var`ах и лямбдах в текстовом редакторе — и думаешь — "что хотел сказать автор?".
Тем не менее сложность инструментов будет расти и дальше. Придется либо работать головой, либо искать сектор, где нужно много "индусов", либо менять профессию.
... << RSDN@Home 1.2.0 alpha 4 rev. 1476 on Windows 7 6.1.7600.0>>
Здравствуйте, dotneter, Вы писали:
D>Раз Хейлсберг упоминал метапрограммирование, то я очень надеюсь что оно таки будет, например повесив атрибут D>[Notify] D>public int Value{get;set;} D>Можно будет сгенерировать реализацию INotifyPropertyChanged.
У Андерса довольно специфичное представление о МП, так что я бы не стал так далеко гадать на основании столь скудных данных.
... << RSDN@Home 1.2.0 alpha 4 rev. 1476 on Windows 7 6.1.7600.0>>
Здравствуйте, <Аноним>, Вы писали:
А>3. а зачем всем managed компилятор?
Код текущего компилятора ужасени крайне тяжело поддается модификации. Коме того, последние две версии основная задержка с выпуском релизов связана с поддержкой новых фич языка в языковых пакетах студии, которые тоже нифига не managed.
... << RSDN@Home 1.2.0 alpha 4 rev. 1476 on Windows 7 6.1.7600.0>>
Здравствуйте, Tom, Вы писали:
Tom>1. Что значит Compiler As Service?
Это очередной базворд для произнесения на презентациях.
Но под ним скрываются давно известные (некторые уже по 50 лет) технологии известные в узких кругах не мэйнстрима.
Сюда входят такие вещие как:
1. Метапрограммирование на базе транфсормации АСТ. Появилось в LISP где-то окола 45 лет назад. В шарпе этого пункта боятся. Плюс для его реализации работать надо много. Так что будет реализовано в очень ограниченной форме. Скорее всего в виде возможности во время компиляции получить код в виде чего-то вроде деревьев выражений и траформировать его с помощь паттерна Посетитель. В узких кругах не мэйнстрима такой подход принято назвать "закат солнца вручную". Расширения синтаксиса не придвитится, так что в лучшем случае фича должна позволить сделать нечто вроде макро-атрибутов Немерла.
2. REPL — выполнение кода из консоли с возможностью инкрементального добавления участков кода. Появилось в том же LISP примерно в то же время как и фича из п.
3. Возможность выполнить кусок кода переданный в виде строки. В не мэйнстрима известен как функция eval(). Появилась в LISP около 50 лет назад (когда ученики Маккарти написали интерпретатор Лиспа на Лиспе).
Здравствуйте, Tom, Вы писали:
Tom>Означает ли это что все елементы компилятора будет возможно реюзить. Скажем просто парсер C# можно ли будет использовать?
Если не в падлу использовать код не написанный в стенах МС, то тут лежит парсер 4.0. Лицензия MIT (т.е. даром). Можешь не ждать много лет, а использовать уже сейчас.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, dotneter, Вы писали:
D>Раз Хейлсберг упоминал метапрограммирование, то я очень надеюсь что оно таки будет, например повесив атрибут D>[Notify] D>public int Value{get;set;} D>Можно будет сгенерировать реализацию INotifyPropertyChanged.
Погоди! А что же будут говорить после этого все те кто с пеной у рта доказывал, что макросы — сакс, а рулят только T4 и какая-то матерь?
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, adontz, Вы писали:
A>Здравствуйте, Nikolay_P_I, Вы писали:
N_P>>А может — ну его нафиг ? Я напоминаю, что "80% всего — говно" и, как представитель этого не-5000$-в-месяц говна скажу откровенно — мне не нравится тенденция, когда можно будет начинать проводить конкурсы "по невнятному С#". Оно уже сейчас — открываешь .cs весь в var`ах и лямбдах в текстовом редакторе — и думаешь — "что хотел сказать автор?".
A>Программирование из ремесла опять превращается в искусство, правда абстрактное.
Вот видите, люди не работают, а занимаются искусством, а какие-то "лохи" это оплачивают.. а потом целая индустрия напрягается и блюет, пытаясь избавится от очередной опухоли. Только избавившись, рак начинает снова развиваться в другом месте... Похоже это не излечимо, тем более в России, пока у нас сырьевая экономика...
Плохо то, что мальчики студентики клюют на это наживку, а потом некого брать на работу, все только и занимаются искусством "красоты высказывания", а не стройностью и гибкостью смысла...
Re[3]: Compiler As Service - зачем?
От:
Аноним
Дата:
02.11.10 05:37
Оценка:
Здравствуйте, AndrewVK, Вы писали:
AVK>Здравствуйте, dotneter, Вы писали:
D>>Раз Хейлсберг упоминал метапрограммирование, то я очень надеюсь что оно таки будет, например повесив атрибут D>>[Notify] D>>public int Value{get;set;} D>>Можно будет сгенерировать реализацию INotifyPropertyChanged.
AVK>У Андерса довольно специфичное представление о МП, так что я бы не стал так далеко гадать на основании столь скудных данных.
Сложность??????????? Расти?????????????
Что может быть сложнее того, что было уже давно придумано в 80-е...? СССР-овские мамы с папами не рассказали потому, что не знали какие бывают системы? ...причем сетевые, распределенные и очень гибко настраиваемые, не требующие перекодирования на очень искуссных и красивых языках? Чего не было — интернета и вэба? Было )))) Только другой формат отображения... Отображение интернет магазина через браузер — лажа, по сравнению со всей инфраструктурой решения. А зачем придумывать сложности в трех березах? Чтобы получать 5000$ в месяц на пустом месте и заниматься искусством?
Здравствуйте, AndrewVK, Вы писали:
N_P>>А может — ну его нафиг ? Я напоминаю, что "80% всего — говно" и, как представитель этого не-5000$-в-месяц говна скажу откровенно — мне не нравится тенденция, когда можно будет начинать проводить конкурсы "по невнятному С#". Оно уже сейчас — открываешь .cs весь в var`ах и лямбдах в текстовом редакторе — и думаешь — "что хотел сказать автор?".
AVK>Тем не менее сложность инструментов будет расти и дальше. Придется либо работать головой, либо искать сектор, где нужно много "индусов", либо менять профессию.
В исторической, так сказать, реальности мы имеем переход от С++ в пользу С#. При том, что С++ в плане "сложности инструментов" был далеко впереди. Ан нет — всякому метапрограммированию предпочли GC и строгую типизацию.