Re[7]: [C#, Этюд] params vs. params
От: Mab Россия http://shade.msu.ru/~mab
Дата: 04.03.10 11:25
Оценка:
Здравствуйте, Димчанский, Вы писали:

Д>А где можно скачать самую распоследнюю версию стандарта?

Д>Пришла пора заменить занимательную физику Перельмана в туалете на стандарт C#.
Не скажу насчет последней, это nikov лучше знает. На сайте ECMA лежит какая-то ревизия.
Re[8]: [C#, Этюд] params vs. params
От: Димчанский Литва http://dimchansky.github.io/
Дата: 04.03.10 11:47
Оценка:
Здравствуйте, Mab, Вы писали:

Mab>Не скажу насчет последней, это nikov лучше знает. На сайте ECMA лежит какая-то ревизия.


Тут вроде вылезло несоответствие того, что на ECMA и того, что у nikov.
Будем ждать ответ nikov'а, где взять последнюю версию.
Re[7]: [C#, Этюд] params vs. params
От: nikov США http://www.linkedin.com/in/nikov
Дата: 04.03.10 11:49
Оценка: 12 (2)
Здравствуйте, Димчанский, Вы писали:

Д>А где можно скачать самую распоследнюю версию стандарта?

Д>Пришла пора заменить занимательную физику Перельмана в туалете на стандарт C#.

C# 3.0:
http://download.microsoft.com/download/3/8/8/388e7205-bc10-4226-b2a8-75351c669b09/csharp%20language%20specification.doc

C# 4.0 (черновик, написан в виде дополнения к спецификации C# 3.0, некоторые вещи будут существенно переписаны к релизу):
http://download.microsoft.com/download/7/E/6/7E6A548C-9C20-4C80-B3B8-860FAF20887A/CSharp%204.0%20Specification.doc
Re[2]: [C#, Этюд] params vs. params
От: Воронков Василий Россия  
Дата: 04.03.10 12:57
Оценка: +4
Здравствуйте, VladD2, Вы писали:

VD>Что, на мой взгляд, является оптимальным поведением.


Кстати, да. Мне вообще непонятно, зачем в шарпе компилировать такие вещи. Никакой практической пользы от этого нет. А самым ожидаемым поведением здесь была бы ошибка.
Re[3]: [C#, Этюд] params vs. params
От: VladD2 Российская Империя www.nemerle.org
Дата: 04.03.10 13:56
Оценка:
Здравствуйте, Воронков Василий, Вы писали:

ВВ>Кстати, да. Мне вообще непонятно, зачем в шарпе компилировать такие вещи. Никакой практической пользы от этого нет. А самым ожидаемым поведением здесь была бы ошибка.


Думаю, что это побочные эффекты от эвристик, которые создавались для определенных целей (обычно чтобы упростить вывод типов или ради удобства пользователей). Уверен, что никто кроме Никова даже не подумал о том, что могут быть такие побочные эффекты.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[4]: [C#, Этюд] params vs. params
От: Воронков Василий Россия  
Дата: 04.03.10 14:19
Оценка: +2
Здравствуйте, VladD2, Вы писали:

VD>Думаю, что это побочные эффекты от эвристик, которые создавались для определенных целей (обычно чтобы упростить вывод типов или ради удобства пользователей). Уверен, что никто кроме Никова даже не подумал о том, что могут быть такие побочные эффекты.


Это круто, если никто не подумал
Все же мне кажется, что никто им не мешал посмотреть, во что они превратили оверлоад и побольше ошибок генерировать при компиляции.
Мне в большей половине этих этюдов хочется увидеть ошибку, а не результат в стиле "никогда не догадаешься, какой метод вызовется". По-моему это не красит язык. А что будет еще через 10 лет?
Re[5]: [C#, Этюд] params vs. params
От: VladD2 Российская Империя www.nemerle.org
Дата: 04.03.10 16:37
Оценка:
Здравствуйте, Воронков Василий, Вы писали:

ВВ>Это круто, если никто не подумал

ВВ>Все же мне кажется, что никто им не мешал посмотреть, во что они превратили оверлоад и побольше ошибок генерировать при компиляции.

Они и Ников исходят из разных предпосылок.
Они делаю язык который будет удобен на практике. Ников же читает стандарт и думает о том, как создать такую ситуацию в при которой компилятор будет вести себя странно (с точки зрения пользователя).

Если посмотреть на данный пример, то легко заметить, что психически здоровый человек просто не создаст такую перегрузку в своих классах.

ВВ>Мне в большей половине этих этюдов хочется увидеть ошибку, а не результат в стиле "никогда не догадаешься, какой метод вызовется". По-моему это не красит язык. А что будет еще через 10 лет?


Мне тоже. И меня очень радует, что Nemerle в большинстве случаев ведет себя именно так как я ожидаю. На самом деле большая часть примеров высосана из пальца и не создает проблем на практике, или создает их крайне редко.

Другое дело в С++. Там эвристик куда меньше, а проблем куда больше. Вот это плохой дизайн. И дальше будет только хуже. А с шарпом все более менее нормально.

У шарпа другие проблемы. Например, его синтаксис слизан с С где основной идеологией является идеология — содержимое кода функций — это statment-ы. Шарп начал миграцию к функциональному программированию, но от порочной (в плане поддержки ФП) С-ишной идеологии он не избвился. В результате писать функциональный код на шарпе в не так удобно как на том же немерле.

Другая проблема — это откровенное старение и, как следствие, консерватизм его авторов. Например, они на отрез не хотят принимать идеи паттерн-матчинга или макросов (ака средств расширений языка).
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[6]: [C#, Этюд] params vs. params
От: Воронков Василий Россия  
Дата: 04.03.10 17:13
Оценка: +1
Здравствуйте, VladD2, Вы писали:

VD>Другое дело в С++. Там эвристик куда меньше, а проблем куда больше. Вот это плохой дизайн. И дальше будет только хуже. А с шарпом все более менее нормально.


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

VD>У шарпа другие проблемы. Например, его синтаксис слизан с С где основной идеологией является идеология — содержимое кода функций — это statment-ы.


Мне вообще нравился C# 1.0. Довольно чистый был язык. Убрать из него тех же делегатов — получается ООП в стиле С++ с более прямым дизайном. И я не вижу ничего плохого в том, что содержимое кода функций — это statement-ы. Для императивного подхода это нормально. А нынешняя мода на ФП, которому уж сто лет в обед... Ну так мода и есть мода, а людям работать надо.
Языки, где statement == expression, и любой "блок кода" возвращает значение есть. Когда нужно, можно писать на них. Мне вот базовая грамматика С не кажется устаревшей. Для ФП она неудобна, но для ФП есть ФЯ.
А то, о чем ты говоришь, еще старше С на самом-то деле.

VD>Шарп начал миграцию к функциональному программированию, но от порочной (в плане поддержки ФП) С-ишной идеологии он не избвился. В результате писать функциональный код на шарпе в не так удобно как на том же немерле.


Писать "в функциональном стиле" (что прежде всего и рекламируется, дело ведь все-таки не в том, напишешь ли ты "return" в конце метода или какой конкретно синтаксис у замыкания) вполне удобно.
А зачем писать функциональный код на шарпе я не понимаю

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


Мне кажется, проблема не в консерватизме авторов. 99% пользователей языка не нужно МП. Большая часть пользователей не использует и половины из его текущих фич. Все же это мейнстрим язык. И вводить при таком подходе МП действительно не кажется столь уж необходимым.
Re[7]: [C#, Этюд] params vs. params
От: VladD2 Российская Империя www.nemerle.org
Дата: 04.03.10 17:47
Оценка:
Здравствуйте, Воронков Василий, Вы писали:

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


Ну, а что тут поделать? Хейльсберг благополучно проспал последние 20 лет и заметил появление ФП только в 2005-ом, когда C# был концептуально закончен.

В общем-то Nemerle и есть эдакий C# полученный не эволюционным путем, а путем проектирования с четко ясными целями и задачами.

К сожалению, MS вряд ли вложит деньги в Nemerle, так как это будет равносильно отправки Шарпа (а следовательно и Хейльсберга на пенсию).

ВВ>Поэтому то, что будет лет через 10 мне не обязательно представляется таким уже радужным.


Ну, 10 лет с одной стороны срок большой, а сдругой не очень. Вон с С++ за последние 10 лен ровным счетом не произошло.

Лично я был бы рад, чтобы за следующие 10 лет основным языком мэйнстрима стал бы аналог Nemerle (или Scala).

В прочем, C# можно подтянуть до современного уровня. Код будет, конечно не очень красивым, но зато привычный синтаксис и достаточные возможности. В купе с отличным пиаром и кучей денег — это вполне проходной вариант.

ВВ>Мне вообще нравился C# 1.0. Довольно чистый был язык.


А мне не очень. Слишком он был ограниченным.

ВВ>Убрать из него тех же делегатов — получается ООП в стиле С++ с более прямым дизайном. И я не вижу ничего плохого в том, что содержимое кода функций — это statement-ы. Для императивного подхода это нормально.


Для императивного подхода достаточно C# 2.0. Ну, так он есть. Пользуйся им. Кто тебе не дает?

ВВ>А нынешняя мода на ФП, которому уж сто лет в обед... Ну так мода и есть мода, а людям работать надо.


Странный ты. Мода на ООП дала ООП и ты что-то не очень убиваешься от этого факта. Мода на ФП дала ФП, но тут ты что-то не доволен.

В конце концов есть C# 2 и даже 1, а то и просто С. Кто тебе мешает их использовать? Будешь пользоваться вечными ценностями и не гнаться за модой .

ВВ>Языки, где statement == expression, и любой "блок кода" возвращает значение есть. Когда нужно, можно писать на них. Мне вот базовая грамматика С не кажется устаревшей. Для ФП она неудобна, но для ФП есть ФЯ.


Ну, а мне не нужны ФЯ, ФП и даже ООП и ООЯ. Мне нужен удобный для работы инструмент. И в современном инструменте хочется видеть достижения современной науки которые способны упростить реализацию конечных программ.

VD>>Шарп начал миграцию к функциональному программированию, но от порочной (в плане поддержки ФП) С-ишной идеологии он не избвился. В результате писать функциональный код на шарпе в не так удобно как на том же немерле.


ВВ>Писать "в функциональном стиле" (что прежде всего и рекламируется, дело ведь все-таки не в том, напишешь ли ты "return" в конце метода или какой конкретно синтаксис у замыкания) вполне удобно.


Дело не только в том, но и в том тоже. Если есть возможность использовать ФП, но делать это не удобно или есть серьезные ограничения, то дела не выйдет.

ВВ>А зачем писать функциональный код на шарпе я не понимаю


Искренне тебя жаль, если это так. Я вот не понимаю зачем писать гору бессмысленного кода там где можно обойтись парой строк вполне понятного кода. Применение ФП периодически дает возможность существенно сократить и упростить код. Так почему бы этим не воспользоваться?

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


ВВ>Мне кажется, проблема не в консерватизме авторов. 99% пользователей языка не нужно МП.


Ну, да. Если за 99% держать быдлокодеров индусятников, то конечно. Но сдается мне, что кто-то сильно ошибается в цифрах. Их далеко не 99%. Процент людей с мозгами в среде программистов довольно велик. Возможно они не гении и даже не ученые, но и не тупые дебилы. Так что им нужен более мощный и более уодбный интсрумент.

Личном мне такой инструмент нужен. И я не вижу такого инструмента "из коробки" посему занимаюсь созданием такового самостоятельно.

Ну, а тем кто примыкает к этим "99%" желаю счастливого кодинга.

ВВ>Большая часть пользователей не использует и половины из его текущих фич. Все же это мейнстрим язык. И вводить при таком подходе МП действительно не кажется столь уж необходимым.


Да, да. Именно так и думают разные Хейльсберги. Но это их личные проблемы.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[2]: [C#, Этюд] params vs. params
От: Аноним  
Дата: 04.03.10 18:15
Оценка: +1
Здравствуйте, VladD2, Вы писали:

VD>Традиционная (в таких случая) реклама движка вывода типов Nemerle .


F#:

open System

type B<'A>() = 
    member this.Foo (?x : 'A[]) = Console.WriteLine(1)
    member this.Foo (?x : 'A[][]) = Console.WriteLine(2)

let b = new B<int>()
b.Foo()


A unique overload for method 'Foo' could not be determined based on type information prior to this program point. The available overloads are shown below (or in the Error List window). A type annotation may be needed.
Possible overload: 'member B.Foo : ?x:'A [] [] -> unit'.
Possible overload: 'member B.Foo : ?x:'A [] -> unit'.


— лаконичнее и короче

2All: Сорри оффтоп
Re[7]: [C#, Этюд] params vs. params
От: IB Австрия http://rsdn.ru
Дата: 04.03.10 18:59
Оценка: +1
Здравствуйте, Воронков Василий, Вы писали:

ВВ> На мой взгляд такие заявления равносильны тому, чтобы расписаться в том, что у языка никакой цельной концепции нет.

Лично мне не нужен язык с концепцией. Мне нужнен язык, чтобы решать прикладную задачу. И если задача такова, что часть вещей отлично ложится на ООП, а часть на функциональщину, то мне нужно, чтобы я мог сделать все это в одном языке.

ВВ>Мне вообще нравился C# 1.0. Довольно чистый был язык.

Только мало пригодный к серьезному практическому применению.
Жизнь такова, что реальный код пишут не на чистых языках, а на удобных.
... << RSDN@Home 1.2.0 alpha 4 rev. 1082>>
Мы уже победили, просто это еще не так заметно...
Re[8]: [C#, Этюд] params vs. params
От: Воронков Василий Россия  
Дата: 04.03.10 19:07
Оценка:
Здравствуйте, VladD2, Вы писали:

VD>Ну, 10 лет с одной стороны срок большой, а сдругой не очень. Вон с С++ за последние 10 лен ровным счетом не произошло.


С С++ ситуация другая. Все же его не МС изобрела. МС вот за это время успела придумать и задушить два диалекта С++.
А C# — детище МС. Ни с кем можно не считаться.

ВВ>>Мне вообще нравился C# 1.0. Довольно чистый был язык.

VD>А мне не очень. Слишком он был ограниченным.

Для высокоуровнего ООП кода вполне достаточный. Для остального есть другие языки.

ВВ>>Убрать из него тех же делегатов — получается ООП в стиле С++ с более прямым дизайном. И я не вижу ничего плохого в том, что содержимое кода функций — это statement-ы. Для императивного подхода это нормально.

VD>Для императивного подхода достаточно C# 2.0. Ну, так он есть. Пользуйся им. Кто тебе не дает?
ВВ>>А нынешняя мода на ФП, которому уж сто лет в обед... Ну так мода и есть мода, а людям работать надо.
VD>Странный ты. Мода на ООП дала ООП и ты что-то не очень убиваешься от этого факта. Мода на ФП дала ФП, но тут ты что-то не доволен.

Мода на ФП, которая "дала ФП", прошла 30 лет назад. Я вот в упор не понимаю, откуда эти убеждения в том, что ФП это типа супер-современная тенденция. Да, для некоторых задач ФП более удобно. Почему бы для таких задач не использовать специализированные языки?

ВВ>>Языки, где statement == expression, и любой "блок кода" возвращает значение есть. Когда нужно, можно писать на них. Мне вот базовая грамматика С не кажется устаревшей. Для ФП она неудобна, но для ФП есть ФЯ.

VD>Ну, а мне не нужны ФЯ, ФП и даже ООП и ООЯ. Мне нужен удобный для работы инструмент. И в современном инструменте хочется видеть достижения современной науки которые способны упростить реализацию конечных программ.

А почему "удобный для работы инструмент" == один-единственный язык-всемогутер? Казалось бы дотнет такая подходящая платформа для создания языков, столько языков было создано — но нет, обязательно нужен "всемогутер". А по мне так узко-специализированный язык всегда будет рулить в своей узкой нише — и кучи макросов не потребуется.

ВВ>>А зачем писать функциональный код на шарпе я не понимаю

VD>Искренне тебя жаль, если это так. Я вот не понимаю зачем писать гору бессмысленного кода там где можно обойтись парой строк вполне понятного кода. Применение ФП периодически дает возможность существенно сократить и упростить код. Так почему бы этим не воспользоваться?

А чего меня жалеть-то? Пожалей лучше тех, кто функциональный код на шарпе пишет. Я для этого уж лучше F# возьму — именно для того, чтобы "не писать гору бессмысленного кода там где можно обойтись парой строк вполне понятного кода".

ВВ>>Большая часть пользователей не использует и половины из его текущих фич. Все же это мейнстрим язык. И вводить при таком подходе МП действительно не кажется столь уж необходимым.

VD>Да, да. Именно так и думают разные Хейльсберги. Но это их личные проблемы.

Т.е. ты полагаешь, что ситуация в действительности кардинально иная, люди страдают от ограниченности шарпа, а "разные Хейльсберги" слепо это игнорируют?
МС вообще очень осторожная контора и всегда любила сначала гору статистики собрать, а потом уже принимать решения. Ты считаешь, что у тебя более верное представление о мейнстриме?

Если же ты хочешь, чтобы МС *формировала" мейнстрим, а не подстраивалась под него, то это, видимо, к совсем другой компании надо обращаться. МС так не делала никогда. И уже ИМХО не будет.
Re[8]: [C#, Этюд] params vs. params
От: Воронков Василий Россия  
Дата: 04.03.10 19:09
Оценка: :))
Здравствуйте, IB, Вы писали:

ВВ>> На мой взгляд такие заявления равносильны тому, чтобы расписаться в том, что у языка никакой цельной концепции нет.

IB>Лично мне не нужен язык с концепцией. Мне нужнен язык, чтобы решать прикладную задачу. И если задача такова, что часть вещей отлично ложится на ООП, а часть на функциональщину, то мне нужно, чтобы я мог сделать все это в одном языке.

Зачем все это делать в одном языке? Что это за цель такая?
Старые времена прошли, про КОМ можно забыть, какие проблемы использовать для решения твоей "прикладной задачи" несколько языков?
Re[8]: [C#, Этюд] params vs. params
От: dotneter  
Дата: 04.03.10 21:36
Оценка:
Здравствуйте, VladD2, Вы писали:

VD>К сожалению, MS вряд ли вложит деньги в Nemerle, так как это будет равносильно отправки Шарпа (а следовательно и Хейльсберга на пенсию).

F#, осталось в версии 3.0 добавить макросы и на NET платформу снизайдет счастье.
... << RSDN@Home 1.2.0 alpha 4 rev. 1111>>
Talk is cheap. Show me the code.
Re[9]: [C#, Этюд] params vs. params
От: VladD2 Российская Империя www.nemerle.org
Дата: 04.03.10 21:38
Оценка:
Здравствуйте, Воронков Василий, Вы писали:

ВВ>>>Мне вообще нравился C# 1.0. Довольно чистый был язык.

VD>>А мне не очень. Слишком он был ограниченным.

ВВ>Для высокоуровнего ООП кода вполне достаточный.


Без дженериков то?

ВВ>Для остального есть другие языки.


Для чего другого то? Ты язык используешь чтобы программы писать или для чего-то другого?

ВВ>Мода на ФП, которая "дала ФП", прошла 30 лет назад.


Слушай, я гляжу тебе просто поспорить охота. Зачем нести такую чушь?
Мне тяжело говорить вообще о моде на ФП, но если она и есть, то только в последние лет 5, когда ФП стали популяризировать как следует. Сам ФП существует уже 50 лет (т.е. почти столько же как и ИП), но серьезной его популяризации за первые 45 лет не было.

Лично я 15 назад даже не слышал про ФП. И это на фоне того, что ООП-мо мне всю плешь в те годы проели.

ВВ>Я вот в упор не понимаю, откуда эти убеждения в том, что ФП это типа супер-современная тенденция.


Раз не понимаешь, то не стоит это миф так усиленно навязывать окружающим.

ВВ> Да, для некоторых задач ФП более удобно. Почему бы для таких задач не использовать специализированные языки?


Да, потому что программу можно писать только на одном языке. Можно конечно писать отдельные модули на разных языках, но это не удобно и все равно приводит к тому, части программ хочется переписать с использованием другого яызыка, потому что выбранный не предоставляет фичи Х или в нем эта фича реализована неудобно.

ВВ>А почему "удобный для работы инструмент" == один-единственный язык-всемогутер?


Все по тому же. Мы не плотники чтобы использовать 22 инструмента.

ВВ>Казалось бы дотнет такая подходящая платформа для создания языков, столько языков было создано — но нет, обязательно нужен "всемогутер". А по мне так узко-специализированный язык всегда будет рулить в своей узкой нише — и кучи макросов не потребуется.


Не, ну ты такой осведомленный и продвинутый. Давай, продемонстрируй нам эти узко-специализированные языки. Я с удовольствием расширю свой кругозор.

ВВ>А чего меня жалеть-то? Пожалей лучше тех, кто функциональный код на шарпе пишет. Я для этого уж лучше F# возьму — именно для того, чтобы "не писать гору бессмысленного кода там где можно обойтись парой строк вполне понятного кода".


Это не F# ли является узкоспециализированным? Я тебя расстрою. Это мультипарадигмный язык отличающийся от C# только тем, что в нем хреновый ООП и плохая интеграция с дотнетом, но хороший ФП, в то время как у отличный ООП и интеграция с дотнетом, но хреновый ФП.

Так вот лично вместо двух хреновых в отдельных аспектах языков хочется использовать один язык которые достаточно хорош во всех аспектах. Вот Nemerle как раз и есть такой язык. Он так же хорош в ФП как F#, и так же хорошо в ООП и интеграции с дотнетом как C#. Плюс ко всему прочему он расширяемый, что означает, что я могу встроить в него те самые узко-специализированные языки которые так хороши при решении прикладных задач, по твоим словам же.

ВВ>Т.е. ты полагаешь, что ситуация в действительности кардинально иная, люди страдают от ограниченности шарпа, а "разные Хейльсберги" слепо это игнорируют?


У меня даже нет сомнения. Скажу больше. "разные Хейльсбери", пользуясь ресурсами своих компаний, удерживают людей в каменном веке (в некоторых аспектах). Но Хельсберг как раз плохой пример. А вот Сан действительно совсем застрял в каменном веке и держит там своих приверженцев.

ВВ>МС вообще очень осторожная контора и всегда любила сначала гору статистики собрать, а потом уже принимать решения. Ты считаешь, что у тебя более верное представление о мейнстриме?


Какая в задницу статистика? МС давно формирует рынок, а не подчиняется ему.

ВВ>Если же ты хочешь, чтобы МС *формировала" мейнстрим, а не подстраивалась под него, то это, видимо, к совсем другой компании надо обращаться. МС так не делала никогда. И уже ИМХО не будет.


Ладно. Мне тебя переубеждать просто в лом. Оставайся при своем мнении.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[9]: [C#, Этюд] params vs. params
От: VladD2 Российская Империя www.nemerle.org
Дата: 04.03.10 21:39
Оценка:
Здравствуйте, Воронков Василий, Вы писали:

ВВ>Зачем все это делать в одном языке? Что это за цель такая?

ВВ>Старые времена прошли, про КОМ можно забыть, какие проблемы использовать для решения твоей "прикладной задачи" несколько языков?

А как хорошо ты знаешь другие языки? И где ты применяешь их на практике?
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[10]: [C#, Этюд] params vs. params
От: nikov США http://www.linkedin.com/in/nikov
Дата: 04.03.10 21:50
Оценка:
Здравствуйте, VladD2, Вы писали:

VD>Это не F# ли является узкоспециализированным? Я тебя расстрою. Это мультипарадигмный язык отличающийся от C# только тем, что в нем хреновый ООП и плохая интеграция с дотнетом, но хороший ФП, в то время как у отличный ООП и интеграция с дотнетом, но хреновый ФП.


А расскажи-ка, в чём у F# хуже интеграция с дотнетом, чем у немерле?
Re[10]: [C#, Этюд] params vs. params
От: Воронков Василий Россия  
Дата: 04.03.10 21:54
Оценка:
Здравствуйте, VladD2, Вы писали:

ВВ>>Зачем все это делать в одном языке? Что это за цель такая?

ВВ>>Старые времена прошли, про КОМ можно забыть, какие проблемы использовать для решения твоей "прикладной задачи" несколько языков?
VD>А как хорошо ты знаешь другие языки? И где ты применяешь их на практике?

О, в больших количествах.

Трансформация данных — XSLT.
Описание данных — XSD
Описание грамматик — EBNF.
Операции с данными — SQL.
Обработка, скрипты — JScript, Python.
Собственные DSL-и
Re[11]: [C#, Этюд] params vs. params
От: VladD2 Российская Империя www.nemerle.org
Дата: 04.03.10 21:55
Оценка: +1
Здравствуйте, nikov, Вы писали:

N>А расскажи-ка, в чём у F# хуже интеграция с дотнетом, чем у немерле?


А расскажи мне как передать ординарную фукнцию F# в другую программу?
Как мне сделать частичное применение к функции доннета?
Как его использовать, скажем, в T4?
Где разнообразные дизайнеры, визарды?

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

ЗЫ

Ну, и это уже к основному смыслу сказанного не имеет особого отношения, так как главная идея в том, что F# такой же универсальный язык как и C#. Может даже чуть более универсальный.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[10]: [C#, Этюд] params vs. params
От: Воронков Василий Россия  
Дата: 04.03.10 21:58
Оценка:
Здравствуйте, VladD2, Вы писали:

ВВ>>Для высокоуровнего ООП кода вполне достаточный.

VD>Без дженериков то?

А какое отношение дженерики имеют к ООП?

ВВ>>Для остального есть другие языки.

VD>Для чего другого то? Ты язык используешь чтобы программы писать или для чего-то другого?

Я использую не языки, а платформу, для того, чтобы создавать продукты, за которые платят деньги. А ты?

ВВ>>Мода на ФП, которая "дала ФП", прошла 30 лет назад.

VD>Слушай, я гляжу тебе просто поспорить охота. Зачем нести такую чушь?

Чушь — это про то, что ФП есть нечто новое и модное. Оно такое же модное как комод моей бабушки.

ВВ>>Я вот в упор не понимаю, откуда эти убеждения в том, что ФП это типа супер-современная тенденция.

VD>Раз не понимаешь, то не стоит это миф так усиленно навязывать окружающим.

Какой еще миф?

ВВ>> Да, для некоторых задач ФП более удобно. Почему бы для таких задач не использовать специализированные языки?

VD>Да, потому что программу можно писать только на одном языке. Можно конечно писать отдельные модули на разных языках, но это не удобно и все равно приводит к тому, части программ хочется переписать с использованием другого яызыка, потому что выбранный не предоставляет фичи Х или в нем эта фича реализована неудобно.

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

ВВ>>А почему "удобный для работы инструмент" == один-единственный язык-всемогутер?

VD>Все по тому же. Мы не плотники чтобы использовать 22 инструмента.

Тем не менее количество инструментов, которые в действительности используются при создании современного ширпотреба, переваливает за два десятка.

ВВ>>Казалось бы дотнет такая подходящая платформа для создания языков, столько языков было создано — но нет, обязательно нужен "всемогутер". А по мне так узко-специализированный язык всегда будет рулить в своей узкой нише — и кучи макросов не потребуется.


VD>Не, ну ты такой осведомленный и продвинутый. Давай, продемонстрируй нам эти узко-специализированные языки. Я с удовольствием расширю свой кругозор.


ВВ>>А чего меня жалеть-то? Пожалей лучше тех, кто функциональный код на шарпе пишет. Я для этого уж лучше F# возьму — именно для того, чтобы "не писать гору бессмысленного кода там где можно обойтись парой строк вполне понятного кода".

VD>Это не F# ли является узкоспециализированным? Я тебя расстрою. Это мультипарадигмный язык отличающийся от C# только тем, что в нем хреновый ООП и плохая интеграция с дотнетом, но хороший ФП, в то время как у отличный ООП и интеграция с дотнетом, но хреновый ФП.

Ну вот, видишь, как все хорошо получается. C# + F# == отличный ООП и ФП. Так в чем же проблема? Зачем плакать и жрать кактус?

VD>У меня даже нет сомнения. Скажу больше. "разные Хейльсбери", пользуясь ресурсами своих компаний, удерживают людей в каменном веке (в некоторых аспектах). Но Хельсберг как раз плохой пример. А вот Сан действительно совсем застрял в каменном веке и держит там своих приверженцев.

ВВ>>МС вообще очень осторожная контора и всегда любила сначала гору статистики собрать, а потом уже принимать решения. Ты считаешь, что у тебя более верное представление о мейнстриме?
VD>Какая в задницу статистика? МС давно формирует рынок, а не подчиняется ему.

Назови пример новой технологии, которую изобрела МС. Все, что они делали, повторение чужих находок. Ожидать, что они ломанутся в массы с такой штукой как МП, пока кто-нибудь до них не наступит на все грабли ИМХО не стоит.
VD>Ладно. Мне тебя переубеждать просто в лом. Оставайся при своем мнении.
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.