Re: Будущее C#, или почему C# ходит вокруг да около Nemerle
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 23.03.09 20:42
Оценка: 42 (4)
Здравствуйте, VladD2, Вы писали:

Disclaimer — все ниже сказанное является исключительно моими домыслами.

VD>Меня заинтересовала последняя часть видео (где-то 40-вая минута и далее) где они начали рассуждать о совсем дальнем будущем C# (о 5-ой версии).


Для Хейлсберга это не "совсем дальнее будущее", а то, чем он сейчас занимается.

VD>1. C# — это императивный язык.


Скорее ОО язык.

VD> Собственно означает ли это, что развитие C# в сторону ФП (функционального программирования) завершилось добавлением лямбд?


Судя по тому что я слышал — нет, не закончилось. Но превращения C# в совсем функциональный язык не будет. На то есть F#.

VD>2. МП (метапрограммирование) — это никак не слишком большая пушка, а очень хорошо и мы (т.е. они) будем это поддерживать. Вот, собственно, "компилятор как сервис".


Compiler as a service это немножко не то, это инструментальные средства, а не МП в стиле Nemerle.

VD>3. Макросы — это плохо так как нетипизированно и вообще текстово. Отсюда можно сделать вывод, что макросы ими понимаются не так как это понимается в Лиспе или Немерле, а как аналог препроцессора C. Не ясно почему их друг Дон (который Бокс) не убедил их в обратно.


Тут все очень просто — то что называется макросами в Немерле они макросами не называют.

VD>5. Компилятор как сервис — это по всей видимости не более чем возможность скомпилировать код из текстовой строчки в рантайме. Так что IT был прав.


И прав и не прав. CaaS конечно же не МП, но это не значит что МП не будет. Вот чего скорее всего не будет (по крайней мере по утверждению Мэдса), так это возможности изменять синтаксис.

VD>6. Отсюда о пользовательских EDSL (встроенных в универсальный язык языков предметной области) до 6-ой версии можно не говорить.


Да и нет. Т.е. в рамках компилятора C# точно да. А вот в рамках инструментальных средств, как раз таки, начинает играть рояль CaaS. Плюс, наверное, Oslo.

VD>7. Сопоставление с образцом (оно же ПМ — Паттерн-Матчинг) — это всего лишь другой взгляд на наследование и полиморфизм.


Да. Но это т.з. исключительно Хейлсберга. В 2 марта была интересная дисскуссия с C# team после того, как я про ПМ спросил. И это, судя по всему, как раз отголоски той дисскуссии.

VD>8. Вот мультиметоды (ММ) — это круть! Множественная диспечерезация (МД), т.е. по нескольким типам, а не по одному this, да еще с динамическим расширением это здорово... Это, кстати, сказал Меер, который судя по словам сказанным о нем в Википедии является серьезным функциональщиком и работал раньше над Хасклем. Может, что-то с Хасклем не так?


Ой, там столько вариаций на эту тему понапридумано уже. Собственно, Хейлсберг в той дисскуссии предложил в ответ парочку решений. Но это NDA

VD>9. Поддержка параллелизма очень нужно


Угу. Судя по всему, одна из killer features С# 5.

VD>. Но как ее реализовать мы (они) не знаем. Точно будет PLinq.


Точнее ParallelFX. И будет уже в 4.0. Прямо в mscorlib.

Блин, пусть меня расстреляют. Вобщем, http://channel9.msdn.com/posts/Charles/Jeffrey-Richter-and-his-AsyncEnumerator/
А Синклер, если захочет, расскажет забавную историю в тему.

VD> А, ведь это серьезное основание чтобы даже не пробовать. И то правда. Ведь все мощные расширения (дженерики, лямбды) были добавлены ребятами пришедшими из МС Ресерч. И видимо, раз уж ты попал в группу компиляторов МС, то исследованиями тебе заниматься не с руки. Надо ждать когда кто-то еще из МС Ресерч сделает что-то хорошее.


У тебя неверное представление о взаимодействии MSR и compiler team. MSR может работать не только по собственной инициативе, но и в рамках задач compiler team. Сейчас ряд таких исследований для C# 5 уже ведутся.

VD>Итого, у меня сложилось впечатление, что C# созрел и развивать его уже нет смысла (ну, если конечно не найдется орел из ресерча который сделает это сам). Так что в ближайших версиях мы вряд ли увидим, что-то радикально новое.


Кое что новое в 5 шарпе таки будет.

VD> Разве что мультиметоды


Очень вряд ли.

VD> или что-то их заменяющее вроде упрощения реализации паттерна Посетитель.


А вот это возможно.

VD>Я что-то не так понял, или все же прав был Черчилль говоривший: «Кто в молодости не был радикалом — у того нет сердца. Кто в зрелости не консерватор — у того нет головы». Или говоря другими словами — старость не радость .


Помимо Хейлсберга есть еще Мэдс и Эрик (который Липперт).
... << RSDN@Home 1.2.0 alpha 4 rev. 1138 on Windows Vista 6.1.7000.0>>
AVK Blog
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.