Oberon space

General Category => Общий раздел => Тема начата: valexey от Ноябрь 02, 2011, 09:18:11 am

Название: BlackBox: reloaded.
Отправлено: valexey от Ноябрь 02, 2011, 09:18:11 am
Очевидно, что BB имеет ряд старых болячек и родовых травм. Начиная от лицензии и политики распространения, и заканчивая ядром языка, оконной системой, форматом документов.

Если бы BB писался с чистого листа, что бы вы в нем изменили бы?
Название: Re: BlackBox: reloaded.
Отправлено: Geniepro от Ноябрь 02, 2011, 09:20:56 am
лицензию, язык, оконную систему, формат документов.

насчёт схемы распространения недопонял -- что с ней не так?
Название: Re: BlackBox: reloaded.
Отправлено: valexey от Ноябрь 02, 2011, 09:29:22 am
лицензию, язык, оконную систему, формат документов.

Хотелось бы таки конструктивной конкретики.
Цитировать
насчёт схемы распространения недопонял -- что с ней не так?
Ты зря вырвал из контекста. Политика распространения с лицензией едины. (hint: распространение /= скачивание).
Название: Re: BlackBox: reloaded.
Отправлено: Geniepro от Ноябрь 02, 2011, 09:42:38 am
лицензию, язык, оконную систему, формат документов.

Хотелось бы таки конструктивной конкретики.

Ну лицензию на BSD,
язык на хаскель,
оконную систему на что-нить переносимое и маленькое (у QNX, говорят, маленькая и удачненькая оконная система Photon),
формат документов на HTML-подобный (вариант -- TEX-подобный, но менее предпочтительно).
Название: Re: BlackBox: reloaded.
Отправлено: valexey от Ноябрь 02, 2011, 09:49:34 am
Ну лицензию на BSD,
Лучше MIT.

язык на хаскель,
Хаскель слишком много зависимостей тянет. Как в програмном, так и в организационном плане.

оконную систему на что-нить переносимое и маленькое (у QNX, говорят, маленькая и удачненькая оконная система Photon),
Ну, это вообще очевидная глупость :-) Программа должна нормально работать при любой используемой в ОС оконной системе.

формат документов на HTML-подобный (вариант -- TEX-подобный, но менее предпочтительно).
Ну, то есть получится аля odt?
Название: Re: BlackBox: reloaded.
Отправлено: Geniepro от Ноябрь 02, 2011, 09:53:36 am
Ну лицензию на BSD,
Лучше MIT.
А в чём отличие между ними? о_О

оконную систему на что-нить переносимое и маленькое (у QNX, говорят, маленькая и удачненькая оконная система Photon),
Ну, это вообще очевидная глупость :-) Программа должна нормально работать при любой используемой в ОС оконной системе.
Ну да, и маленькая удачненькая оконная система облегчит работу "при любой используемой в ОС оконной системе".

формат документов на HTML-подобный (вариант -- TEX-подобный, но менее предпочтительно).
Ну, то есть получится аля odt?
Да нет же, аля Literate Haskell...
Название: Re: BlackBox: reloaded.
Отправлено: Peter Almazov от Ноябрь 02, 2011, 10:17:17 am
Как бы вы стали учить пятиклашек Хаскелю? Начали бы с теории категорий?  :)
Название: Re: BlackBox: reloaded.
Отправлено: Geniepro от Ноябрь 02, 2011, 10:44:16 am
Как бы вы стали учить пятиклашек Хаскелю? Начали бы с теории категорий?  :)
А зачем пятиклашкам BlackBox? о_О
Ну и потом, вот серия уроков  ФП для детей:

http://users.livejournal.com/_darkus_/608832.html
http://users.livejournal.com/_darkus_/609354.html
http://users.livejournal.com/_darkus_/610510.html
Название: Re: BlackBox: reloaded.
Отправлено: valexey от Ноябрь 02, 2011, 10:52:53 am
В общем хаскелю отказать.

Предлагаю следующее:
1. Ядро языка, основные управляющие конструкции, заменить на оные конструкции из Oberon-07
2. Систему примитивных типов отвязать от 32х битности. (надо подумать как это лучше сделать)
3. Формат документов/исходников - http://ru.wikipedia.org/wiki/Markdown .
Название: Re: BlackBox: reloaded.
Отправлено: Geniepro от Ноябрь 02, 2011, 10:58:11 am
Вопрос: а к чему этот опрос? Ведь всё равно никто перезагруженный ББ делать не станет, ибо он изначально нинужен )))
Название: Re: BlackBox: reloaded.
Отправлено: valexey от Ноябрь 02, 2011, 11:34:00 am
Вопрос: а к чему этот опрос? Ведь всё равно никто перезагруженный ББ делать не станет, ибо он изначально нинужен )))
Есть много факторов сдераживающих развитие BB. И лицензия, и все остальное, что уже перечислялось выше.

А подобная среда таки нужна:
Цитировать
Лучшие IDE всегда были для Smalltalk языка с динамической типизацией. Там понятия среда разработки и среда выполнения тождественны. Значит, вы можете в работающей системе заглянуть внутрь, осмотреть граф объектов и изменить фрагменты кода, чтобы исправить ошибку. Ни один современный язык вам не даст такой свободы.
Хабр.
Название: Re: BlackBox: reloaded.
Отправлено: Peter Almazov от Ноябрь 02, 2011, 11:56:56 am
А Эйфель чем не устраивает? По пунктам.
Отладчик там есть, насколько я понимаю  :)
Название: Re: BlackBox: reloaded.
Отправлено: vlad от Ноябрь 02, 2011, 12:00:21 pm
Очевидно, что BB имеет ряд старых болячек и родовых травм. Начиная от лицензии и политики распространения, и заканчивая ядром языка, оконной системой, форматом документов.

Если бы BB писался с чистого листа, что бы вы в нем изменили бы?

Плагином его в популярный браузер. Возможность встраивать движок кудо угодно (сишное апи ко всему этому - must, без всяких снобских отговорок). Вокруг этого все остальное растить (вплоть до собственной оконной среды).
Название: Re: BlackBox: reloaded.
Отправлено: valexey от Ноябрь 02, 2011, 01:00:33 pm
Плагином его в популярный браузер. Возможность встраивать движок кудо угодно (сишное апи ко всему этому - must, без всяких снобских отговорок). Вокруг этого все остальное растить (вплоть до собственной оконной среды).
Плагинов в каком плане? В виде самой среды исполнения (всякие сборщики мусора и прочая дребедень с либами), или в виде чего-то более толстого с самостийным гуем?

Сишный API к чему конкретно? Можно на пальцах?
Название: Re: BlackBox: reloaded.
Отправлено: valexey от Ноябрь 02, 2011, 01:49:32 pm
А Эйфель чем не устраивает? По пунктам.
Отладчик там есть, насколько я понимаю  :)
Эйфель как язык для "BlackBox: reloaded", или же Эйфель как инфрауструктура (вместе с тамошней IDE - Eiffel Studio) как замена BB целиком?
Название: Re: BlackBox: reloaded.
Отправлено: Peter Almazov от Ноябрь 02, 2011, 01:58:16 pm
Второе, конечно.
Название: Re: BlackBox: reloaded.
Отправлено: valexey от Ноябрь 02, 2011, 02:09:48 pm
Второе, конечно.
Если целиком, то это штука совсем иного рода. Ну, простой пример - чтобы собрать релиз-версию hello world'a компилятор будет пыхтеть около минуты. И это не потому, что у них такой плохой компилятор, а потому, что язык таков, что чтобы достичь скорости сравнимой со скоростью сишной программы приходится проводить полнотекстовую компиляцию проходов в 20 с очень хитрой многоступенчатой системой оптимизации и использованием gcc.

Eiffel он для больших, сложных статических систем. IDE и исполняемая программа там - совсем разные штуки.

PS. Кроме того, eiffel studio (и все ей сопутствующее, включая компилятор) распространяется по схеме схожей с ББ - использовать можно бесплатно только для не коммерческих систем. Весь код который был разработан на некоммерческой версии EiffelStudio автоматически подпадает под лицензию GPL.
Название: Re: BlackBox: reloaded.
Отправлено: valexey от Ноябрь 02, 2011, 02:42:06 pm
И да, коммерческий /= исходники не доступны и плата берется за копию программы.
Название: Re: BlackBox: reloaded.
Отправлено: vlad от Ноябрь 02, 2011, 03:12:16 pm
Плагинов в каком плане? В виде самой среды исполнения (всякие сборщики мусора и прочая дребедень с либами), или в виде чего-то более толстого с самостийным гуем?

Нет. Только ядро. Компилятор (можно даже интерпретатор для начала) + "псевдо" модули для взаимодействия с браузером (а-ля SYSTEM). Да, естественно никакого native кода на входе - байткод максимум. Плагин скармливает код ядру/движку точно так же как в случае жабаскрипта или дарта. Движок компилирует/исполняет.

Сишный API к чему конкретно? Можно на пальцах?

Сишный апи для создания "псевдо" модулей, которые будут экспознуты в ядро.
#include "bb.h"
...
void
procedure1() { std::cout << "Hello World!" << std::endl; }
...
exposer = engine.create_exposer("external_world")
exposer.add_procedure("procedure1", &procedure1);

engine.compile("test.bb");
engine.run("test");

test.bb:

MODULE test;
IMPORT external_world;
...
external_world.procedure1();
...

Название: Re: BlackBox: reloaded.
Отправлено: Geniepro от Ноябрь 02, 2011, 04:28:33 pm
Плагинов в каком плане? В виде самой среды исполнения (всякие сборщики мусора и прочая дребедень с либами), или в виде чего-то более толстого с самостийным гуем?

Нет. Только ядро. Компилятор (можно даже интерпретатор для начала) + "псевдо" модули для взаимодействия с браузером (а-ля SYSTEM). Да, естественно никакого native кода на входе - байткод максимум. Плагин скармливает код ядру/движку точно так же как в случае жабаскрипта или дарта. Движок компилирует/исполняет.

Был же Juice -- нипашёл...
Название: Re: BlackBox: reloaded.
Отправлено: vlad от Ноябрь 02, 2011, 05:14:52 pm
Был же Juice -- нипашёл...

Подозреваю, что это была "вещь в себе" в чисто обероновском стиле. Упор должен делаться на интеграцию с существующим миром. Ну и представлено оно должно быть в минимально юзабельном виде, а не как голый "proof of concept" (как в случае OberonScript).

P.S. Кстати, не завалялось ссылки? Посмотрю конкретнее и скажу почему "не пошел" :)
Название: Re: BlackBox: reloaded.
Отправлено: DIzer от Ноябрь 02, 2011, 06:04:55 pm
Вопрос: а к чему этот опрос? Ведь всё равно никто перезагруженный ББ делать не станет, ибо он изначально нинужен )))
Geniepro = это вопрос спорный, мне НУЖЕН простой ЯВУ(с IDE из коробки и комплектом методик для образовательных целей) для нужд обучения - в том виде каком он есть ББ не удовлетворяет потребностям - что бы быть точнее -он не лучше (по совокупности свойств)  чем PABC. Вопрос ведь вот в чем - что вы ожидаете получить от ББ  и что в ПРИНЦИПЕ возможно ВЫСОСАТЬ из этой идеи.... Скажем так, когда я принял участие в этом форуме - одной из моих целей - было выяснение именно этого вопроса , ибо любая попытка дискуссии в коровнике приводила к плачевным результатам(заканчивалась матом с моей стороны и баном от обермейстера)...
Название: Re: BlackBox: reloaded.
Отправлено: valexey от Ноябрь 02, 2011, 06:12:55 pm
P.S. Кстати, не завалялось ссылки? Посмотрю конкретнее и скажу почему "не пошел" :)
http://www.jucs.org/jucs_4_5/open_standards_beyond_java/Franz_M.html
Название: Re: BlackBox: reloaded.
Отправлено: Romiras от Ноябрь 02, 2011, 07:10:00 pm
Очевидно, что BB имеет ряд старых болячек и родовых травм. Начиная от лицензии и политики распространения, и заканчивая ядром языка, оконной системой, форматом документов.

Если бы BB писался с чистого листа, что бы вы в нем изменили бы?

Ядро:
* улучшить переносимость за счёт использования дополнительных абстрактных слоёв от низлежащей ОС,
* возможно даже разбиение на дополнительные части ядра,
* отказ от привязки к 32-битной архитектуре.

Каркас:
* уменьшение зависимостей от модуля Kernel (каркас насквозь пронизан зависимостями), особенно в абстрактных модулях,
* отделение от каркаса составных документов и, как следствие, формата ODC в качестве дополнительного встраиваемого модуля, расширяющего интерфейс ББ дополнительной функциональностью как для аналога редактора WYSIWYG. Исходные тексты программ же хранить в кодировке UTF-8 как это принято сегодня.

Реализация:
* реализация оконного интерфейса на межплатформенном API (в частности, обновление Ports, Views),
* как следствие, отказ от MDI в пользу оконного интерфейса с переключением закладок,
* система управления подсистемами с разрешением зависимостей и с каталогом для поиска подсистем, наподобие APT/YUM/...
* добавление панели инструментов для часто используемых операций,
* добавление подсистем для поддержки подсветки синтаксиса кода, средств анализа кода и зависимостей, навигатора по классам
Название: Re: BlackBox: reloaded.
Отправлено: DIzer от Ноябрь 02, 2011, 07:34:25 pm
..... зависимостей и с каталогом для поиска подсистем, наподобие APT/YUM/...
* добавление панели инструментов для часто используемых операций,
* добавление подсистем для поддержки подсветки синтаксиса кода, средств анализа кода и зависимостей, навигатора по классам
Хехе - это называется привести технологию к современному виду... и что получим в результате - еще одну продвинутую технологию(в дополнение к существующим)?
Название: Re: BlackBox: reloaded.
Отправлено: valexey от Ноябрь 04, 2011, 06:05:52 pm
Geniepro = это вопрос спорный, мне НУЖЕН простой ЯВУ(с IDE из коробки и комплектом методик для образовательных целей) для нужд обучения - в том виде каком он есть ББ не удовлетворяет потребностям - что бы быть точнее -он не лучше (по совокупности свойств)  чем PABC. Вопрос ведь вот в чем - что вы ожидаете получить от ББ  и что в ПРИНЦИПЕ возможно ВЫСОСАТЬ из этой идеи.... Скажем так, когда я принял участие в этом форуме - одной из моих целей - было выяснение именно этого вопроса , ибо любая попытка дискуссии в коровнике приводила к плачевным результатам(заканчивалась матом с моей стороны и баном от обермейстера)...
А что нужно, чтобы он стал лучше АБС?
Название: Re: BlackBox: reloaded.
Отправлено: DIzer от Ноябрь 04, 2011, 07:26:38 pm
Geniepro = это вопрос спорный, мне НУЖЕН простой ЯВУ(с IDE из коробки и комплектом методик для образовательных целей) для нужд обучения - в том виде каком он есть ББ не удовлетворяет потребностям - что бы быть точнее -он не лучше (по совокупности свойств)  чем PABC. Вопрос ведь вот в чем - что вы ожидаете получить от ББ  и что в ПРИНЦИПЕ возможно ВЫСОСАТЬ из этой идеи.... Скажем так, когда я принял участие в этом форуме - одной из моих целей - было выяснение именно этого вопроса , ибо любая попытка дискуссии в коровнике приводила к плачевным результатам(заканчивалась матом с моей стороны и баном от обермейстера)...
А что нужно, чтобы он стал лучше АБС?
Вопрос достаточно серьезный, и мои соображения эволюционировали на протяжении всего времени с которого я начал работать с первокурсниками. Попозже попробую дать свои соображения на этот счет.