Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2011.04.24;
Скачать: CL | DM;

Вниз

Выбор технологии кросс-платформенного приложения   Найти похожие ветки 

 
Rok   (2011-01-06 17:25) [0]

Хорошо знаю Delphi, знания остальных языков минимальны.

Есть потребность написать небольшое кросс-платформенное приложение, клиента. Будет работа с БД, приложение в целом офисное / для разработчиков. Параллельно хочется узнать кухню nix"ов, освоить новое.

Планируется работа приложения в WinNT / Linux / FreeBSD.

Собственно, что выбрать?

Я хочу вначале исключить Java, штука большая и полезная, но я ее позиционирую как бизнес-среду все таки... Не хочется тащить за собой framework"и (или хотя бы поменьше тащить) и виртуальную машину.
Собственно, я знаю два варианта еще для такого типа клиентского GUI-приложения:

1) gcc + QT - ничего в них не понимаю, придется заново осваивать
2) FreePascal - насколько я понимаю, проект в настоящее время все таки сыроват.

Возможно, есть какие-то другие альтернативы? Повторюсь - в принципе, небольшая клиентская программа по работе с БД.

Кто какие технологии использовал, как впечатления? Желательно, конечно, что-то более-менее новое, актуальное, но при этом не мода на пару дней. Вот как была классикой D5-D7 в свое время для разработи под win, вот хочется найти сочетание для кросс-платформенного приложения.


 
Rok   (2011-01-06 17:28) [1]

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

Рассмотрим сочетание C++ и Qt. Насколько я знаю, последний сильно связан с KDE. Будет ли такое приложение при этом работать в среде GNOME? А в других средах типа xfce и пр.?

Вообще, приложения под *nix они в этом смысле оболочко-независимые или есть нюансы?


 
antonn ©   (2011-01-06 17:28) [2]


> Повторюсь - в принципе, небольшая клиентская программа по
> работе с БД.

"через браузер" можно все функции реализовать?


 
icelex ©   (2011-01-06 17:29) [3]


> 1) gcc + QT - ничего в них не понимаю, придется заново осваивать

значит не трогай их

> 2) FreePascal - насколько я понимаю, проект в настоящее
> время все таки сыроват.

с какого такого перепуга?


 
icelex ©   (2011-01-06 17:31) [4]


> Rok   (06.01.11 17:28) [1]
>
> Насколько я знаю, последний сильно связан с KDE.

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


 
Ega23 ©   (2011-01-06 17:33) [5]

Тонкий клиент, и нефиг изобретать.


 
DVM ©   (2011-01-06 17:34) [6]


> Хорошо знаю Delphi,

FreePascal + Lazarus уже вполне зрелый продукт


 
TUser ©   (2011-01-06 17:50) [7]

> 2) FreePascal - насколько я понимаю, проект в настоящее время все таки сыроват.

Я бы не сказал, что он сыроват. Если говорить о поддержке Delphi, то из D7 не поддерживаются интерфейсы (из широко используемого). Остальное вполне стабильно работает.

Из новомодных вещей там тоже что-то есть, например, дженерики, + если какие-то свои возможности, но про это я не скажу - не пользуюсь (мне надо чтобы код компилировался в TD и FP).

Гуи - лазарус, тоже не пользуюсь, лет 5 назад он и правда был сыроват, но сейчас, говорят, мощно шагнул вперед.


 
me   (2011-01-06 18:02) [8]

php + extjs


 
Rok   (2011-01-06 20:12) [9]


> "через браузер" можно все функции реализовать?

думал об этом.. В принципе, все в мире к этому идет. Но в данном случае хотелось поизучать кросс-платформенные среды с точки зрения написания клиента.


> Тонкий клиент, и нефиг изобретать.

имеешь в виду WEB?


 
RWolf ©   (2011-01-06 23:31) [10]

Python + wxWidgets.


 
PEAKTOP ©   (2011-01-07 13:56) [11]

> Возможно, есть какие-то другие альтернативы? Повторюсь - в принципе, небольшая клиентская программа по работе с БД.

Delphi7 + Kylix3.

Несмотря на то, что на новых ядрах Линукса Kylix "не взлетает", можно таки откомпилить приложение из конслоли. И оно (приложение) будет работать.

А благодаря приблуде в виде CrossKylix http://crosskylix.untergrund.net/ можно даже линухи не загружать, а откомпилить прямо в винде из Delphi7.


 
tesseract ©   (2011-01-07 14:32) [12]

.Net сейчас пихается во все дистрибьютивы. Почему бы не воспользоваться delphi for .Net ? Заодно и под мак и freebsd пойдет.


 
DVM ©   (2011-01-07 14:38) [13]


> Почему бы не воспользоваться delphi for .Net ?

Сам по себе это уже инвалид, так еще будет запускаться под моно. Лучше уж тогда другой язык взять, c# тот же.

Lazarus намного лучше этой связки, да и лучше чем кайликс.


 
Rok   (2011-01-07 15:15) [14]


> .Net сейчас пихается во все дистрибьютивы

ух. А .NET уже работает под линух? Я что-то пропустил... )

А какая версия .net поддерживается в mono? Насколько они вообще скорелированы?

И собственно в чем идет разработка, не в MS-студии же?


 
SegeyIT   (2011-01-07 15:52) [15]

В действительности не хватает информации что за БД, что делает клиент, сколько пользователей. Может проще на php все сделать и не портировать клиентов на разные платформы.
Ну или новые технологии поизучать, к примеру
http://www.webtoolkit.eu/wt
или что-то другое из веб...


 
tesseract ©   (2011-01-07 19:03) [16]


> ух. А .NET уже работает под линух? Я что-то пропустил...
>  )


Лет 5 жизни.


> Сам по себе это уже инвалид, так еще будет запускаться под
> моно.


Так это и есть моно. Не сказал бы, что это инвалид. Весьма неплохо для чисто прикладных решений.


> Насколько они вообще скорелированы?


Так себе. Но разрабатывать можно. Остальные кросcплатформенные чудеса еще хуже. Ну кроме wxWidgets.


 
Eraser ©   (2011-01-07 19:18) [17]

> [0] Rok   (06.01.11 17:25)


> Я хочу вначале исключить Java

а зря.

> но я ее позиционирую как бизнес-среду все таки

кто позиционирует? уже довольно давно java вполне подходит и для десктопных приложений. фреймворк весит не так уж много, сравнимо с qt.


 
tesseract ©   (2011-01-07 19:45) [18]


> > Я хочу вначале исключить Java
>
> а зря.


В таком случае  llvm исключать - преступление.


 
DiamondShark ©   (2011-01-07 20:18) [19]


>  Повторюсь - в принципе, небольшая клиентская программа
> по работе с БД.

Жабу возьми (ой-вэй, неужели это я сказал?). Она страшненькая, но пока это единственный вариант для нетрансректального создания действительно многоплатформенного приложения.

Ну и стоит ОЧЕНЬ основательно подумать над вопросом, зачем вообще нужно именно кросплатформенное приложение.


 
Eraser ©   (2011-01-07 23:05) [20]

Кстати, еще есть такая вещица как Wine. Сейчас очень хорошо работает уже.


 
XXL   (2011-01-08 12:30) [21]


> Eraser ©   (07.01.11 23:05) [20]
> Кстати, еще есть такая вещица как Wine. Сейчас очень хорошо работает уже.

Кстати, все мои Deplhi + IB приложения прекрасно работают под Wine.
С MSSQL или pg посложнее конечно, но тоже говорят может работать. В крайнем слуае можно и трехзвенку затулить.


 
Rok   (2011-01-08 16:12) [22]


> С MSSQL или pg посложнее конечно

ну с MSSQL понятно, а чем с pg сложнее? Он существует в версиях и под win, и под линь.


 
tesseract ©   (2011-01-08 17:42) [23]


> Он существует в версиях и под win, и под линь.


Клиентские либы то от одной оси к другой не пришьешь.


 
Rok   (2011-01-08 18:28) [24]


> Клиентские либы то от одной оси к другой не пришьешь.

это относится к любым либам. И гланый исполняемый файл программы к другой оси не пришьешь - это просто очевидно. Дистрибутивы будут разные под разные ОС.


 
Rok   (2011-01-08 18:48) [25]

есть недопонимание насчет разных версий linux. Их же существует огромное количество, во многих принята некая система пакетов, как я понимаю иногда совместимая, зачастую нет.

В общем случае - выкладывают исходник программы, написанной на C++. И каждый сам ее компилит, собирает. Основано это на том, что почти на всех линуксах есть gcc и можно откомпилить.

А вот если говорить о сочетании Lazarus + FreePascal. То, что откомпилится - для какой версии будет? Ведь gcc есть везде, к нему привыкли линуксоводы... Получается, чтобы грамотно распространить свою кросс-платформенную программу, мне нужно скомпилить ее на всех нужных ОС и выложить в виде бинарника? (потому что Freepascal вряд ли у кого найдется и вряд ли кто-то будет сильно заморачиваться установкой компилятора для одной программы).

Это все так? Популярных дистрибутивов линукса есть, наверное, с десяток штук. Плюс всякие FreeBSD. Это с выходом новой версии программы нужно подготовить 10-20 дистрибутивов программы, запуская разные ОС? Ибо фишка с исходниками как в случае C++ уже не прокатит... Что-то тут придумано или работа именно такая?


 
RWolf ©   (2011-01-08 19:04) [26]


> Rok   (08.01.11 18:48) [25]

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


 
Rok   (2011-01-08 19:08) [27]


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

а, если, например FreeBSD? Как я понимаю, там немного другая архитектура именно ОС и нативно не запустится.

Посмотрел как поставляется Firefox - есть сетап под windows, есть версия под Mac OS X, есть версия под linux. Вроде бы никаких исходников. В версии под nix есть куча библиотек .so и я так понимаю скриптовый файл запуска.

Правильно ли я понимаю, что можно делать одну версию под 32-ух битный linux и используя по возможности только стандартные библиотеки. Тогда она будет наиболее "запускаемой" - то есть, пойдет под всеми клонами linux и также пойдет на 64-ех битных платформах, которые наверняка умеют запускать 32-битные приложения?


 
RWolf ©   (2011-01-08 19:14) [28]


> Rok   (08.01.11 19:08) [27]

да, во FreeBSD другое ядро, его системные вызовы бинарно не совместимы с линуксовыми, так что линуксовые программы в BSD запускаются через linuxulator (своего рода адаптер системных вызовов, вроде WINE).

да, можно обойтись 32-битной версией приложения.


 
RWolf ©   (2011-01-08 19:20) [29]


> используя по возможности только стандартные библиотеки

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


 
DVM ©   (2011-01-08 19:43) [30]


> а, если, например FreeBSD?

FreePascal компилит под FreeBSD. Lazarus вроде тоже.


 
XXL   (2011-01-09 11:25) [31]


> Rok   (08.01.11 16:12) [22]
> > С MSSQL или pg посложнее конечно
> ну с MSSQL понятно, а чем с pg сложнее? Он существует в версиях и под win, и под линь.

Сам сервер да.
Но компоненты доступа к нему делятся на два вида:
1. Те что основаны на ADO + PgOleDB.dll = безплатные и стабильные. Тут миграция невозможна.
2. Те что основаны на прямом доступе и при этом стабильные в основном  платные, иногда очень платные.

Можно поступить иначе.
Забыть о Deplhi и программировать изначально под Linux и запускать под Windows используя cygwin/minigw/gtk+


 
Anatoly Podgoretsky ©   (2011-01-09 11:39) [32]

> XXL  (09.01.2011 11:25:31)  [31]

Это линуксовая провокация.
Нафига, стремиться на другую систему, где денег нет, все деньги на Виндоус,
и запускать используя Wine
А то я смотрю вперед, не вижу, смотрю вправл, не вижу, смотрю вперед, не
вижу влево и Линуксов вокруг не вижу. Только у провайдера, да и то не
Линукс, а Юникс.


 
DiamondShark ©   (2011-01-09 11:52) [33]


> а, если, например FreeBSD? Как я понимаю, там немного другая
> архитектура именно ОС и нативно не запустится.

Надо зайти на канал по аниме и спросить, как пропатчить кде под фрибсд.


 
tesseract ©   (2011-01-09 13:58) [34]


> Забыть о Deplhi и программировать изначально под Linux и
> запускать под Windows используя cygwin/minigw/gtk+


pthreads задавят винду в усмерть. .Net намного эффективнее таких полумер.
> Нафига, стремиться на другую систему, где денег нет, все
> деньги на Виндоус,


Не все, рынок *nix как и macos - полупуст для решений. Практически свободная ниша в отличии от виндовых - где все забито  и занято.


 
Anatoly Podgoretsky ©   (2011-01-09 14:43) [35]

> tesseract  (09.01.2011 13:58:34)  [34]

Ниша пустая, а деньги смешные.


 
Плохиш ©   (2011-01-09 15:22) [36]


> tesseract ©   (09.01.11 13:58) [34]


> Не все, рынок *nix как и macos - полупуст для решений.

Да, да, а ещё он свободен от потребителей этих решений :-)

> XXL   (09.01.11 11:25) [31]


> 2. Те что основаны на прямом доступе и при этом стабильные
> в основном  платные, иногда очень платные.

dbExpress входит в поставку Kylix3, использует библиотеку из установки самого pg. Так же имеется набор драйверов для unixODBC, драйвера которого для dbExpress так же бесплатны.


 
tesseract ©   (2011-01-09 20:44) [37]


> Ниша пустая, а деньги смешные.


macos - там очень платежеспособная ниша. Например я. И я много знаю людей готовых заплатить - у меня ни одной пиратской программы - parallels, works, iLife - все куплено. И как маковод с двухлетним стажем могу смело сказать - ниша удаленного управления и учетного ПО там почти пустая.


 
DiamondShark ©   (2011-01-10 01:15) [38]


> ниша удаленного управления и учетного ПО там почти пустая.

Какой идиот использует маки для удаленного управления и учетного ПО?
Она и будет пустая, бо нэма дурних переплачивать втрое за рабочее место эникейщика и быдлобухгалтера.
А гламурным пидорам, из которых состоит контингент макофагов чуть менее, чем полностью, кроме браузера и айтюнса ничего и не нужно.
Нафиг на статусной цацке учётное ПО?


 
iZEN   (2011-01-11 11:43) [39]


> Rok   (06.01.11 17:25)
>
> Хорошо знаю Delphi, знания остальных языков минимальны.

Придётся переучиваться.


> Есть потребность написать небольшое кросс-платформенное
> приложение, клиента. Будет работа с БД, приложение в целом
> офисное / для разработчиков. Параллельно хочется узнать
> кухню nix"ов, освоить новое.
>
> Планируется работа приложения в WinNT / Linux / FreeBSD.
>
>
> Собственно, что выбрать?

Из *nix"ов установи PC-BSD для начала.
Внутри это FreeBSD, снаружи настроенный десктоп.
Захочешь покопаться поглубже, почитай вот это: http://www.freebsd.org/doc/ru_RU.KOI8-R/books/handbook/


> Я хочу вначале исключить Java, штука большая и полезная,
>  но я ее позиционирую как бизнес-среду все таки... Не хочется
> тащить за собой framework"и (или хотя бы поменьше тащить)
> и виртуальную машину.

Ну и зря. Уже на этом ты теряешь в кроссплатформенности.


> Собственно, я знаю два варианта еще для такого типа клиентского
> GUI-приложения:
>
> 1) gcc + QT - ничего в них не понимаю, придется заново осваивать
> 2) FreePascal - насколько я понимаю, проект в настоящее
> время все таки сыроват.

GCC есть в базовой системе FreeBSD. Qt4 и FreePascal ставятся из портов.
OpenJDK6 нативный, ставится (собирается) из порта посредством "бутстрапа".

>
> Возможно, есть какие-то другие альтернативы? Повторюсь -
>  в принципе, небольшая клиентская программа по работе с
> БД.

Java SE поставляется с JDBC. Можно написать кроссплатформенную программу, использующую только JDBC-вызовы к драйверу СУБД. Озаботиться поиском драйвера желательно Type-4 (для всех популярных СУБД такие драйверы есть). И распространять только JAR-файл с программой и драйверами.


 
tesseract ©   (2011-01-11 14:25) [40]


> Нафиг на статусной цацке учётное ПО?


Ты не поверишь сколько маков стоят в кабинетах управленцев и директоров. И сколько Parallels продает своих виртуалок или Crossover своих версий Wine. Собcтвенно замечание в стиле ЛОР/опеннет - зачем мак если есть уважаемый линукс? Ни разу не видел мак в качестве статуса. Скорее как качественной вещи. И кстати ни фига не дорогой.



Страницы: 1 2 вся ветка

Текущий архив: 2011.04.24;
Скачать: CL | DM;

Наверх




Память: 0.59 MB
Время: 0.013 c
2-1295276909
Студент
2011-01-17 18:08
2011.04.24
Ищу примеры работы с интерфейсами на Паскале/Делфи


6-1236577141
kernel
2009-03-09 08:39
2011.04.24
Зависание IdHTTPProxyServer


2-1295179948
azl
2011-01-16 15:12
2011.04.24
Добавление разноцветной форматированной строки в RichEdit


4-1238870788
antonn
2009-04-04 22:46
2011.04.24
подмена координат клика курсора для определенного окна


15-1294985178
Медвежонок ХМЛ
2011-01-14 09:06
2011.04.24
УЭК