Споры вокруг средневековой музыки внезапно перекинулись на классику программистской литературы: бывший топ-менеджер Сбербанка публично восхитился книгой Чарльза Петзольда «Код», выпущенной Microsoft еще в далеком 2000 году.
На этой неделе интернет-сообщество разделилось во мнениях о популяризаторах, которые ради увлекательной подачи искажают реальную картину. Один из таких спорных кейсов — книга «Код» (Code: The Hidden Language of Computer Hardware and Software), написанная Чарльзом Петзольдом. Этот труд Microsoft издает уже более двух десятилетий, и многие IT-специалисты выросли на нем. Однако возмущение вызвал не сам текст, а его использование в качестве учебного материала для новичков и детей.
Ситуация обострилась, когда бывший высокопоставленный сотрудник Сбербанка (имя не разглашается) с огромной аудиторией подписчиков рассказал о своем прозрении после прочтения «Кода». Он, вдохновившись, с помощью ИИ спроектировал собственный процессор на базе архитектуры 6502, используя симулированные транзисторы. На замечание о неточностях в книге Петзольда он ответил, что суть не в деталях, а в пробужденном интересе к теме — аргумент, который защитники спорной средневековой музыкантши используют дословно.
Главная претензия к «Коду» — методика изложения. Петзольд, прославившийся в конце 1980-х книгами по программированию для Windows, строит объяснение «естественно» для программиста, но не для инженера. Сначала он знакомит читателя с D-защелками (уровневыми защелками), комбинирует их с сумматорами, и лишь потом вводит D-триггеры. В реальной же индустрии 99% элементов состояния — это именно D-триггеры, а D-защелки используются точечно (например, в clock gaters для экономии энергии). Также в его схемах встречается ошибка с плавающим входом, когда разомкнутый переключатель не означает логический ноль — хотя на это можно возразить, что схема упрощена для наглядности.
Особую тревогу вызывает образовательная практика: однажды менеджерка образовательных программ крупной корпорации дала студенту задание реализовать процессор из Петзольда сначала в симуляции, а затем на FPGA. Результат был плачевным — код оказался несинтезируемым. Студенту пришлось отбрасывать все «петзольдовские» знания и начинать заново, например по учебнику Харрис & Харрис (хотя и там есть пробелы: арбитры и FIFO не разобраны). Менеджерка, кстати, еще и возмущалась, называя претензии бездушными и указывая на «человечность» D-защелок в книге.
Для взрослых, состоявшихся людей эта книга — отличный интеллектуальный досуг. Но как учебник для молодежи она опасна: разжевывание адресации [HL] в Intel 8080 в XXI веке — это путь в тупик. Вместо этого стоит рекомендовать изучение RISC-V — архитектуры, которая хорошо конвейеризуется, актуальна и служит идеальным учебным примером, в отличие от устаревших аккумуляторных 6502 и 8080.
