Объектная идеология, значит? Перейти к странице -1-2 Следующая |
|
HandleX
|
Tuesday 13.07.2004 14:52
|
|
|
Зарегистрирован Friday 13.02.2004 12:39
Сообщений - 18
|
Рекомендую почитать «Objects have failed» Гэбриэла — изумительная вещь... Не поленился и сделал русский перевод, лежит на BugTraq.ru. Есть о чём призадуматься разработчикам будущей Объектно-Ориентированной Операционной Системы, как бы ребёнок мёртвым не получился...
Особенно, если жёстко «зацепитесь» за С++ — многие склоняются к мнению, что именно в нём причина застоя нынешнего софта. Из-за совместимости
Удачи всем и приятного чтения!
|
Наверх
|
|
captain cobalt
|
Tuesday 13.07.2004 19:29
|
|
|
Зарегистрирован: Sunday 15.02.2004 03:47
Сообщений - 49
|
Ай, молодца...
Значит так...
На мой взгляд, у современного ООП есть две основные проблемы:
1. Сохраняемые (storable, persistent...) классы И обьекты.
Ц++ не поддерживает нормально ни то, ни другое. Даже говорить не о чем...
Java позволяет сохранять классы в контейнерах-файлах .class и передавать их между машинами. Уже не так плохо. Но нормальной поддержки сохраняемых обьектов опять нет. Фактически, Java ориентирована на модель Выполнить-Освободить ресурсы. Это подходит для веб-апплетов, сервлеттов, запуска "студенческих" программ при обучении программированию. Но плохо подходит для создания непрерывно выполняемых программных сред, которые можно было бы модифицировать/расширять во время работы.
2. Существующие ОС не являются ОО.
И ориентированы на модель "приложений" - запускаемых монолитных программных модулей. Возможно, с применением динамически компонуемых разделяемых библиотек. (на базе которых, кстати, пытаются воссоздать сохраняемые классы - всякие КОМ сотоварищи - попытка шагнуть в правильном направлении).
Даже самый блестящий программист, программирующий для таких систем, абсолютно правильно применяющий ОО методологию, "на выходе" будет всё равно "выдавать" приложение - кусок кода, не обладающий гибкостью...
Обьектно-Ориентированная Операционная Система (каковой предполагается 3OS) должна создавать гибкую программную ОО среду, которая могла бы легко адаптироваться к необходимым требованиям, задачам и аппаратному окружению. Частично самостоятельно, частично с помощью пользователяадминистратора.
Кстати, пункт "долой приложения" с самого начала (?) присутствовал в "базовых концепциях" 3OS... 100% поддерживаю!!! [ Редактирование вторник 13.07.2004 20:02 ]
|
Наверх
|
|
captain cobalt
|
Wednesday 14.07.2004 21:12
|
|
|
Зарегистрирован: Sunday 15.02.2004 03:47
Сообщений - 49
|
А вот то, что 3OS на Ц++ это действительно, "косяк". Разработчикам придется реализовывать сохраняемость "ручками". И не всем может понравиться выбор, который будет сделан. Увы, пока в проекте вопрос сохраняемости даже не поставлен. Разработчики больше прорабатывают процедурные аспекты: Удалённые Обьекты, и т. п...
|
Наверх
|
|
Freeman
|
Thursday 15.07.2004 16:36
|
|
|
Зарегистрирован: Sunday 16.11.2003 22:36
Местоположение: Зеленоград, Россия
Сообщений - 74
|
captain cobalt писал(а): ... А вот то, что 3OS на Ц++ это действительно, "косяк". Разработчикам придется реализовывать сохраняемость "ручками".
Дай пример языка, обеспечивающего сохраняемость на уровне компилятора и компилируемого в машинный код.
Надо понимать так, что объектная модель 3ОС будет чем-то вроде ОМ Java или .NET.
|
Наверх
|
|
captain cobalt
|
Saturday 17.07.2004 10:56
|
|
|
Зарегистрирован: Sunday 15.02.2004 03:47
Сообщений - 49
|
Я не знаю
|
Наверх
|
|
Freeman
|
Monday 19.07.2004 00:08
|
|
|
Зарегистрирован: Sunday 16.11.2003 22:36
Местоположение: Зеленоград, Россия
Сообщений - 74
|
captain cobalt писал(а): ... Я не знаю
В свете этого в чем тогда заключается косяк?
|
Наверх
|
|
captain cobalt
|
Monday 19.07.2004 07:12
|
|
|
Зарегистрирован: Sunday 15.02.2004 03:47
Сообщений - 49
|
В свете отказа в 30S от файлов, сохраняемость является абсолютно необходимой. Помимо всего прочего, необходимо реализовать возможность наследования от сохраненного класса. В c++ нет хорошего способа сделать это, применяя встроенные средства языка.
|
Наверх
|
|
Freeman
|
Monday 19.07.2004 13:16
|
|
|
Зарегистрирован: Sunday 16.11.2003 22:36
Местоположение: Зеленоград, Россия
Сообщений - 74
|
captain cobalt писал(а): ... В свете отказа в 30S от файлов, сохраняемость является абсолютно необходимой. Помимо всего прочего, необходимо реализовать возможность наследования от сохраненного класса. В c++ нет хорошего способа сделать это, применяя встроенные средства языка.
Все абсолютно верно. Только дело в том, что мы пишем операционную систему, и следовательно, можем проектировать среду сохранения и связывания объектов с нуля.
У тебя есть конкретные предложения? По высказываниям на форуме ты вроде пытаешься плавно подвести к мысли о написании собственного компилятора. Мы в группе обсуждали это и пока отказались.
|
Наверх
|
|
captain cobalt
|
Friday 23.07.2004 14:11
|
|
|
Зарегистрирован: Sunday 15.02.2004 03:47
Сообщений - 49
|
Насколько я понимаю, 3OS должна будет предоставлять некоторые средства для стандартных операций над объектами и классами. Например, для упомянутой сохраняемости; или для конструирования наследующего класса. Но в С++ нет (?) средств, с помощью которых можно было бы восстановить сохранённый класс, а потом создать от него наследованный класс. Есть, конечно, RTTI, но я не знаю, что это такое , и даже если это поможет, то программистам может не понравиться, если их будут заставлять применять RTTI в каждой программе (даже самой маленькой).
Отсюда вывод: похоже, придётся делать свой компилятор, который будет транслировать стандартные операции над объектами и классами в обращения к соответствующим средствам операционной системы...
Или всё-таки есть способ, с помощью которого удастся избежать необходимости написания компилятора?
|
Наверх
|
|
captain cobalt
|
Thursday 29.07.2004 05:11
|
|
|
Зарегистрирован: Sunday 15.02.2004 03:47
Сообщений - 49
|
Или я чукча?
|
Наверх
|
|
may
|
Tuesday 03.08.2004 05:22
|
|
|
Зарегистрирован: Friday 21.11.2003 02:29
Местоположение: Россия, Чита
Сообщений - 9
|
RTTI в С++ предназначена в основном для корректного приведения от базового класса к потомку (downcast)
Встроенной сериализации объектов в С++ нет, это предлагается делать через внешние библиотеки, также как и расширенное управление памятью (автоматическая сборка мусора) и получение полной информации о классе в рантайме.
Реализация собственного компилятора дело очень трудоемкое. Если все-таки ориентироваться на С++ как на основной язык разработки, можно либо постоить собственную библиотеку включающую недостающие в С++ функции или использовать отладочную информацию и реализовать дополнительную функциональность через внешние утилиты. Например так, как сделано при разработке объектного хранилища Texas.
А лучше всего на мой взгляд использовать в комплексе свою версию библиотеки времени исполнения С++ и внешние утилиты для предварительной обработки кода
|
Наверх
|
|
Модераторы: Roman I Khimov, netwizard. |
|
|