dccharacter писал(а):Но все это имеет определенный порог, дальше которого генерализировать не имеет смысле. Дальше начинаются приложения, и у всех они разные. Понимаешь, можно фильм заархивировать в один байт. И даже в один бит. Знаешь в чем подвох?
Не совсем корректная аналогия. А про фильм в одном байте вообще неинтересно. Архивирование по определению происходит бах потери качества. Сжатие с потерями -- да. И Jpeg тому пример. Ещё можно уменьшать картинку до размера пиксель на пиксель, но здесь всё не о том.
Речь здесь идёт. повторюсь, не об архивации, а о расслоении. Конечно до абсурда можно довести любую мысль и идею. И абсурд начинается, когда мы создаём новый абстрактный уровень чисто формально. И он нам не упрощает жизнь, а только усложняет. И тут уже всё зависит от качества абстракции и её имплементации.
Для твоей задачи с катушкой совершенно не стоит городить какой-то универсальную мотатель. Ради нескольких трансформаторов не требуется городить чего-то абстрактного, потому что пара строчек и так решает всё проблему. Надо уметь остановиться. Но, согласись, задача твоя проста. Если речь бы шла о более сложной задаче, то пришлось бы и уровней абстракции делать больше.
Например мы делаем унивеерсальный токарный станок. Тут тебе и куча режимов вращения и согоасование этих режимов с перемещением резца. А ещё станок можно приспособить катушки мотать (резец направляет, а вал крутит). Вот тут мы и переходим на новый уровень абстракции. Вводим понятие режима, вводим события отконцевиков, вводим понятие программы, если речь о ЧПУ.
Как-то в древней прачечной я встерчал стиральную машину, которая по перфокарте могла отрабатывать режимы стирки белья, подачу воды, порошка и т.д. Сама логика машины была на каких-то транзисторах, и аппаратно был реализован интерпретатор программ на перфокартах. А на первокартах понятные каждой домохозяйке дрки в нужных столбцах. Весь прикол в том, что на транзисторах домохозяйки не смогли бы перепаять логику работы машины, а вот дырки пробить дыроколом в нужных местах распечатанной таблицы мога каждая тётя Глаша. Вот это реальный и утрированный п ример использования интерпретаторов и расслоения задачи на уровни. Строго говоря на перфокартах можно было заставить отмечать не только понятные домохозяйкам процессы, но и низкоуровневые, до которых им дела нет.
Давай обсудим конкретный пример. Робот-пылесос. Как ты думаешь, тот уровень абстракции, что я предложил в том большом примере, облегчит написание кода для пылесоса? Снизит порог вхождения в программирование оного? Если это нафиг не надо и наш пылесос проприетарен, то можно найти человека, который накодит качественно и на Си. Может быть даже ему это не составит особого труда, атк как есть опыт и умение так организовать работчее пространство в коде и контроллере, что всё будет прозрачно, понятно и пригодно к отладке. Но к содалению мало таких специалистов.
Добавлено спустя 6 минут 40 секунд:Чорт. Многабуквав.
Основная идея в том, что степень генерализации и полезность её в итоге зависят от профессионализма програмиста. Хорошие мощные идеи тоже надо уметь использовать, а неумеючи можно любым, даже самым дорогим и интеллектуальным инструментом можно навредить.