Re[33]: Linq : неудачный маркетинг?
От: WolfHound  
Дата: 20.02.10 16:08
Оценка:
Здравствуйте, Cyberax, Вы писали:

C>Что будет Dictionary() в этом примере?

C>Потому пусть new лучше остаётся.
Ни разу подобных проблем небыло.
А даже если кто-то такой метод и заведет то стандартные методы разрешения подобных конфликтов никто не отменял... всегда можно обратиться по полному имени.
... << RSDN@Home 1.2.0 alpha 4 rev. 1305>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Re[13]: Linq : неудачный маркетинг?
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 20.02.10 16:56
Оценка:
Здравствуйте, igna, Вы писали:

AVK>>Толку обобщать тип для локальных переменных никакого, один вред.


I>Какой?


Отсутствие возможности воспользоваться максимально полным контрактом.

I>Зачем?


Это обеспечивает максимальную гибкость и надежность кода. Есть, ЕМНИП, довольно строгое доказательство сего на основе LSP.

А теперь встречный вопрос — а зачем обобщать тип локальной переменной?
... << RSDN@Home 1.2.0 alpha 4 rev. 1458 on Windows 7 6.1.7600.0>>
AVK Blog
Re[2]: Жуткий оффтопик
От: Кэр  
Дата: 20.02.10 17:39
Оценка:
Здравствуйте, IB, Вы писали:

Иван, а ты еще в Редмонде? Я буду во вторник-среду там (остальное время в Ванкувере). Можно пересечься, пообщаться В частности, мне интересно, что вам там Эрик Мейер рассказывал. Кто там еще из rsdn тусовки есть?

email: alex.klimov at hotmail.com
Re[30]: Linq : неудачный маркетинг?
От: Lloyd Россия  
Дата: 20.02.10 18:18
Оценка:
Здравствуйте, WolfHound, Вы писали:

L>>А что не так в его вопросе? У Нashtable-а и Dictionary — разное поведение при чтении несуществующего элемента.

WH>Вот именно это и нет так. Там было написано Dictionary, а не Нashtable.

Там было написано вообще keyValueMap, а какой там именно map — непонятно. И в зависимости от типа поведение у похожих методов будет разным.
Re[31]: Linq : неудачный маркетинг?
От: WolfHound  
Дата: 20.02.10 19:02
Оценка:
Здравствуйте, Lloyd, Вы писали:

WH>>Вот именно это и нет так. Там было написано Dictionary, а не Нashtable.

L>Там было написано вообще keyValueMap, а какой там именно map — непонятно. И в зависимости от типа поведение у похожих методов будет разным.
Там было написано:
def keyToValMap = Dictionary();

Конструктор явно задает тип.
... << RSDN@Home 1.2.0 alpha 4 rev. 1305>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Re[32]: Linq : неудачный маркетинг?
От: mrTwister Россия  
Дата: 20.02.10 19:15
Оценка:
Здравствуйте, WolfHound, Вы писали:

WH>Здравствуйте, Lloyd, Вы писали:


WH>>>Вот именно это и нет так. Там было написано Dictionary, а не Нashtable.

L>>Там было написано вообще keyValueMap, а какой там именно map — непонятно. И в зависимости от типа поведение у похожих методов будет разным.
WH>Там было написано:
WH>
WH>def keyToValMap = Dictionary();
WH>

WH>Конструктор явно задает тип.

Вообще-то там был загадочный Dectionary() и что это конструктор ниоткуда не следует. Можно, конечно, предположить, что это generic-класс "System.Collections.Generic.Dictionary<TKey,TValue>", но куда в этом случае подевались типы-аргументы?
лэт ми спик фром май харт
Re[32]: Linq : неудачный маркетинг?
От: mrTwister Россия  
Дата: 20.02.10 19:19
Оценка:
Здравствуйте, WolfHound, Вы писали:

WH>А теперь попробуй ответить чем вызов конструктора отличается от вызова метода?

WH>Меня кстати всегда интересовало нафига в C# ключевое слово new ибо оно нафиг не упало.

Тем, что при использовании виден класс, чей метод (конструктор) вызывается. В обсуждаемом варианте можно предположить, что это метод текущего класса (что я и сделал).
лэт ми спик фром май харт
Re[33]: Linq : неудачный маркетинг?
От: WolfHound  
Дата: 20.02.10 19:53
Оценка:
Здравствуйте, mrTwister, Вы писали:

T>Вообще-то там был загадочный Dectionary()

Докапывание до опечаток. Как мелко... что совсем сказать нечего?

T>и что это конструктор ниоткуда не следует. Можно, конечно, предположить, что это generic-класс "System.Collections.Generic.Dictionary<TKey,TValue>", но куда в этом случае подевались типы-аргументы?

Если знать что язык на котором написан этот код прекрасно выводит типы из использования то очевидно куда они делись.
... << RSDN@Home 1.2.0 alpha 4 rev. 1305>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Re[33]: Linq : неудачный маркетинг?
От: WolfHound  
Дата: 20.02.10 19:53
Оценка:
Здравствуйте, mrTwister, Вы писали:

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

Признайся хотя бы самому себе что ты это сделал не по тому что не понял что там создается словарь, а по тому что хочешь переспорить.

Как человек имеющий опыт разработки на немерле кода с весьма нетривиальной логикой (включая поиск и исправление ошибок в самом компиляторе) могу сказать что отсутствие new и вывод типов ни разу не создали проблем с пониманием того что происходит.
... << RSDN@Home 1.2.0 alpha 4 rev. 1305>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Re[33]: Linq : неудачный маркетинг?
От: Lloyd Россия  
Дата: 20.02.10 19:54
Оценка:
Здравствуйте, mrTwister, Вы писали:

WH>>Конструктор явно задает тип.


T>Вообще-то там был загадочный Dectionary() и что это конструктор ниоткуда не следует. Можно, конечно, предположить, что это generic-класс "System.Collections.Generic.Dictionary<TKey,TValue>", но куда в этом случае подевались типы-аргументы?


Подозреваю, система вывода типа Nemerle в состоянии вывести тип для этого случая.
Re[34]: Linq : неудачный маркетинг?
От: mrTwister Россия  
Дата: 20.02.10 20:06
Оценка: :)
Здравствуйте, WolfHound, Вы писали:

T>>Вообще-то там был загадочный Dectionary()

WH>Докапывание до опечаток. Как мелко... что совсем сказать нечего?

Это не докапывание до опечаток, поиск ошибок в коде в процессе проведения code-review (который мы сейчас и обсуждаем). Собственно для этого code review и проводят.

WH>Если знать что язык на котором написан этот код прекрасно выводит типы из использования то очевидно куда они делись.


А, ну тогда предлагаю еще поубирать в коде разный мусор и сделать код более совершенным:

def keyToValMap = Dectionary();
...
keyToValMap[Foo()] = Bar();


Теперь враг точно не пройдет!
лэт ми спик фром май харт
Re[34]: Linq : неудачный маркетинг?
От: mrTwister Россия  
Дата: 20.02.10 20:12
Оценка: +1
Здравствуйте, WolfHound, Вы писали:

WH>Как человек имеющий опыт разработки на немерле кода с весьма нетривиальной логикой (включая поиск и исправление ошибок в самом компиляторе) могу сказать что отсутствие new и вывод типов ни разу не создали проблем с пониманием того что происходит.


Это стандартный аргумент. Его регулярно произносят в холиварах любители линукса, виндовса, С++, скриптовых языков, языков со статической и динамической типизацией и прочее.
лэт ми спик фром май харт
Re[35]: Linq : неудачный маркетинг?
От: WolfHound  
Дата: 20.02.10 20:36
Оценка:
Здравствуйте, mrTwister, Вы писали:

T>Это не докапывание до опечаток, поиск ошибок в коде в процессе проведения code-review (который мы сейчас и обсуждаем). Собственно для этого code review и проводят.

Это именно докапывание до опечаток.
Ибо в реальной жизни такие "ошибки" ловит компилятор.

T>А, ну тогда предлагаю еще поубирать в коде разный мусор и сделать код более совершенным:

хъ
T>Теперь враг точно не пройдет!
А какие проблемы?
... << RSDN@Home 1.2.0 alpha 4 rev. 1305>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Re[35]: Linq : неудачный маркетинг?
От: WolfHound  
Дата: 20.02.10 20:36
Оценка:
Здравствуйте, mrTwister, Вы писали:

T>Это стандартный аргумент. Его регулярно произносят в холиварах любители линукса, виндовса, С++, скриптовых языков, языков со статической и динамической типизацией и прочее.

Нет.
В данном случае я прекрасно знаю и работал с обоими подходими. Как следствие могу сравнивать.
А ты как и те "любители" к которым ты опелируешь только один.
... << RSDN@Home 1.2.0 alpha 4 rev. 1305>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Re[3]: Жуткий оффтопик
От: IB Австрия http://rsdn.ru
Дата: 20.02.10 21:26
Оценка:
Здравствуйте, Кэр, Вы писали:

Кэр>Иван, а ты еще в Редмонде?

Уже нет, мы сейчас с AVK и Голлумом в джерси, в гостях у IT =)
Мы уже победили, просто это еще не так заметно...
Re[36]: Linq : неудачный маркетинг?
От: mrTwister Россия  
Дата: 20.02.10 21:26
Оценка:
Здравствуйте, WolfHound, Вы писали:

T>>Теперь враг точно не пройдет!

WH>А какие проблемы?

var size = keyToValMap["size"];
if(CheckSomething(size))
{
    size *= 2;
}
var buffer = new byte[size];
лэт ми спик фром май харт
Re[36]: Linq : неудачный маркетинг?
От: mrTwister Россия  
Дата: 20.02.10 21:27
Оценка:
Здравствуйте, WolfHound, Вы писали:

WH>В данном случае я прекрасно знаю и работал с обоими подходими.

Это ещё один стандартный аргумент в холиварах.
лэт ми спик фром май харт
Re[37]: Linq : неудачный маркетинг?
От: WolfHound  
Дата: 20.02.10 21:34
Оценка:
Здравствуйте, mrTwister, Вы писали:

T>>>Теперь враг точно не пройдет!

WH>>А какие проблемы?
T>
T>var size = keyToValMap["size"];
T>if(CheckSomething(size))
T>{
T>    size *= 2;
T>}
T>var buffer = new byte[size]; 
T>

А где проблемы то?
... << RSDN@Home 1.2.0 alpha 4 rev. 1305>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Re[37]: Linq : неудачный маркетинг?
От: WolfHound  
Дата: 20.02.10 21:34
Оценка:
Здравствуйте, mrTwister, Вы писали:

WH>>В данном случае я прекрасно знаю и работал с обоими подходими.

T>Это ещё один стандартный аргумент в холиварах.
Ты конечно можешь и дальше отвергать факты этой фразой но факты от этого не перестанут быть фактами ...
... << RSDN@Home 1.2.0 alpha 4 rev. 1305>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Re[38]: Linq : неудачный маркетинг?
От: mrTwister Россия  
Дата: 20.02.10 21:38
Оценка:
Здравствуйте, WolfHound, Вы писали:


T>>>>Теперь враг точно не пройдет!

WH>>>А какие проблемы?
T>>
T>>var size = keyToValMap["size"];
T>>if(CheckSomething(size))
T>>{
T>>    size *= 2;
T>>}
T>>var buffer = new byte[size]; 
T>>

WH>А где проблемы то?

Вот, ты проблем не видишь. А если мы запишем туже программу так, то увидишь?

byte size = keyToValMap["size"];
if(CheckSomething(size))
{
    size *= 2;
}
var buffer = new byte[size];
лэт ми спик фром май харт
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.