Compiler As Service - зачем?
От: Tom Россия http://www.RSDN.ru
Дата: 31.10.10 22:23
Оценка:
Всем привет, раз уж все говорят про C#5 то видимо и спрашивать про него можно

Вопроса собственно 2.
1. Что значит Compiler As Service? Означает ли это что все елементы компилятора будет возможно реюзить. Скажем просто парсер C# можно ли будет использовать?
2. Собственно что это даёт и в чём отличие от текущего компилятора который можно и сейчас прекрастно вызвать и получить сборку, которую затем можно прекрасно загрузить и выполнить нужный метод из нужного класса. Та же XML серилизация генерит себе сборки на лету.

В общем в чём праздник то?
Народная мудрось
всем все никому ничего(с).
Re: Compiler As Service - зачем?
От: adontz Грузия http://adontz.wordpress.com/
Дата: 31.10.10 22:34
Оценка:
Здравствуйте, Tom, Вы писали:

Tom>1. Что значит Compiler As Service? Означает ли это что все елементы компилятора будет возможно реюзить. Скажем просто парсер C# можно ли будет использовать?


Я этого жду

Tom>2. Собственно что это даёт и в чём отличие от текущего компилятора который можно и сейчас прекрастно вызвать и получить сборку, которую затем можно прекрасно загрузить и выполнить нужный метод из нужного класса. Та же XML серилизация генерит себе сборки на лету.


Я так понимаю можно сделать основанный на парсере компилятора инструмент рефакторинга или подсветку синтаксиса или ещё что-нибудь эдакое.
A journey of a thousand miles must begin with a single step © Lau Tsu
Re: Compiler As Service - зачем?
От: _FRED_ Черногория
Дата: 31.10.10 22:45
Оценка: 8 (1)
Здравствуйте, 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.
Re: Compiler As Service - зачем?
От: Sinix  
Дата: 01.11.10 00:55
Оценка:
Здравствуйте, Tom, Вы писали:


Tom>В общем в чём праздник то?

Вот в этом

:
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 изкоробки. Вот щас напилят велосипедов...
Re: Compiler As Service - зачем?
От: dotneter  
Дата: 01.11.10 06:58
Оценка:
Здравствуйте, 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 компилятор?


вообще, все это маразм людей, утонувших в своем болоте — "программирование ради программирования"...
Re[2]: Compiler As Service - зачем?
От: Nikolay_P_I  
Дата: 01.11.10 10:57
Оценка: +2 -3 :))) :)
_FR>Задачи метапрограммирования и даже написания макросов на C# так же решаются уже много лет с помощью разнообразных рерайтеров Да только это всё костыли, не натурально.

А может — ну его нафиг ? Я напоминаю, что "80% всего — говно" и, как представитель этого не-5000$-в-месяц говна скажу откровенно — мне не нравится тенденция, когда можно будет начинать проводить конкурсы "по невнятному С#". Оно уже сейчас — открываешь .cs весь в var`ах и лямбдах в текстовом редакторе — и думаешь — "что хотел сказать автор?".
Re[3]: Compiler As Service - зачем?
От: adontz Грузия http://adontz.wordpress.com/
Дата: 01.11.10 10:59
Оценка: 16 (2) +1 :))
Здравствуйте, Nikolay_P_I, Вы писали:

N_P>А может — ну его нафиг ? Я напоминаю, что "80% всего — говно" и, как представитель этого не-5000$-в-месяц говна скажу откровенно — мне не нравится тенденция, когда можно будет начинать проводить конкурсы "по невнятному С#". Оно уже сейчас — открываешь .cs весь в var`ах и лямбдах в текстовом редакторе — и думаешь — "что хотел сказать автор?".


Программирование из ремесла опять превращается в искусство, правда абстрактное.
A journey of a thousand miles must begin with a single step © Lau Tsu
Re[3]: Compiler As Service - зачем?
От: Jack128  
Дата: 01.11.10 11:00
Оценка:
Здравствуйте, Nikolay_P_I, Вы писали:

_FR>>Задачи метапрограммирования и даже написания макросов на C# так же решаются уже много лет с помощью разнообразных рерайтеров Да только это всё костыли, не натурально.


N_P>А может — ну его нафиг ? Я напоминаю, что "80% всего — говно" и, как представитель этого не-5000$-в-месяц говна скажу откровенно — мне не нравится тенденция, когда можно будет начинать проводить конкурсы "по невнятному С#". Оно уже сейчас — открываешь .cs весь в var`ах и лямбдах в текстовом редакторе — и думаешь — "что хотел сказать автор?".


Дык административно запретите у ся лямбды/var'ы, если не умеете их готовить. Делов то.
Re: Compiler As Service - зачем?
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 01.11.10 22:35
Оценка:
Здравствуйте, 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>>
AVK Blog
Re[3]: Compiler As Service - зачем?
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 01.11.10 22:35
Оценка: :)
Здравствуйте, 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>>
AVK Blog
Re[2]: Compiler As Service - зачем?
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 01.11.10 22:35
Оценка:
Здравствуйте, 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>>
AVK Blog
Re[2]: Compiler As Service - зачем?
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 01.11.10 22:35
Оценка:
Здравствуйте, <Аноним>, Вы писали:

А>3. а зачем всем managed компилятор?


Код текущего компилятора ужасени крайне тяжело поддается модификации. Коме того, последние две версии основная задержка с выпуском релизов связана с поддержкой новых фич языка в языковых пакетах студии, которые тоже нифига не managed.
... << RSDN@Home 1.2.0 alpha 4 rev. 1476 on Windows 7 6.1.7600.0>>
AVK Blog
Re: Compiler As Service - зачем?
От: VladD2 Российская Империя www.nemerle.org
Дата: 02.11.10 01:10
Оценка: 18 (3)
Здравствуйте, Tom, Вы писали:

Tom>1. Что значит Compiler As Service?


Это очередной базворд для произнесения на презентациях.

Но под ним скрываются давно известные (некторые уже по 50 лет) технологии известные в узких кругах не мэйнстрима.

Сюда входят такие вещие как:
1. Метапрограммирование на базе транфсормации АСТ. Появилось в LISP где-то окола 45 лет назад. В шарпе этого пункта боятся. Плюс для его реализации работать надо много. Так что будет реализовано в очень ограниченной форме. Скорее всего в виде возможности во время компиляции получить код в виде чего-то вроде деревьев выражений и траформировать его с помощь паттерна Посетитель. В узких кругах не мэйнстрима такой подход принято назвать "закат солнца вручную". Расширения синтаксиса не придвитится, так что в лучшем случае фича должна позволить сделать нечто вроде макро-атрибутов Немерла.
2. REPL — выполнение кода из консоли с возможностью инкрементального добавления участков кода. Появилось в том же LISP примерно в то же время как и фича из п.
3. Возможность выполнить кусок кода переданный в виде строки. В не мэйнстрима известен как функция eval(). Появилась в LISP около 50 лет назад (когда ученики Маккарти написали интерпретатор Лиспа на Лиспе).

Короче, новые технологии — как у других но другие.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re: Compiler As Service - зачем?
От: VladD2 Российская Империя www.nemerle.org
Дата: 02.11.10 01:12
Оценка: 9 (2)
Здравствуйте, Tom, Вы писали:

Tom>Означает ли это что все елементы компилятора будет возможно реюзить. Скажем просто парсер C# можно ли будет использовать?


Если не в падлу использовать код не написанный в стенах МС, то тут лежит парсер 4.0. Лицензия MIT (т.е. даром). Можешь не ждать много лет, а использовать уже сейчас.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[2]: Compiler As Service - зачем?
От: VladD2 Российская Империя www.nemerle.org
Дата: 02.11.10 02:02
Оценка:
Здравствуйте, dotneter, Вы писали:

D>Раз Хейлсберг упоминал метапрограммирование, то я очень надеюсь что оно таки будет, например повесив атрибут

D>[Notify]
D>public int Value{get;set;}
D>Можно будет сгенерировать реализацию INotifyPropertyChanged.

Погоди! А что же будут говорить после этого все те кто с пеной у рта доказывал, что макросы — сакс, а рулят только T4 и какая-то матерь?
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[4]: Compiler As Service - зачем?
От: shakm Россия  
Дата: 02.11.10 05:30
Оценка: 3 (1) :)))
Здравствуйте, 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$ в месяц на пустом месте и заниматься искусством?
Re[4]: Compiler As Service - зачем?
От: Nikolay_P_I  
Дата: 02.11.10 06:22
Оценка: +1
Здравствуйте, AndrewVK, Вы писали:

N_P>>А может — ну его нафиг ? Я напоминаю, что "80% всего — говно" и, как представитель этого не-5000$-в-месяц говна скажу откровенно — мне не нравится тенденция, когда можно будет начинать проводить конкурсы "по невнятному С#". Оно уже сейчас — открываешь .cs весь в var`ах и лямбдах в текстовом редакторе — и думаешь — "что хотел сказать автор?".


AVK>Тем не менее сложность инструментов будет расти и дальше. Придется либо работать головой, либо искать сектор, где нужно много "индусов", либо менять профессию.


В исторической, так сказать, реальности мы имеем переход от С++ в пользу С#. При том, что С++ в плане "сложности инструментов" был далеко впереди. Ан нет — всякому метапрограммированию предпочли GC и строгую типизацию.
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.