Ada_Ru форум

Обсуждение языка Ада

Re: [ada_ru] Re: Совмещение языков. Страница 2

Оставить новое сообщение

Сообщения

Vladyslav Kozlovskyy wrote:

 

Решил вставить и свои пять копеек :)

 

Предлагаю совсем уж фантастический вариант: отталкиваться не от абстракции юзер-интерфейса и виджетов а от более высоких абстракций, например

 

<Мастер-область>

 

<Область управления>

 

Идея вот в чем: Замечено, что все приложения одной предметной области,

1. Повысить уровень абстракции (легче работать)

2. Упростить перенос.

 

Промежуточный слой должен заниматься трансляцией (можно в исходники Ады или Явы) подобного описания с учетом особенностей целевой платрофмы.

 

Знаю, сделать это сложно (если вообще возможно). Но было б прикольно.

 

Нечто похожее уже сделано для GTK и называется GLADE -

http://glade.gnome.org/

http://gladewin32.sourceforge.net/modules/news/

Есть привязки под Java и Ada.

17.03.07, Olleg<olleg_s@mail.ru> написал(а):

Вот и думаю. Поскольку люди здесь все умные, могу повторить постановку

задачи, может кто что и посоветует. Заработываю я на жизнь не продажей

программ, а как программист на подхвате у интернет провайдера.

 

одно другому не мешает ;)

вполне можно между делом "колымить" на продажах шароварки, например.

при этом наверняка заработок от "колыма" будет больше чем на основной работе...

 

Исторический так случилось, что на заре интернета в нашей фирме было

человек 5, профессиональная биллинговая стоила сорок килобаксов в

результате у нас работает свое, самописное. Часть её написал я на java

(interface), plpgsql (server), c++ (демоны). Часть её написал не я на

php и perl. Путем естественной эволюции штука получилась крайне

запутанной и неподвластной изменениям. Эволюционный тупик. Плюс наш

провайдер вырос до размеров города и вопросы производительности стали

вставать очень остро, хайтоповский amd64 сервер с нагрузкой справляется

все хуже и приходится задумываться от ухода классической модели

клиент/сервер к распределенной системе дабы разбросать нагрузку. Задача

 

в связи распределенные системы применяются почти с самого начала,

как только начали применяться ЭВМ для управления АТС.

 

очень толстая, помимо основной работы по отъему денег у населения надо

как-то интегрироваться с бухгалтерской системой типа 1С с одной стороны,

а с другой уметь управлять разношерстным сетевым оборудованием (роутеры,

коммутаторы, сервера, услуги оказываются по городской сети ethernet, не

adsl, что сильно осложняет управление). Но я об этом здесь уже где-то писал.

 

ADSL тоже тот еще гемор :)

местные тут понаписали тут биллинг...

недавно вот неделю без связи сидел, причем отправил бабки 2 путями

через разные платежные системы - пришли только через неделю :/

А грозились что через 5 минут ;)

 

В общем у меня есть рабочее время слабо контролируемое начальством. И

желание сделать что-либо выдающееся, дабы было чем хвастаться.

 

ну это вещи немного разные :)

можно сделать и быстро, и просто, и надежно, но хвастаться боюсь не чем будет :)

а можно сделать такой гемор что им можно только хвастаться,

работать правда почти совсем не будет :)

 

 

Чтобы было проще хочется ограничится одним языком. На крайней случай

двумя. На джаве программирую давно и по прежнему считаю что её jvm и

библиотеки вне конкуренции для созданию толстых клиентов интерфейсов

 

хм

тогда тебе проще ;)

меня вот от этих новомодных объектно-ориентированных извратов несколько

подташнивает :) Да и синтаксис могу сравнивать разве что с

ассемблером или Ц :)

 

пользователей. И кроссплатформенность у меня востребованна, сам я под

линуксом, остальные под виндами. + Очень хочется иметь клиент для

мобильных телефонов, чтобы монтажники находясь у неработающего

 

интересная штучка

 

давно думаю использовать сотовик как готовый пульт или весь блок

управления для приборов и тп

 

можно по этой теме поискать ссылочки где какие тусовки и сайты есть,

ну и сделать че-нить свое если чего-то еще не хватает. Программирование

на Ада для сотовиков, например. Кстати пока мы тут болтали :), Максим

слепил wiki на Ада, так что теперь с подобными работами все еще проще...

да и code.google.com я смотрю тоже неплохо все сделал,

мне sf.net никогда особо не нравился :) Я тут кажется научился использовать

локальные поисковики в мирных целях :), так что теперь можно будет

разгребать все эти кучи навоза довольно быстро... Еще бы постнет до кучи

поднять чтобы было чего разгребать, и совсем бы хорошо :)

 

оборудования могли сами связаться с системой, например чтобы

посмотреть/изменить топологию сети.

 

хорошая штука

 

...

jvm. Создавать весь проект на одной языке будет наверное проще.

 

конечно, если это подобные языки

 

а вообще я немного к языкам отношусь проще - если это какие-то

не очень замороченные, но дающие что-то принципиально новое языки(DSL и тп),

то пусть хоть 20 будет... Но ведь все что есть обычно даже полностью

заменить Ада не могут - максиум имеют чуть-чуть больше библиотек в какой-то

очень небольшой области, в остальном сильно извращеннее или вообще хуже,

так что такие есть большое желание заменить нафиг на че-нить одно.

(кстати ада-скрипт BUSH должен быть у тебя в системе если ты под линуксом,

можно будет и пройтись со скальпелем по всяким жабаскриптам с PHP и .ASP

за разом - причесать все под одну гребенку :) )

 

вот насчет использовать че-нить не алгоритмическое в довесок к Ада

можно и подумать - че-нить на тему LISP, PROLOG, REDUCE например,

или думать как в Ада стиле можно делать не алгоритмические программы...

Всяких компиляторов компиляторов смотрю уже тоже многовато развелось,

тоже бы причесать и 1-2 или 3 оставить вместо всего зоопарка, ну или лучше

сделать 1, но хороший на замену всего зверинца... lisp с прологом тоже

конечно не идеалы, но пока в первом приближении можно поглядывать

и на них раз уж оно все готовое есть.

 

...

принципы и парадигмы" и хотел для начала её прочитать. Так что есть чем

занять время до выхода JGNAT. :-)

 

JGNAT давно уже вышел - это был один из первых проектов

даже уже немного устареть успел :)

у меня в коллекции версия 1.1p - 2000 год

MGNAT свежее - ~2003

 

Vladimir

Sat, 17 Mar 2007 11:57:10 +0300, Vadim Godunko <vgodunko@...> писал(а):

 

Sergey Kirkorov wrote:

 

Мне кажется что проблема GUI , лежит в средстве автоматизации независивом от платформы и интегрированном в средства разработки для языка Ada, например в GNAT GPS.

 

GUI и IDE друг к другу никаким боком не лежат. Может иметь "вс ё водно" м иудобн, он он инеобходим, он идостаточн.

 

 

оВс еправильн, он оимелос ь ввид учт оО Симее тсво GUI. еЕсл имн енад онаприме р Windows , вт о яподключа юнеобходиму юбиблиотек у кпрограмм Ada. е Аво тсредст вавтоматизаци иэтог опроцесс ане. тОн иест ь Microsoft Visual Stud., Borland C++ Builder в и.т. дПоэтом уочен ьтрудн оубеждат ьчт орисоват ьокошк икнопк именюшк ип окоордината мэкран а ичере звызо вфункци, йпуст ьдаж еочен ьхороше йбиблиотек иудобне ече м всредства хавтоматизаци иэти хпроцессо.

 

 

With best regards Sergey Kirkorov

Wladimir Mutel wrote:

Vladyslav Kozlovskyy wrote:

 

Решил вставить и свои пять копеек :)

 

Предлагаю совсем уж фантастический вариант: отталкиваться не от абстракции юзер-интерфейса и виджетов а от более высоких абстракций, например

 

<Мастер-область>

 

<Область управления>

 

Идея вот в чем: Замечено, что все приложения одной предметной области,

1. Повысить уровень абстракции (легче работать)

2. Упростить перенос.

 

Промежуточный слой должен заниматься трансляцией (можно в исходники Ады или Явы) подобного описания с учетом особенностей целевой платрофмы.

 

Знаю, сделать это сложно (если вообще возможно). Но было б прикольно.

 

Нечто похожее уже сделано для GTK и называется GLADE -

http://glade.gnome.org/

http://gladewin32.sourceforge.net/modules/news/

Есть привязки под Java и Ada.

 

Да, я знаю. Но я не об этом. Мне очень нравится "Кнут-вей" в отношении верстки: писатель отдельно; верстальшик отдельно

 

Идея такой системы - дать возможность программисту оставлять дизайнеру интерфейсов высокоуровневые (ну о-о-о-очень высокоуровневые, на уровне предметной области) инструкции, следуя котормым тот строит интерфейс

под целевую платформу.

 

В идеале существование некоего промежуточного инструмента со своей предметной библиотекой (типа TeX), использование которой позволит строить стандартные интерфейсы (с коробки), ну, и обязательно присутствие возможности подправить руками, если что пошло не так. Налицо разделение труда и повышение уровня абстракции.

 

Но повторяю, все это еще четко не сформулированно, и пока существует

только на уровне чувств и эмоций. :)

Olleg wrote:

Vladimir Teplouhov wrote:

 

Я мало знаком с дельфи, но сомневаюсь что там есть аналог java web start. Обычно как делают "кросплатформенные" приложения. На ftp сервере лежат бинарники для всех платформ на которые хватило фантазии

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

 

Джава здесь выигрывает простой использования такого интерфейса (при наличии уже установленной jre).

 

Подобные аналоги легко делаются и для нейтив приложений. У нас сделан автозагрузчик новых версий при старте приложения.

 

Пользователю не надо парится и искать новые версии на сайте.

Привет Иван!

 

Развиваю идею :

из этого описания интерфейса с помощью XSLT создаётся

XML, содержащий описание UI уже для конечной платформы,

(у каждой платформы своя XML схема)

а там у каждой платформы движок отображает в родные

элементы управления.

 

При таком подходе (ключевое слово XSLT) проще дорабатывать

абстракцию, т. к., с одной стороны, всего не предусмотришь,

в XSLT добавить всегда можно,

с другой стороны, появляется легальный способ использовать

фичи, уникальные только для одной платформы.

 

Посмотри пожалуйста сюда http://www.xulplanet.com/ и выскажи свое мнение.

 

 

Good luck!

Alexander Molchevsky

On Fri, Mar 16, 2007 at 11:36:54AM +0200, Alexander Molchevsky wrote:

Привет Владимир!

 

А как ты смотришь на библиотеку UI которая предоставляет для прикладного программера некий усредненный программный интерфейс а с другой стороны интегрируется в библиотеки UI для конкретной платформы? То есть является

 

Вставлю свои 2 копейки:

Подобный подход у RAPID Ada http://rapid.martincarlisle.com/

Может будет интересно взгялуть... Некоторые платформы там устарели, например, тотже GtkAda еще версии 1, но появились новые, типа .Net

--

Maxim Reznik

On Fri, Mar 16, 2007 at 06:44:25PM +0200, Vladyslav Kozlovskyy wrote:

 

Предлагаю совсем уж фантастический вариант: отталкиваться не от абстракции юзер-интерфейса и виджетов а от более высоких абстракций, например

 

<Мастер-область>

[skip]

 

На мой взгляд идея перекликается с языком UIML, где тоже есть

асбтрактные элементы интерфейса, разделение внешнего вида и

содержимого, высокая переносимость и пр.

 

http://en.wikipedia.org/wiki/UIML

 

Есть даже реализации этого дела под разные платформы и языки.

 

--

Maxim Reznik

On Fri, Mar 16, 2007 at 10:54:51PM +0300, Olleg wrote:

Вопрос по JGNAT будущего, сам я с ним

еще не игрался и легче спросить чем копать документацию. :-) Там же палка о двух концах получается. Можно будет ада сорсы скомпилить в java bytecode и слинковать с java библиотекой, например с JDBC. А можно будет с помощью gcj скомпилить java библиотеку в dll и слинковаться после компиляции аda сорсов обычным GNAT'ом. Эта ситуация будет например если создавать библиотеку persistance objects на база реляционной БД и

 

Т.е. берем Java библиотеку, генерим для нее Ада-спецификацию при

помощи jvm2ada, компилим свой код + эту спецификацию обычным

gnat-ом и линкуем с результатом работы gcj над этой библиотекой. Так?

Помойму это из области фантастики, хотя идея привлекательная.

Чтобы это работало надо чтоб gcj и gnat одинакого кодировали

имена объектов в объектниках. Надо чтобы Ада runtime в jgnat

и в gnat имели одинаковый "внешний вид". Наверняка будут еще

какие-то подводные грабли. Так что если такая цель заранее

не ставилась, то "случайно" оно работать не будет.

 

Кстати, ведь нету никакого java ABI? Я имею ввиду стандарта

компиляции Java в бинарник? Каждый компилер типа gcj делает

это по своему и они не совместимы? Тогда нет смысла и

пытаться сделать gnat/jgnat совместимым с gcj IMHO.

 

--

Maxim Reznik

Maxim Reznik wrote:

Кстати, ведь нету никакого java ABI? Я имею ввиду стандарта

компиляции Java в бинарник? Каждый компилер типа gcj делает

это по своему и они не совместимы? Тогда нет смысла и

пытаться сделать gnat/jgnat совместимым с gcj IMHO.

 

Да фантастика, но если о чем-то долго мечтать то это когда-нибудь сбудется. :-) Мне просто было любопытно, фантазировали ли разработчики АдаКоре так далеко. :-) На самом деле смысл gnat/jgnat делать совместимым с gcj есть, т.к. они все входят в один проект, gcc. Вплоть до смешивания кода gcj и jgnat, т.к. по сути это два компилятора из одного пакета gcc под одну платформу jvm с разных языков и у них вполне может быть много общего.

 

-- Olleg Samoylov

Vladimir Teplouhov wrote:

Максим

слепил wiki на Ада, так что теперь с подобными работами все еще проще...

 

Где?

 

-- Olleg Samoylov

Vadim Godunko wrote:

Хорошие вопросы, вот только слегка поменяю их порядок.

> Какие задачи требуют работы в реальном времени?

 

Считывание и аггрегирование сетевого трафика по внешнему и внутреннему ip. Решена путем запуска демона написанного на С++ на отдельно выделенной машине. Т.к. нагрузка редко поднимается выше 15% принято постулировать, что все это очень близко к реал тайм. :-) Потом эта информация за 10 мин посылается дальше. В качестве "сохранной связи" используется обычный email. :-)

 

Какие задачи создают наибольшую нагрузку на оборудование?

> Как перекликаются эти задачи?

 

Дальнейший аналализ трафика с отъёмом денег. Реал тайм задачей назвать сложно. В иделе что было перехвачено за 10 мин хорошо бы было бы обсчитано за 10 мин. На практике, учитывая 4 головый сервер, совсем неплохо когда 10 мин лог обсчитывается за 40 мин (на одной голове). Но бывает хуже когда поднимается "энтропия" трафика, тогда недообсчитанные логи за день догоняют за ночь, когда энтропия падает. Тут к сожалению сейчас эта часть работает на postgresql и его plpgsql (в одной транзакции). Возможностей для оптимизации в рамках postgresql практический нет, код для sql функции не большой, зато большие таблицы. Хорошо бы ворочить этими данными самостоятельно, тогда можно наоптимизировать.

 

Вот, связи с этим очень хочется отказаться от SQL базы данных для этой задачи. SQL вообще не язык программирования, а интерфейс пользователя, типа шелла и хочется с ним вообще не связываться, эта прослойка пользы не дает, только все неоправданно осложняет. Раздражает формировать текстовый запрос который потом кем-то анализируется вместо прямого вызова метода. :-) Хочется что-то вроде persistence object, объектно-ориентированной базы данных, файловой БД типа berkleybd, ведь все равно взаимодействие между серверами будет не на SQL, поэтому БД может быть не сетевой, а локальной. Где-то я видел ссылку на FIBPlus для Ада, может быть это то, что я ищу, кто знает...

-- Olleg Samoylov

 

-- Olleg Samoylov

Alexander Molchevsky <jolly-fellow <at> yandex.ru> writes:

 

Посмотри пожалуйста сюда http://www.xulplanet.com/ и выскажи

свое мнение.

 

Проблема в том, что XUL - не единственный в своём роде.

Я обшарил сетку, накопал ссылок :

 

Страницы со ссылками :

XUL Grand Coding Challendge 2004

http://xul.sourceforge.net/counter.html

http://article.gmane.org/gmane.comp.lang.xul.announce/403

 

XML Markup Languages for User Interface Definition

http://xml.coverpages.org/userInterfaceXML.html

AAIML, AUIML, XIML, XUL, XAML, UIML, Web DynPro,

Seescoa XML, UsiXML, XForms, XSWT, WSUI, XUP,

XML Events, eNode UI Markup Language

 

(GIML)

http://gitk.sourceforge.net/links.html

UIML, XUL, AUIML, XForms, GLADE, Renaissance, XIML, useML, AVANTI

UsiXML.org links page

http://www.usixml.org/index.php?view=page&idpage=100

AAIML, AUIL, AUIML, CCXML, D3ML, DISL, EMMA, eNode, GIML,

GladeXML, IDS Use of XML, IMML, InkML, InTml, 3dml, ISML,

MAWL, MDML, MPML, MRML, MXML, OpenLaszlo, Plastic ML,

Prado, SeescoaXML, RIML, Sisl, SSIML, SunML, UIML, VHML,

VoiceXML, VRML, XAMJ, XAML, XDL, XICL, XIML, XIN-XML,

XISL, XMMVR, XUL

 

A Review of XML-compliant User Interface Description Languages

http://www.isys.ucl.ac.be/bchi/publications/2003/Souchon-DSVIS2003.pdf UIML, AUIML, XIML, Seescoa XML, Teresa XML, WSXL, XUL, XISL, AAIML, TADEUS-XML ------------------------------------

Проекты :

 

XUL

http://www.mozilla.org/projects/xul/

cross-platform

 

Luxor XUL

http://luxor-xul.sourceforge.net/talk/vanx-jul-2002/slides.html

Java, Web Start

 

Glade

GTK

 

Abstract User Interface Markup Language Toolkit (!)

http://www.alphaworks.ibm.com/tech/auiml

Java Swing & HTML, Eclipse

 

 

 

Scalable Vector Graphics

http://www.svg.org/

SVG

 

XML-RPC

http://www.advogato.org/xmlrpc.html

(not UI)

 

XUP - Extensible User Interface Protocol (outdated?)

http://www.w3.org/TR/xup/

SOAP, Web

 

SwiXml

http://www.swixml.org/

Java

 

Transforming live XML Data into Dynamic HTML/CSS

Graphical User Interfaces Through Advanced XSLT Programming

http://www.dreamlight.com/interface/netscout.html

HTML, CSS, XSLT, Web

 

Qt Designer User Interface Compiler

http://doc.trolltech.com/4.2/uic.html

Qt

 

User Interface Markup Language

http://searchwebservices.techtarget.com/sDefinition/0,,sid26_gci213743,00.html UIML

 

UTML : an appliance-independent XML user interface language

http://portal.acm.org/citation.cfm?

id=313009.313128&coll=portal&dl=ACM&

CFID=15151515&CFTOKEN=6184618

 

Laszlo

http://www.laszlosystems.com/

Web

 

Ultrid

http://www.hotscripts.com/Detailed/37693.html

Java

 

W3C stds&recs (HTML, XSLT, SMIL, SVG, ...)

http://www.w3.org/UI/

 

An XML-Based Runtime User Interface Description for Mobile

Computing Devices

http://www.springerlink.com/content/f00r1wh068yvmm6m/

Mobile, Java

 

SAP Library

UI sync server<->client

Web

 

A XML Schema Definition based Universal User Interface

http://www.citebase.org/abstract?id=oai:arXiv.org:cs/0609025

XSD

 

Web User Interface

http://wui.sourceforge.net/wui-overview.php

WUI

 

XML for Easy User Interface Scripting

http://www.download.com/XEUS-XML-for-Easy-User-interface-Scripting/ 3000-7241_4-10301838.html

XEUS (not UI)

 

Это даже не полный список, но самые видные.

 

Здесь на самом деле всякая всячина, одни позволяют общаться хоть голосом, другие - через консоли-терминалы, в одних позиционирование

координатами, в других относительные единицы.

 

Материала слишком много, чтобы сразу всё охарактеризовать.

Причём некоторые разновидности могут быть конечным представлением XML, а некоторые, вполне возможно, и начальным.

 

К начальному представлению я предъявляю такие требования :

Избегать координат. Вместо этого предоставить конечной

системе заниматься выравниванием и отступами.

 

Как можно большая база сюжетов. Всякие диалоги открытия,

сохранения файла, печати и т. д. должны быть системными.

 

Конечные представления должны быть, напротив, как можно более

конечными. Так что здесь Glade XML, QtDesigner XML, XAML,

Renaissance будут вполне уместными, т. к. созданы

специально каждое для своей платформы.

On Mon, Mar 19, 2007 at 10:38:26PM +0300, Olleg wrote:

Vladimir Teplouhov wrote:

Максим

слепил wiki на Ада, так что теперь с подобными работами все еще проще...

 

Где?

 

 

Да пробовал такое дело. Описание тут:

http://www.ada-ru.org/wiki/wiki_ru

Попробовать тут

http://www.ada-ru.org/wiki/sandbox

Можно создать новую страничку xxx пойдя по адресу

http://www.ada-ru.org/edit_wiki/xxx

 

Если кому-то надо исходники этого чуда, конечно дам.

 

--

Olleg Samoylov

 

--

Maxim Reznik

Maxim Reznik wrote:

 

http://www.ada-ru.org/wiki/

Результат:

 

Internal Server Error.

Please, send the following information to the Web Master, thanks.

 

Exception name: AWS.RESOURCES.RESOURCE_ERROR

Message: aws-resources-files.adb:95

Call stack traceback locations:

0x8190ae1 0x8190b75 0x81a164e 0x80561fa 0x8114f29 0x821d5fb 0x820ccc5 0x81bdff3 0x81ba854 0x834737a 0x8346192 0x8372a47

Новое сообщение:
< Страницы: 1 2

Чтобы оставить новое сообщение необходимо Зарегистрироваться и Войти