Re[4]: [Этюд, C# 3.0] Unreachable code
От: nikov США http://www.linkedin.com/in/nikov
Дата: 19.06.08 08:29
Оценка: +1
Здравствуйте, Димчанский, Вы писали:

Д>Скоро C# превратится в C++... Все возвращается на круги своя.


Тем не менее код на C# остается пригодным для полноценных автоматических рефакторингов, и компилируется в сборки, поддающиеся верификации и интроспекции.
Re[5]: [Этюд, C# 3.0] Unreachable code
От: Димчанский Литва http://dimchansky.github.io/
Дата: 19.06.08 08:41
Оценка: +1
Здравствуйте, nikov, Вы писали:

N>Тем не менее код на C# остается пригодным для полноценных автоматических рефакторингов, и компилируется в сборки, поддающиеся верификации и интроспекции.


Да это понятно. Просто хотелось бы в языке видеть поменьше неоднозначно понимаемых конструкций. Что бы программирование на языке не превращалось в доскональное знание N десятков страниц стандарта, т.е. не попрограммировав месяц вернулся к языку и пишешь сразу, не вспоминая о десятке каких-то нюансов. Ну или по крайней мере, чтобы такие места обзывались какими-нибудь варнингами.
Re[6]: [Этюд, C# 3.0] Unreachable code
От: nikov США http://www.linkedin.com/in/nikov
Дата: 19.06.08 09:49
Оценка:
Здравствуйте, Pavel_Agurov, Вы писали:


P_A>А, если серьезно, то не хорошо это. В 2.0 такая шутка не прокатывает, а в 3 работает.

Дело в том, что в C# 3.0 появилось дополнительное правило про invocable члены.

P_A>Плохо даже не то что можно именно так, а что уходит строгость. Ну хоть warning можно было дать, что имена одинаковые? Мне кажется можно. Хочется мне именно так делать — ну выключу варнинг в этом месте. А то так скоро и к if (i=5) вернемся. Впрочем это так... мысли вслух. Сейчас мне докажут что так и нужно и было задумано

Мы вчера обсуждали этот код с Эриком Липпертом, и он решил, что это все-таки баг (и я с ним согласен). В случае, когда Foo() раскомментировано, должна возникать ошибка про конфликтующие интерпретации simple name Foo в одном блоке. Скорее всего, это будет исправлено только в следующей версии C#.
Re[6]: [Этюд, C# 3.0] Unreachable code
От: Lloyd Россия  
Дата: 19.06.08 17:17
Оценка: +2
Здравствуйте, Димчанский, Вы писали:

Д>Да это понятно. Просто хотелось бы в языке видеть поменьше неоднозначно понимаемых конструкций. Что бы программирование на языке не превращалось в доскональное знание N десятков страниц стандарта, т.е. не попрограммировав месяц вернулся к языку и пишешь сразу, не вспоминая о десятке каких-то нюансов. Ну или по крайней мере, чтобы такие места обзывались какими-нибудь варнингами.


Чтобы на эти нюансы наткнуться, имхо надо ценаправленно их искать.
... << RSDN@Home 1.2.0 alpha rev. 786>>
Re[5]: [Этюд, C# 3.0] Unreachable code
От: vdimas Россия  
Дата: 20.06.08 18:10
Оценка:
Здравствуйте, nikov, Вы писали:

N>А теперь попробуйте раскомментировать строку Foo().


Если всё до этого было более-менее терпимо и более-менее объяснимо, то этот случай просто шокирует. Еще пару выкрутасов подобного рода, и новый C# пойдёт в топку за ненадёжность компилятора.
Re[7]: [Этюд, C# 3.0] Unreachable code
От: vdimas Россия  
Дата: 20.06.08 18:12
Оценка:
Здравствуйте, Lloyd, Вы писали:

L>Здравствуйте, Димчанский, Вы писали:


Д>>Да это понятно. Просто хотелось бы в языке видеть поменьше неоднозначно понимаемых конструкций. Что бы программирование на языке не превращалось в доскональное знание N десятков страниц стандарта, т.е. не попрограммировав месяц вернулся к языку и пишешь сразу, не вспоминая о десятке каких-то нюансов. Ну или по крайней мере, чтобы такие места обзывались какими-нибудь варнингами.


L>Чтобы на эти нюансы наткнуться, имхо надо ценаправленно их искать.


На подобный ньюанс
Автор: nikov
Дата: 18.06.08
, к сожалению, наткнуться в реальной разработке можно на раз.
Re[6]: [Этюд, C# 3.0] Unreachable code
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 23.06.08 19:08
Оценка:
Здравствуйте, vdimas, Вы писали:

V>Если всё до этого было более-менее терпимо и более-менее объяснимо, то этот случай просто шокирует. Еще пару выкрутасов подобного рода, и новый C# пойдёт в топку за ненадёжность компилятора.


Не пойдет, пока такие выкрутасы будут только в специально придуманных примерах. Я с интересом читаю эти топики, но, следует признать, практической пользы от них ноль целых ноль десятых.
... <<RSDN@Home 1.2.0 alpha 4 rev. 1090 on Windows Vista 6.0.6001.65536>>
AVK Blog
Re: [Этюд, C# 3.0] Unreachable code
От: ilya_ny  
Дата: 24.06.08 03:36
Оценка:
Здравствуйте, nikov, Вы писали:

N>Ну и еще один этюд.

N>Приведите пример, как unreachable код может влиять на результат программы. Рефлексия не считается.
N>С кем обсуждали это в личной переписке — пожалуйста, не торопитесь писать ответ здесь.

это конечно интересно, но что по-мне, так это явно не хорошо.
это может говорить о какой-то концептуальной ощибки в дизайне языка
и уж точно это источник hard-to-catch ощибок.
Re[7]: [Этюд, C# 3.0] Unreachable code
От: migel  
Дата: 24.06.08 05:22
Оценка:
Здравствуйте, AndrewVK, Вы писали:

AVK>Не пойдет, пока такие выкрутасы будут только в специально придуманных примерах. Я с интересом читаю эти топики, но, следует признать, практической пользы от них ноль целых ноль десятых.

Ну да да — особенно с экстеншн методом — который ломает нафиг поведение отлаженного кода
... << RSDN@Home 1.2.0 alpha 4 rev. 1090>>
Re: [Этюд, C# 3.0] Unreachable code
От: Sinclair Россия https://github.com/evilguest/
Дата: 24.06.08 06:06
Оценка: +1 :))
Здравствуйте, nikov, Вы писали:
N>Ну и еще один этюд.
Оффтоп:
Некий малоизвестный камрад под ником Эрик Липперт прокомментировал твои отчеты о смелых экспериментах советских ученых в своем блоге:

Particular thanks to nikov for his many fascinating and detailed Connect reports.

Вот до чего доводит педантизм, помноженный на энтузиазм!
... << RSDN@Home 1.2.0 alpha rev. 677>>
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re[7]: [Этюд, C# 3.0] Unreachable code
От: vdimas Россия  
Дата: 24.06.08 08:28
Оценка:
Здравствуйте, AndrewVK, Вы писали:

V>>Если всё до этого было более-менее терпимо и более-менее объяснимо, то этот случай просто шокирует. Еще пару выкрутасов подобного рода, и новый C# пойдёт в топку за ненадёжность компилятора.


AVK>Не пойдет, пока такие выкрутасы будут только в специально придуманных примерах. Я с интересом читаю эти топики, но, следует признать, практической пользы от них ноль целых ноль десятых.


Упомянутый случай легко получить на практике, поэтому необходимо, как минимум, предупреждение от компиллятора.
... << RSDN@Home 1.2.0 alpha rev. 786>>
Re[8]: [Этюд, C# 3.0] Unreachable code
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 24.06.08 11:41
Оценка:
Здравствуйте, vdimas, Вы писали:

V>Упомянутый случай легко получить на практике


Посмотрим. Пока ничего подобного ни здесь не пробегало, ни в моей практике не было.
... <<RSDN@Home 1.2.0 alpha 4 rev. 1090 on Windows Vista 6.0.6001.65536>>
AVK Blog
Re[2]: [Этюд, C# 3.0] Unreachable code
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 24.06.08 11:41
Оценка: :))) :))) :)
Здравствуйте, Sinclair, Вы писали:

S>Вот до чего доводит педантизм, помноженный на энтузиазм!


Я тебе больше скажу — в C# compiler team есть такой термин — nikov bug.
... <<RSDN@Home 1.2.0 alpha 4 rev. 1090 on Windows Vista 6.0.6001.65536>>
AVK Blog
Re[3]: [Этюд, C# 3.0] Unreachable code
От: orangy Россия
Дата: 25.06.08 13:49
Оценка: :)
Здравствуйте, AndrewVK, Вы писали:

S>>Вот до чего доводит педантизм, помноженный на энтузиазм!

AVK>Я тебе больше скажу — в C# compiler team есть такой термин — nikov bug.
Мало того, такой термин есть и в ReSharper team, причём у нас он появился скорее всего раньше
... << RSDN@Home 1.2.0 alpha rev. 655>>
"Develop with pleasure!"
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.