Если вы, вдруг не знали, то помимо всякой ерунды, публикуемой на
своем блоге, я еще и занимаюсь переводом блога Эрика Липперта (Eric Lippert)
Fabulous Adventures in Coding на русский язык. В русскоязычном варианте этот блог носит название
Невероятные приключения в коде.
Занимаюсь я этим делом вот уже
полтора года и не разу не пожалел потраченного времени. Я надеюсь, что чтение статей Эрика на русском языке доставляет хоть малую толику того удовольствия, которое я получаю при переводе!
Но сегодня я не об этом. Точнее не совсем об этом. Мы начали публиковать переводы, датированные апрелем 2009-го года, но, как это ни удивительно, до этого Эрик писал не менее часто и не менее интересно. Посему я предлагаю вернуться к его старым хитам и восстановить, так сказать, справедливость и перевести на русский язык и их.
Я сделал небольшой список того, что я думаю перевести, но, вполне возможно, что я что-то упустил (а я точно что-то упустил), поэтому я всецело открыт для предложений (*). Итак, вот сам список:
The Stack Is An Implementation Detail, Part One (2009-04-27)
The Stack Is An Implementation Detail, Part Two (2009-04-05)
Пара весьма интересных и популярных статей, в которых рассматривается разница между значимыми и ссылочными типами с точки зрения расположениях их экземпляров в памяти. Эта тема рассматривается, наверное, в сотне различных статей, да и сам Эрик пишет об этом весьма часто. Тем не менее, это одна из лучших заметок в этой теме.
Events and Races (2009-04-29)
Одним из классических вопросов правильного “зажигания” событий является вопрос многопоточности. В этой заметке речь идет именно об этом.
Representation and Identity (2009-03-19)
Отличная заметка о том, почему при распаковке упакованного байта в int мы получаем исключение InvalidCastException.
Locks and exceptions do not mix (2009-03-06)
В статье рассматриваются изменения, внесенные в реализацию метода Monitor.Enter в .Net 4.0 для предотвращения возможных deadlock-ов, которые были вполне возможны в более ранних версиях .Net Framework.
References are not addresses (2009-02-17)
Рассматривается разница между ссылками и указателями в языке C#, ну и, как говорит название, Эрик показывает, почему ссылки некорректно рассматривать, как адрес в памяти.
Why no var on fields? (2009-01-26)
И правда, почему? На часть этих вопросов я уже ответил совсем недавно в своей заметке, ну а все сложности реализации компилятора лучше почитать у Эрика
Vexing exceptions (2008-09-10)
Очень полезная статья, в которой рассматриваются три «семантических» типа исключений. Все это помогает устаканить в голове некоторые вопросы обработки исключений и таки понять, как их обрабатывать.
High maintenance (2008-09-08)
Отличное ревью всего лишь одной функции, в 6-ти строках которой показаны 5 разных code smells. Много интересных мыслей, начиная от контракта функции заканчивая проблемами предварительного обобщения (premature generialization).
Reading Code Over the Telephone (2008-05-16)
Не rocket science, но, тем не менее, очень полезно знать, как читаются различные лямбда-выражение.
Subtleties of C# IL codegen (2007-08-17)
Интересная заметка, в которой показывается почему, например, lock(expression) statement не является потокобезопасными в случае возникновения асинхронных исключений, а также рассмотрена разница между инструкциями call и callvirt.
Еще раз напомню, что это не полный список, а лишь то, что было у меня в закладках, так что никакой претензии на полноту. А посему, жду ваших преложений!
----------------
(*) Я надеюсь на разумную аргументацию предложений. Мы просто не в состоянии перевести и опубликовать все старые посты, да и необходимости в этом, откровенно говоря, нет. Поэтому, если вы предлагаете к переводу некоторую статью, то разумно как минимум привести краткое содержание (парой предложений), ну и если возможно, то рассказать, чем же она такая выдающаяся.
Не надо вообще ничего переводить, особенно, хорошие вещи.
Перевод всегда воспринимается как-то не так, как-то по-турецки и поперек мозга встает. Даже мои статьи когда-то переводили на русский, при этом терялся весь задуманный настрой полностью.
Пусть люди читают оригинал. Перевод, это какой-то прошлый век.
Здравствуйте, DorfDepp, Вы писали:
DD>Не надо вообще ничего переводить, особенно, хорошие вещи.
DD>Перевод всегда воспринимается как-то не так, как-то по-турецки и поперек мозга встает. Даже мои статьи когда-то переводили на русский, при этом терялся весь задуманный настрой полностью.
DD>Пусть люди читают оригинал. Перевод, это какой-то прошлый век.
Я немало читал книг с таким русским переводом, от которого просто брасало в дрожь. Характерные и особенно клинические случаи я описывал
здесьАвтор: SergeyT.
Дата: 17.07.08
и
здесьАвтор: SergeyT.
Дата: 27.08.08
. Но это не значит, что переводить не нужно. Это лишь значит, что не нужно переводить
плохо. Насколько плох или хорош мой перевод, я не знаю, судить не мне, а тем 745 постоянным читателям русскоязычного блога Эрика.
Абсолютное большинство даже профессиональных разработчиков воспринимает информацию на своем родном языке в несколько раз быстрее, чем на английском (и даже когда речь заходит о техническом английском). Так что лично я, если есть
качественный русскоязычный вариант, то я предпочту именно его, ибо это сэкономит мне время. При этом, ессно, каждый волен поступать именно так, как ему угодно и я не считаю свое мнение единственно верным, оно лишь подходит для меня сегодня.
Я ведь никому не запрещаю читать оригинал и после публицации постов Эрика на русском, его оригинальные посты остаются точно также доступными в интернетах
Я лишь за свободу выбора
Кроме того, речь же не о том, переводить или не переводить. Этот вопрос, в общем-то, закрыт. Речь о том, чтобы найти старые хиты. А тут все мы (любители почитать хоть на русском, хоть на английском языках) в выигрышном положении: чем больше старых хитов мы сейчас найдем, тем лучше, а каждый лично сможет уже потом выбрать, на каком языке ему их читать.