ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Суббота
27 апреля
561608 Топик полностью
Николай Коровин (23.11.2014 13:42, просмотров: 74) ответил Скрипач на А давай! 8)
Пост шестой из стапиццот. Зарежься бритвой Оккама. Гениальная пародия на древнюю китайскую энциклопедию, "Небесная империя благодетельных знаний", делит всех животных на следующие категории: а) принадлежащих Императору, б) набальзамированных, в) прирученных, г) молочных поросят, д) сирен, е) сказочных, ж) бродячих собак, з) включённых в эту классификацию, и) бегающих как сумасшедшие, к) бесчисленных, л) нарисованных тончайшей кистью из верблюжьей шерсти, м) прочих, н) разбивших цветочную вазу, о) похожих издали на мух. К сожалению, очень многие хорошие начинания сгубило именно то, что архитектура, с самого начала или по мере усугубления бардака, напоминает данную классификацию. В том же OpenGL, как правильно замечают в этом треде, и в упомянутом мной в совершенно другом разрезе Twain32, а в КОКОРЕШах так вообще в каждом первом -- классификация животных по Борхесу явно используется в качестве эталона для благоговения и подражания. Самый простой способ разделять животных на разбивших цветочную вазу и похожих издали на мух -- это вообще никому ничего не навязывать и не советовать. Сами разберутся. Бесконечно и произвольно расширяемая архитектура, ну не прелесть ли? Не прелесть. Думайте о том, что люди держат в головах. Ваша архитектура -- это центр Вселенной только для вас же, как капризный ребёнок, ковыряющий клумбу -- центр Вселенной только для его мамашки, но не для окружающих людей. Беда даже не в том, что разработчики какого-то маленького кусочка, пользующиеся частью вашей архитектуры, не считают всю архитектуру центром Вселенной. Беда в том, что они считают центром Вселенной свою разработку, которая суть одна клетка этого организма. Рак в данном случае даже не метафора, а вполне рабочая аналогия: когда одна клетка начинает считать себя самоцелью, а всё вокруг -- питательной средой... Думайте, как держать в узде тех, кто будет добавлять Optional Parts и Capability Strings. Думайте. Никакие "решения с рынка" тут не помогут, спасти может только собственная голова. Может, категоризировать глубины цветности не выбором из списка, а заданием разрядности каждого канала? Может, ввести сканерам готовое поле "время сканирования"? Или два, "максимальное" и "минимальное", если это, скажем, ручной сканер? Что вообще физически и логически может вмещать наша архитектура, что в ней принципиально может быть? И если вдруг появились дисплеи-тетрахроматы и мы добавляем новое опциональное поле, то не пора ли задуматься, а какие варианты цветов теперь возможны? Кто и как будет выбирать, какой именно цвет должен быть четвёртым? А что делать программам, которые специально обучены синтезировать максимально близкий спектр на любом дисплее, просто знай они спектры доступных компонентов? Не добавить ли нам капабилку "IsDisplayCalibrated", которая позволяет получить спектрограммы каналов, это ведь и обычным SIPS пригодится? А как задавать формат спектрограммы, жёстко или абы как? И если жёстко, то сколько надо бит на отсчёт и сколько отсчётов на диапазон, чтобы гарантированно перекрыть возможности человеческого зрения и больше не вспоминать о проблеме, не втыкаясь в "640 Кб хватит всем" по дохрениллионному уже разу? Проблема касается не только конкретизации решения "Mandatory-Optional" и Capabilities-прелюдий. Дьявол обожает крыться в деталях конкретной реализации абсолютно везде, умножая сущности и запутывая до невозможности всю логику поведения. Чисто для примера, в Небесной Империи Благодетельного Линукса все звуковые устройства делятся на: а) прирученных; б) мифических (MIDI, FM Synth) в) принадлежащих Ядру (PC Speaker). Нет, ну правда. Message Beep обрабатывается десятком взаимоисключающих и взаимно конфликтующих сущностей, каждую из которых каждый создал по своему уму и усмотрению, считая именно свою сущность верной. Они перехватывают его, они перенаправляют его в мини-плеер, воспроизводящий вместо "бипа" нормальный звук через звуковуху, они дают ему добраться до ядра, они не дают ему добраться до ядра, в ядре модуль спикера тоже можно выгрузить, чтобы его заткнуть... Единственная подсистема, которая не занимается звуком динамика -- это звуковая подсистема. Как, впрочем, она не занимается и MIDI, оставляя это на малораспространённые костыли. И там так не только спикер, там так ВСЁ.
image