Почему все классы в C# наследуются от класса Object,
если ещё до нашей эры Аристотель выделил философские категории:
— being
— movement
— matter
— space
— time
— quality
— quantity
— form
— content
трактат в котором рассматриваются наиболее общие имена обозначающие вещи
С материей, пространством и временем у современных физиков проблемы, может быть они всё переделают,
но почему остальные-то категории не лежат в корне иерархии классов?
Почему, например, не слово "Понятие" ? Или не "мыслеформа" ? Там, в философии ещё много других слов есть, например "Вещь", "Предмет".
Заодно предлагаю уволить всех философов МЭИ. Они выпустили "философский словарь инженера", в котором есть понятие "классификация", но нет "категоризации".
Здравствуйте, Эйнсток Файр, Вы писали:
R3>> Вначале было слово. И это слово "object". ЭФ>Почему, например, не слово "Понятие" ? Или не "мыслеформа" ? Там, в философии ещё много других слов есть, например "Вещь", "Предмет".
Оно имеет много имён, но означает одно.
Например, в OWL:
встроенный наиболее специфичный класс по имени Nothing (Ничто), который не имеет никаких представителей и является подклассом всех OWL классов.
Здравствуйте, Эйнсток Файр, Вы писали:
ЭФ>Философию для этого придумали, чтобы провести различия между понятиями (и таким образом терминологию согласовать).
Бессмысленная философия идёт в null.
R3>>
R3>>встроенный наиболее специфичный класс по имени Nothing (Ничто), который не имеет никаких представителей и является подклассом всех OWL классов.
ЭФ>null и в C# есть, и чо? Это другое?
встроенный самый общий класс по имени Thing (Вещь), который является классом всех индивидов и суперкласс для всех OWL классов
ЭФ>> Философию для этого придумали, чтобы провести различия между понятиями (и таким образом терминологию согласовать). R3> Бессмысленная философия идёт в null.
Википедия не знает, что такое "категоризация" (перенаправляет на страницу "классификация").
типизирование = приписывание типа куску памяти (точнее было бы "создание класса под схему данных", но так не бывает)
инстанциирование = выделение куска памяти для объекта указанного типа
обобщение = создание базового класса или интерфейса
наследование = порождение более специализированного типа-наследника класса или реализация интерфейса
Можно ли сказать, что типизирование/инстанциирование — это от классификации, а обобщение/наследование это от категоризации?
Или можно сказать, что "категория" это интерфейс (нельзя инстанциировать), а "класс" это рецепт (можно воплотить в жизнь)?
Здравствуйте, Эйнсток Файр, Вы писали:
ЭФ>Почему все классы в C# наследуются от класса Object,
Все очень просто — разработчики C# вдохновлялись не Аристотилем, а разработанным ранее языком Java. Который, по мнению разработчиков C#, имел "фатальный недостаток". Аналогично были "придуман" не только название супертипа Object, но и название его методов:
Здравствуйте, Эйнсток Файр, Вы писали:
ЭФ>С материей, пространством и временем у современных физиков проблемы, может быть они всё переделают, ЭФ>но почему остальные-то категории не лежат в корне иерархии классов?
Потому, что аллокатору памяти все равно, под кусок какой философской категории он память выделяет.
Когда я изучал философию, то мне пришла в голову схожая мысль.
Погуглив я понял, что идея не нова и есть много обсуждений и статей на эту тему.
Вот первая статья в гугле: https://dl.acm.org/doi/pdf/10.1145/331795.331862
ЭФ>
трактат в котором рассматриваются наиболее общие имена обозначающие вещи
Аристотелевские категории таки уже устарели и интересны лишь с точки зрения генезиса философии.
Кант и Гегель значительно переработали первоначальную идею. Сейчас мы пересматриваем это еще раз с точки зрения последних достижений в нейробиологии и понимания как мы воспринимаем реальность.
Ведь категории в первую очередь не про как реальность устроена, а про то как мы эту реальность воспринимаем и моделируем.
Кстати, интересно, что математическая "Теория категорий" со слов Милевски (об этом он говорит в своей первой лекции) — это больше про эпистемологию, т.е. про то как мы думаем и как устроено наше знание.
ЭФ>но почему остальные-то категории не лежат в корне иерархии классов?
Почему они должны лежать именно в корне иерархии классов, а не быть выражены другими средствами языка?
Также ты можешь заметить, что различные парадигмы делают акцент на разных "категориях".
Ну, в ней нет ничего особенного. У нас бы такую статью не назвали бы "научной" и никуда бы не приняли.
Поэтому и нет таких статей на русском языке.
MVK> Гегель
Здравствуйте, Эйнсток Файр, Вы писали:
ЭФ>но почему остальные-то категории не лежат в корне иерархии классов?
У Борхеса классификация лучше. Все животные делятся на:
а) принадлежащих Императору,
б) набальзамированных,
в) прирученных,
г) молочных поросят,
д) сирен,
е) сказочных,
ж) бродячих собак,
з) включённых в эту классификацию,
и) бегающих как сумасшедшие,
к) бесчисленных,
л) нарисованных тончайшей кистью из верблюжьей шерсти,
м) прочих,
н) разбивших цветочную вазу,
о) похожих издали на мух.
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Здравствуйте, Эйнсток Файр, Вы писали:
ЭФ>Почему все классы в C# наследуются от класса Object,
ЭФ>С материей, пространством и временем у современных физиков проблемы, может быть они всё переделают, ЭФ>но почему остальные-то категории не лежат в корне иерархии классов?
1 потому что на самом деле программисты ничего не моделируют(как моделист-конструктор), а обрабатывают данные.
классический пример: веб(гипертекст).
2 есть только движение материи. время это движение стрелок часов.
Здравствуйте, Эйнсток Файр, Вы писали:
ЭФ>Ну, в ней нет ничего особенного. У нас бы такую статью не назвали бы "научной" и никуда бы не приняли.
Твоя идея о том, что сущности в программировании могли бы отображаться на философские категории тоже ничего общего с наукой не имеют. Ни с наукой, к которой можно было бы притянуть философию, ни с инженерным ремеслом, коим программирование и является.
Здравствуйте, Эйнсток Файр, Вы писали:
R3>> Вначале было слово. И это слово "object".
ЭФ>Почему, например, не слово "Понятие" ? Или не "мыслеформа" ?
Потому что это уже выход на метауровень. А тебе нужен исходный.
Предлагаю в базу вынести понятие "Оно". Всё наследуем от класса It.
ЭФ> Там, в философии ещё много других слов есть, например "Вещь", "Предмет".
Это уже излишняя конкретика. Есть непредметные понятия.
ЭФ>Заодно предлагаю уволить всех философов МЭИ. Они выпустили "философский словарь инженера", в котором есть понятие "классификация", но нет "категоризации".
Правильно. Нам надо построить систематизированную систематическую систему систематизации.
Здравствуйте, Эйнсток Файр, Вы писали:
ЭФ>Почему все классы в C# наследуются от класса Object, ЭФ>если ещё до нашей эры Аристотель выделил философские категории: ЭФ>- being
... ЭФ>- content ЭФ>но почему остальные-то категории не лежат в корне иерархии классов?
Может это не про наследование свойств, а о чем-то другом. Абстракции/категории это не обязательно просто набор свойств, описывающих состояние и операций меняющих состояние (как в ООП).
А для разработчиков, кстати, этот список "кратко все о разработке" как выглядит? К чему все сводится?
Есть еще что важное, кроме этого?
Простота.
Повторная используемость.
Абстрактность.
Полнота.
Противоречия. (поиск компромиссов)
Изменяемость.
Декомпозиция.
Классификация/группирование/кластеризация/cohesion.
Инкапсуляция. (простой маленький интерфейс к сложной громоздкой реализации)
Ограничения. Автоматическая защита от ошибок. (Например, типизация)
Читабельность. Самодокументирование. Скорость навигации/поиска/локализации нужной части кода. (Инструменты разработки)
S_S>А для разработчиков, кстати, этот список "кратко все о разработке" как выглядит? К чему все сводится? S_S>Есть еще что важное, кроме этого?
Конечно есть. Открываешь свой диплом программиста и смотришь перечень профильных дисциплин.
И это нифига не кратко, это на пять-шесть лет обучения.
Да и сами концепции — не абстрактные, а конкретные (SOLID, YAGNI и тому подобная муть).
А к конкретному от абстрактного ещё надо восходить, как учил логик Зиновьев из МГУ.