Да, уважаемые...
Почитал форум, август у вас был жаркий
![Smile :)](./images/smilies/icon_smile.gif)
Поскольку сейчас идет перманентное обсуждение, какой будет условная версия 2.0, выскажу свои пять копеек.
За время моего
отсутствия у меня произошло много событий, в основном связанных с необходимостью кормить семью. Я сменил работу, поработал на функциональных языках (Лисп и клон ML) и все же возвращаюсь к ББ. И вот почему.
Оберон (и КП) предоставляют уникальную возможность обеспечить динамическую загрузку/выгрузку модулей при очень мощном потенциале самого языка. Кроме того, каркас можно обозреть и понять в одно лицо, что важно для разработки малыми силами. И мне очень нравится сам язык.
Теперь конкретика.
Выскажусь сразу по нескольким темам в одном месте, если будет необходимость, разнесу по разным веткам.
1) Чтобы была понятна моя мотивация, поясню, у меня появился коммерческий интерес; я делаю проект, связанный с графикой, детали пока не раскрываю. ГУИ для него я планирую делать на ББ. Для этого делаю графику на AGG. Соответственно, для меня важно, чтобы ББ рос и развивался.
2) Было обсуждение
инструментов слияния. Один из менеджеров, с кем мне довелось поработать, сказал замечательную вещь: «Если пользователю надо что то делать, и программа может принимать его ошибки и обрабатывать их, то она должна это делать, даже если пользователь трижды неправ.» После чего у нас в программе появился примерно десяток способов ввода одного и того же и программа подсказывает, не падая, где пользователю следовало бы написать по-другому. Это я к чему? ODC и составные документы — всего лишь инструмент общения пользователя и ББ. Не более того. Для запуска готового продукта ODC не нужен. Нужен скомпилированный код.
Пользователю удобно работать с подсветкой синтаксиса? Пускай. Пользователю хочется plain text diff? В чем проблема? Никто не говорит о том, что сразу надо пересобрать версию ББ с Kernel.ODC в виде текстового файла. Но если будет поддержка текстовых файлов в качестве исходников — так это же прекрасно! И не ломает архитектуру системы, а лишь увеличит потенциальную пользовательскую базу.
3) При старте ББ бутстрапится. Запускается ядро, которое затем запускает ГУИ и т.д.
Когда я увидел
работу Петра, меня буквально озарило — в этом корень проблемы и решение одновременно!
Сейчас огромная сложность работы с ББ в том, что ГУИ неотделим от ядра. Вернее, отделение не дается малой кровью. Отсюда же вытекает проблема получения работающего исполняемого файла. Собрать его проблемы нет, но мы должны понимать, что отсекать. Должно быть наоборот. Сборка исполняемого файла должна быть приятным бонусом. Ядро, затем утилиты вокруг него, затем, если нужно, ГУИ.
Если удастся разнести код по независимым подсистемам, что
обсуждалось и предоставить пользователю самому решать, как и что будет бутстрапиться, то мы получим очень, нет, ОЧЕНЬ гибкую систему. Вопрос с консольной версией и переносом на другие платформы упростится в разы.
4) Развитие языка. Мы можем сколько угодно говорить о канонической версии, о том, что Оберон крут и ограничения суть есть хорошо, но жизнь не стоит на месте, и кое-какие изменения бы не помешали. Причем это не прихоти новичков, тыкающих пальцем в документацию с фразой «ай-ай-ай, у вас нет вот этой крутой фишки, смотри язык X и Y». Все же практика — критерий истины.
Вот вещи, которые нужны лично мне:
-- инициализация массивов, как это сделано в XDS:
BEGIN
gsv_default_font^ := GSV_DEFAULT_FONT{040H,000H,06cH,00fH,015H,000H,00eH,000H}
END.
-- Процедура SYSTEM.ToString(x), которая позволила бы произвести распечатку содержимого произвольной переменной по аналогии с трапом, но без трапа.
-- Однострочные комментарии.
---------------------------------------
Поймите меня правильно, я не собираюсь развивать флейм, это неконструктивно. Больше того, я действительно был разочарован общением на форуме и менторским тоном многих обсуждений (напомню, было закрыто две ветки про Оберон на Королевстве Дельфи).
Но сейчас все изменилось — Оминк вышли из игры и после смены лицензии мы имеем дело с обычным opensource проектом. И теперь все должны договариваться, ибо сил мало, а задач много. Привет
Карлу Фогелю.
Сейчас никто не может сказать, что, мол, ждем реакцию и не будем вносить никакие изменения, текущая версия «отлита в бронзе». И это хорошо. Никто не вправе единолично распоряжаться ни кодом, ни развитием, потому как всегда можно сделать форк. Поэтому надо договариваться, а не ругаться.
Простите за сумбур.