Re[2]: Будущее C#, или почему C# ходит вокруг да около Nemer
От: VladD2 Российская Империя www.nemerle.org
Дата: 23.03.09 21:21
Оценка: +1
Здравствуйте, AndrewVK, Вы писали:

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


F# не менее императивен нежели C#. Но он на 5 поддерживает и ФП. Не думаю, что язык станет хуже если он получит возможность кроме циклов и иф-ов писать и в функциональном стиле.

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


Не вижу как компилятор в виде объекта поможет в области встраивания ДСЛ-ей.

Что до Осло, то это внешние СДЛ-и. Плюс это оверкил, на мой взгляд. В общем, еще одна мервороженная технология судьба которой быть инструментом для тех кто делает разные визуальные навороты и генераторы.

И вообще, что за подход такой "в рамках инструментальных средств"? Внешние ДСЛ-и? Если, да то у них очень ограниченная область применения и очень высокая стоимость создания (даже с Ослами и прочими СаКлаудами).

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


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


Где была? С кем? Это доступно в сети или это какой-то офлайн-междусобойчик?

AVK>после того, как я про ПМ спросил. И это, судя по всему, как раз отголоски той дисскуссии.


Это сказал Меер. Какое, кстати, он имеет отношение к Хаскелю?
А вообще он слишком уж подъигрывает Хейльсбергу. Иногда возникает ощущение, что он стебается над его словами, но делает это тонко, чтобы не посвященные не понимали, что же происходит.

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


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


Все его решения лет так 20 назад придуманы (минимум), так что не думаю, что их озвучка может подпадать под NDA. Можешь высказать их как свои идеи.

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


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


Как бы он сам себя не убил. Реально поддержку нужно в CLR встраивать. По крайней мере поддержку акторов о которых говорил Хейльсберг точно нужно встраивать во фрэймворк, так как она сильно завязана на стоимость переключения контекста и на изоляцию виртуальных процессов.


AVK>Блин, пусть меня расстреляют. Вобщем, http://channel9.msdn.com/posts/Charles/Jeffrey-Richter-and-his-AsyncEnumerator/


Видимо — это один из страшных секретов .

AVK>А Синклер, если захочет, расскажет забавную историю в тему.


Синклер. Ау...

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


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


Возможно. Но слова "а ведь это может не удаться" меня позабавили до глубины души. Сделайте, попробуйте... Выкинете если что. Не те деньги. Тем более, что Эриксон со своим Эрлангом уже отлично доказал, что идея рабочая. А значит риск не велик.

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


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


Я говорю о впечатлениях. Уж больно много скепсиса в их речах.

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


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


Меер с таким удовольствием о них рассуждал (когда они хаили паттерн-матчинг), что показалось, что это чуть ли не замена всему на свете. Правда снова лыбился, так что не ясно не стеб ли это был.
Эта американская улыбка постоянно висящая на лице не дает понять когда люди стебаются, а когда серьезно говорят.

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


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


Вот это будет провал. Хотя поживем — увидим.

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


AVK>Помимо Хейлсберга есть еще Мэдс и Эрик (который Липперт).


Что-то Меер пел ему в унисон. Боюсь, что авторитет дядьки Хельберга задавит кого хочешь.

ЗЫ

Вообще, не ясно зачем такие вот "разговоры на людях". С оной стороны что-то там говорят расплывчатое, но с другой никакой конкретики. "Компилятор как сервис" — звучит красиво, а что за этим словами?

Рассуждения же порой просто граничат с ламом. Если бы не знал кто это такие подумал бы какие-то приколисты или люди далекие от темы.
AST-макросы им видите ли не ясно как отлаживать. А у Бокса спросить? 50 лет их в Лиспе отлаживали.
Паттер-матчинг другой взгляд на полиморфизм. Ну, другой, ну и что? Если он в некоторых задачах мощнее в сто раз, что тогда делать? Обосраться и умереть, но отстаивать позиции ООП? Не Хейльсберг ли придя в МС начал копать под этот самый ОО вводя события и делегаты в "чистую Яву"?
Что за нарушение инкапсуляции? Ну, сделайте хотя бы ПМ по публичному интерфейсу.

Потом поглядите на тот же экспрешон-три. Там ведь ОО попирают во все дыры. Посетитель их на половину на switch-е реализован. Так не лучше ли дать людям хороший синтаксис для задач анализа, а не отстаивать принципы ООП любой ценой?

Макросы им не нравятся. Синтаксис они меняют. Мало ли у кого что там меняет. Сделайте по первой хотя бы без изменения синтаксиса. Так чтобы было можно его в виде функции оформить и в виде атрибута. Но чтобы можно было во время компиляции код сгенерить вместо них. И чтобы можно было прочитать код переданный в виде параметров этих макросов или просто находящийся в некотором методе (классе и т.п.).
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.