Когда Джоэл Спольски и Джефф Этвуд начали разногласия в своем подкасте о том, должны ли программисты изучать C, независимо от их отрасли и платформы распространения, это вызвало довольно бурные дебаты в сообществе разработчиков, которые, вероятно, все еще бушуют сегодня среди определенных групп. Я читал несколько отрывков из ряда блоггеров-программистов с их мнением по этому вопросу. Аргументы с обеих сторон, безусловно, имеют вес, и то, что я не нашел, это точка зрения, которая уникально с точки зрения разработчиков, ориентированных только на .NET Framework . Практически все они комментировали общую точку зрения программиста.
Что я пытаюсь получить? Вспомните мнение Джеффа Этвуда о том, что большую часть времени разработчики на таком высоком уровне будут тратить на изучение бизнеса / домена , помимо всего, что необходимо для изучения технологий для достижения этих требований к домену. По моему опыту работы это очень точное описание трудовой жизни многих. Теперь предположим, что разработчики .NET могут потратить время на «внеклассное» обучение, должно ли быть C?
Для справки, я выучил С еще в школе, и я могу абсолютно понять и оценить, что обосновывают сторонники. Но когда я все обдумываю, я лично чувствую, что разработчики .NET не должны погружаться прямо в C. Потому что, я хотел бы, чтобы больше разработчиков заняло некоторое время, чтобы изучить их, - MSIL и CLR .
Может быть, я застрял с необычной группой коллег, я не знаю, но мне кажется, что многие люди не сохраняют осознанного понимания , что их код на C # или VB сначала компилируется в IL прежде чем JIT входит и делает его необработанным машинным кодом. Большинство из них не знают IL и не интересуются тем, как точно CLR обрабатывает код, который они пишут. Чтение CLR Джеффри Рихтера через C # было для меня шоком во многих областях; рад, что я прочитал это, несмотря на то, что коллеги отклонили это как "слишком низкий уровень". Я не эксперт по IL, но со знанием основ я обнаружил, что легче слежу за его текстом, так как уже был знаком со стековым поведением IL. Я обнаружил, что разбираю сборки, чтобы посмотреть, как получается IL, когда я пишу определенный код.
Я изучаю CLR и MSIL, потому что знаю, что это прямой слой ниже меня . Слой, который позволяет мне выполнять свой собственный слой работы. С, на самом деле еще ниже. Ближе к нашей «реальности» есть CLR и MSIL. Вот почему я бы порекомендовал другим попробовать их, потому что я не вижу достаточного количества людей, которые копаются в этом слое. Или ваша команда уже знакома с MSIL?