Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 2011.04.24;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.57 MB
Время: 0.006 c
15-1294522195
Юрий
2011-01-09 00:29
2011.04.24
С днем рождения ! 9 января 2011 воскресенье


2-1295512726
Dennis I. Komarov
2011-01-20 11:38
2011.04.24
Архивация


11-1233219482
chum
2009-01-29 11:58
2011.04.24
Как перевести проект с 7 на 10.


2-1295539697
Ain
2011-01-20 19:08
2011.04.24
Edit


15-1294834077
George
2011-01-12 15:07
2011.04.24
TIdHTTP.Get и Windows 7





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский