: . Главная . : . Форум . : . Загрузка . : . Пользователи . : . ЧаВо . : . Документация . :


Операционная система 3OS -> Форумы -> Идеология проекта
<< Предыдущая тема | Следующая тема >>   

Объектная идеология, значит?

Перейти к странице -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.
А лучше всего на мой взгляд использовать в комплексе свою версию библиотеки времени исполнения С++ и внешние утилиты для предварительной обработки кода
Наверх
Перейти к странице -1-2 Следующая

Модераторы: Roman I Khimov, netwizard.

Переход:     Наверх