Forthware писал(а):
Да, да... Вопрос в полноценности этой реализации. Если мы говорим про некий вариант библиотеки для создания разных (любых) интерфейсов, то тут все получается на практике значительно сложнее чем кажется на первый взгляд. Одноразовый простой интерфейс нарисовать можно, правда я уверен, что даже в вашем примере не хватало много мелких но необходимых нюансов, например всплывающие подсказки, скроллбары, выпадающие списки, что там у вас было с меню? Может было и лучше чем я думаю, но сомневаюсь. Скорее это всетаки была имитация.
Разумеется, имитация. У нее даже было принципиальное ограничение - не было перекрывающихся элементов, никаких выпадающих меню и списков (т.е. механизма запоминания экрана и последующего восстановления, либо отсылки "закрываемому" объекту сообщения paint не было). Тем не менее, этого никто и не требовал, даже наоборот - пользователями-то предполагались заводские техники из прекраснейшей половины человечества
![Smile :)](./images/smilies/icon_smile.gif)
Тем не менее, с учетом того, что выбрать-то было не из чего, даже такой интерфейс лучше, чем ничего. По крайней мере,
ни одной реплики, что тут как-то не так, неудобно и нестандартно, не было. Ни от женщин-техников, ни от инженеров, которые должны были заниматься настройкой. Последние, к слову, без вопросов слопали programmer's guide, в котором был описан "язык описания последовательности действий" - натуральный Форт с русскими мнемониками (СЛОЖИТЬ, УМНОЖИТЬ...). Черным по белому написали, что там стековая машина, наподобие МК-61 (
![Wink ;)](./images/smilies/icon_wink.gif)
!), а специально для уважаемых заказчиков была введена возможность писать программу по русски
![Looool :))](./images/smilies/lol.gif)
Forthware писал(а):
Конечно, кое что можно прямо взять в OpenGL, но это примитивы, причем не совсем ориентированые на создание именно GUI. Вот и возникает вопрос - зачем тратить ресурсы?
Так я и не планирую тратить. OpenGL - просто для удобства, и как "окно" в потроха. Кварк - он же не случайно так называется
![Wink ;)](./images/smilies/icon_wink.gif)
Природные кварки вообще виртуальны, и вне пределов элементарных частиц не наблюдаются - отсюда и транслятор, который в качестве отправной точки призван скрываться внутри более сложных проектов. По крайней мере, я вижу путь в виде обычного дельфи-приложения, которое при старте подключает некую dll, скармливает ей строки из какой-то программы и передает указатели на свои ресурсы. И "вдруг" (хотя мы-то знаем, что никак не вдруг) ей начинают приходить какие-то сообщения, которые просят ее создать кнопки, добавить пункты в меню, настроить обработчики. Вот и GUI в стиле "здоровый кот без всяких хлопот". Просто сообщения берутся из кварка. По сути, это нормальная идея с динамически создаваемым интерфейсом, просто такие парсеры текстовых файлов все равно по сути стремятся к Форту. Форт-то еще до кучи позволит что-то посчитать, запомнить, массивы насоздавать - чего самописный парсер скорее всего не даст по причине экономии времени его разработчиком. А если и даст, то это попросту Форт на Си или Дельфи, поскольку мы опять пришли к регулярной грамматике aka последовательному разбору, скорее всего стековой машине (а есть другие разумные альтернативы?) и т.п.
Forthware писал(а):
Вот только если говорить про шкурные интерфейсы, то тут все может не плохо получиться. Особенно в OpenGL. Хоть это уже и другая, более узкая (обычно мультимедия) тема.
Ну кстати, почему бы и нет. У меня тут, кстати, в окружении есть неглупый народ, который игрушки пописывает в качестве хобби. Один сделал платформенную стрелялку на тему Heretic, чуть позже - движок шутера от первого лица (естественно, не с нуля, а с библиотеками). Но... кого сейчас может напугать необходимость подключения dll? Если потом это можно "заморозить" и подать "20 патронов шотган +! 100 хитпойнты !"?
![Looool :))](./images/smilies/lol.gif)
Forthware писал(а):
Хищник писал(а):
вместо GUI на первых порах сойдет интерактивность.
Нет. Исключено. Не на этом рынке. Любой разработчик прикладного ПО даже смотреть в сторону такого языка не станет.
Нуу... что я могу сказать? Да, я согласен, на рынок систем разработки прикладного ПО с Фортом выходить очень сложно. В первую очередь потому, что разработчик, который сможет Фортом пользоваться, с высокой вероятностью захочет написать что-то свое.
Forthware писал(а):
Соответственно для них "главный вопрос" чтобы прога понравилась клиенту. И большинство экспериментов не с тем как в COM порт влезть, для этого проще стянуть уже отлаженый компонет, а с тем, чего именно напихать в прогу, и как это обернуть в понятный для юзверя интерфейс.
А вот кстати не согласен. Часто программисты (тем более которые с заказчиками общаются мало и им кажется, что главное - это на своем девелоперском месте сделать cool, и красиво написать иерархию классов), бьются о задачу аки рыба об лед. И им все время кажется, что у них интерфейс недостаточно красивый, и использует далеко не все возможности той библиотеки, которую они выбрали... А заказчик потом с тоской смотрит на "эту пестрятину", робко пытается найти нужную функциональность, а с учетом того, что программисты - не гении софт-дизайна, периодически в "интуитивно понятном" интерфейсе возникают досадные срывы. Причем как глюки библиотеки, так и недоработки программистов. И у программистов действительно основная проблема - как бы выразить то, что хочет заказчик, в терминах того инструмента, "на котором все вокруг пишут". Вот только заказчику часто на проблемы этого инструмента наплевать, и ему надо не "как у всех программистов", а чтобы показывался фильм, управлялся станок, разводилась печатная плата или подводился бухгалтерский баланс. Причем по тем законам и правилам, которые приняты именно в этих, часто далеких от программирования областях. Ну и чем тут поможет аргумент "а зато у нас окна.. а зато у нас POSIX"? Да ничем - это все ваши внутренние проблемы, программистов. Если управляемый станок не работает, кого касается, что окошко можно таскать мышкой за заголовок?
Forthware писал(а):
Есть еще упоминаемая мною область портативных дивайсов (мобилы и т.д.), причем очень перспективная как для форта так и в плане роста, но момент утерян - сегодня там бороться за рынок не проще чем на РС. Хотя можно подумать.
Насчет мобил не скажу, хотя не отказался бы от аналога кварка для PocketPC. Если можно будет писать переносимые каузальные игрушки, при этом они будут не тормозные и достаточно мелкие по размеру (скажем, вообще исходники закачиваем в архиве и при запуске делаем JIT-компиляцию), то вполне может пойти. Насчет embedded - при наличии критической массы освоивших эти технологии разработчиков получается очень и очень неплохо, потому что постоянно в задачах вылезают требования, которые Фортом прекрасно закрываются. Скажем, надо память поэкономить - вот вам свернутый шитый код. Есть хороший МК, но компилятор стоит дорого - вот вам портированная Форт-машина, 60-80% производительности вы получите, в критических местах руками на ассемблере. Уже молчу о форт-процессорах в ПЛИС, на сегодня у нас ничего другого просто нет...
Вот только это все не обязательно разворачивать как крупный проект, достаточно начинать от имеющегося. Просто из принципа взять текущий срез трансляторов и библиотек, и посмотреть, что из имеющихся вокруг задач можно решить ну хоть в каком-нибудь виде. Требования окон, стандартов, дикой переносимости, высочайшей производительности - это все разновидности саботажа. А по ходу дела к имеющемуся инструментарию что-нибудь да добавится, и следующий проект пойдет уже проще. Что, в Borland Developer Studio опять новая закладка с кучей полезных компонентов, которые нам не потянуть? Ой, ребята, огромное спасибо вам за dll с этими компонентами!
![Looool :))](./images/smilies/lol.gif)
Сейчас прикрутим...
![Wink ;)](./images/smilies/icon_wink.gif)
Forthware писал(а):
Хммм... Издать книгу? А ведь действительно не помешало бы - последние издания уже до безобразия древние и морально устаревшие...
Ну вот то, что я сейчас дописываю (по процессорам в FPGA) - там будет и про Форт. Просто тут тонкий момент - по самому Форту книгу вряд ли так просто издадут. За счет средств автора - что угодно, но это же не выход. Сборник статей тоже не годится - такие вещи обычно издаются в виде монографий "ради галочки", и потом пылятся на полках, потому что нормальный специалист в здравом уме узкоспециализированные излияния чьих-то мозгов покупать не будет. По крайней мере, предпочтет почитать онлайн.
Forthware писал(а):
Хищник писал(а):
Потому я и спрашиваю - что за проект(ы) есть на повестке дня?
Где?
Да вокруг, вокруг
![Wink ;)](./images/smilies/icon_wink.gif)
Можно же сюда задачу вывалить, да хоть в раздел "наши проекты", обрисовать ситуацию, прикинуть, чем Форт помог бы, и чего в нем сейчас не хватает, а потом всем скопом погрызть эту проблему и выдать резюме из набора "да вот же решение!", "тут бы еще доработать вот это!", "нет, это явно не для Форта". А то что мы по пятому кругу ходим по термину "прикладное ПО"? Я вон уже сколько реальных примеров расписал...