
Неделя соцсетей прошла под спорами о популяризаторше средневековой музыки с помощью выдуманных баек о ней. Но надо сказать что популяризатор, который создает ошибочную картину мира у широких масс — это не такое редкое явление. Иногда в это оказываются вовлечены большие корпорации, например Микрософт. Я конечно же говорю про изданную Микрософтом книгу Чарльза Петзольда «Код».
Вы скажете «но это же старая книга, она был издана еще в 2000 году, зачем откапывать стюардессу». Я так сам думал, пока не увидел на этой же неделе пост бывшего топ‑менеджера Сбербанка с кучей последователей. Топ‑менеджер описывает внеземную радость, которую он испытал, когда понял из книги Петзольда как работает компьютер. Разумеется топ‑менеджер взял AI и не отходя от кассы спроектировал свой 6502 процессор из симулированных AI‑ем транзисторов. На мой коммент про Петзольда товарищ сказал что это неважно потому что Петзольд вызвал у него интерес к теме — точно как защитницы поп‑музыковедки.
В принципе, я не против такого рода интеллектуально‑стимулирующего досуга у взрослых состоявшихся людей — быть против в такой ситуации было бы маразмом. Я против использования такого рода материалов для обучения детей.
Это не абстрактная тревожность — я лично видел случай не так много лет назад, когда менеджерка образовательных программ крупной корпорации дала студенту задание реализовать процессор из Петзольда сначала в симуляции, а потом в FPGA. Мне потом пришлось ему объяснять что его код несинтезируем, и что ему нужно «undo» все «образование» по Петзольду и начать сначала, ну хоть по тому же Харрис & Харрис (хотя и к Харрисам у меня уже накопились претензии, например у них арбитры и FIFO не покрыты).
А менеджерка образовательных программ неназываемой крупной корпорации еще ругалась на меня, что я черствый чурбан и не понимаю, какой Петзолдьд хороший и как его D‑защелки человечнее чем мои D‑триггеры.
Короче вот мой коммент бывшему топ‑менеджеру Сбербанка:
Одна из фич книги Петзольда — он сначала вводит D‑защелки (level‑triggered D‑latch), комбинирует их с сумматорами и только потом вводит D‑триггер (D‑flip‑flop). Что «естественно» для программиста (Петзольд прославился в конце 1980-х как автор книги по программированию Windows), но не соотвествует реальному проектированию в современных электронных компаниях (99%+ элементов состояния — это D‑триггеры, а D‑защелки используются в основном для clock gaters (такая штука для экономии энергопотребления), очень редко для latch arrays и time borrowing (неактуально для новичков).
Какие у вашего процессора элементы состояния — D‑latch или D‑flip‑flop?
Также в картинках у Петзольда еще одна типичная программистская ошибка — плавающий вход (разомкнутый переключатель не означает 0 на входе), правда тут можно отбрыкаться «мы не хотели загромождать картинку».
Вообще книжка Петзольда это ОК для развлечения, но детей по ней учить нельзя — там много сусанинских уводов молодежи в болото. Например рассусоливать адресацию по [HL] в Intel 8080 в 21 веке — это диверсия. Молодежь нужно учить по RISC‑V — он и хорошо конвейеризуется (в том числе в качестве учебного примера) и привязан к актуальным технологиям, в отличие от аккумуляторного 6502 и от 8080.

