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

Вниз

Кроссплатформенный исходник   Найти похожие ветки 

 
KSergey ©   (2004-12-17 09:50) [0]

Есть некий алгоритм расчетный, который сейчас используется в программах на Win и Unix платформе (web-сервер и клиентские приложения в офисе).
Возникла мысль: а нельзя ли состряпать что-то универсальное?
Я вижу 2 основных варианта:

1) универсальный выполнимый модуль, работающий на обеих платформах.
2) универсальный исходник (на каком-то языке), компилируемый на обеих платформах.

Вот и возник вопрос к общественности: у кого какие есть идеи? Интересуют именно идеи "вообще", фантастические и проч., но желательно, конечно - реальные ;)

Да, требование: код должен исполняться (и вызываться) быстро. Т.е. универсальный в общем-то вариант реализовать в виде ХП на SQL-сервере - увы, не подходит, слишком часто вызывается. Да и SQL-сервера, вообще-то, разные. хотя тут бы в прицнипе и можно было подружить при желании.
В общем все варианты в архитектуре "некий сервер вычислений" - отметаем сразу, такие вариснты мне понятны, но, увы, не подходят (ХП на SQL, веб-сервис, отдельная программа на сервере со своим сетевым протоколом - и т.д.).

Хотелось бы именно что-то иметь на машине, где запущена задача... Ну легко интегрируемое с основной прогограммой, конечно, если это некий внешний объектый модуль.


 
vecna ©   (2004-12-17 10:16) [1]

чем не нравится ява ?


 
PVOzerski ©   (2004-12-17 10:25) [2]

FreePascal (или Delphi/Kylix, хотя я бы предпочнл 1-е) как компилятор, shared library/dll как форма реализации модуля. Исходники универсальны, для нужной платформы - перекомпиляция. У меня так реализована серверная часть (в частности, UDF-ы к MySQL) на своем сайте. "Пашет" на FreeBSD и Win32, без сомнения, применимо и к Linux.


 
KSergey ©   (2004-12-17 11:20) [3]

> shared library

Это, как я понимаю, для UNIX-платформы?
А добираться к ним из Java - примерно путь не скажете? Ну чтобы знать куды рыть...


 
PVOzerski ©   (2004-12-17 11:47) [4]

Вообще есть бесплатная (open source) библиотечка JAPI для взаимодействия FreePascal и Java. Правда, насколько я помню, она ориентирована, в основном, на работу с графикой. И не для вызова своего кода из Java-программы, а для использования из своей паскальной программы функций Java. Так что не знаю, то ли это, что надо. Но посмотреть может оказаться полезным и ее.

http://www.japi.de/


 
Александр Иванов ©   (2004-12-17 12:31) [5]

А зачем так все усложнять? Можно все написать на Яве и не тратить время на взаимодействие?


 
KSergey ©   (2004-12-17 13:03) [6]

Не, ну все будем считать - нельзя ;)
На Win платформе есть большой комплекс, реализованный на Delphi.
На Unix крутится Web-сервер, на нем - java-примочки для интерактива (прошу прощения за слова, не знаю как грамотно все это назвать).

НО есть небольшой алгоритм, который применяется и там и там, при этом хотелось бы максимально быстро и, главное(!), гарантированно идентично реализовывать этот алгоритм на обеих платформах.

PS
Впрочем, что я темню: это модуль рассчета стоимости, скидок, кол-ва и т.д. Иногда в нем меняются правила игры или просто вводятся новые параметры.
Сейчас универсальный формат - это бумажка с картинками, которая по сути 2 раза переводится под каждую реализацию. Хотелось бы переводить ее 1 раз и везде использовать ;)


 
Странник ©   (2004-12-17 13:22) [7]

а чем С++ плох?
идея использования см. PVOzerski ©   (17.12.04 10:25) [2]

делал я когда-то такую приблуду, типа драйвера для специфического девайса. Требование было Win/Lin/Free.
Под Win - MS C++ / Borland C++

Путем использования минимального кол-ва #ifdef достаточно приличный код  транслировался и работал везде.
Самый большой геморрой, как всегда, был с реализацией MS C++ - у них реализация языка отличается.


 
Igorek ©   (2004-12-17 14:24) [8]

KSergey ©   (17.12.04 9:50)
ядро на чистом С++ без библиотек, опредили интерфейс к ядру, а потом заворачивай хоть в СОМ обьект, хоть в длл, хоть статически компонуй - и все это на не кросплатформенных средах


 
KSergey ©   (2004-12-17 14:31) [9]

> [7] Странник ©   (17.12.04 13:22)
> а чем С++ плох?

На ни чем! Я даже за! ;)

> идея использования см. PVOzerski ©   (17.12.04 10:25) [2]

Осталось от наших юниксистов получить ответ "как на счет shared library". Пока не удалось ;)

> [8] Igorek ©   (17.12.04 14:24)
> хоть статически компонуй - и все это на не кросплатформенных средах

Для Win - я знаю как. Осталось узнать как это прикрутить к джаве ;)

А вообще, может я неверно акценты расставил: меня в основном интересуют какие-либо слова применительно к Unix"у и Java. Как это все запихнуть в Win - я придумаю ;)

Впрочем, некоторые слова я уже услышал. Благодарю
Хотя для коллекции было бы интересно еще какие-нибудь послушать ;) (я не говорю, что эти плохи, просто пока они не вызвали энтузазизма у юниксистов)


 
PVOzerski ©   (2004-12-17 14:56) [10]

>Осталось от наших юниксистов получить ответ "как на счет shared library". Пока не удалось ;)

Тот же код, который под Win32 компилится в DLL, в юниксах компилится в shared library. Синтаксис практически не отличим от дельфового. Естественно (ограничение ОС), не допускается экспорт/импорт по индексам. С нестабильной веткой FreePascal 1.9 под FreeBSD были мелкие проблемки, обошел :^). Если выберешь вариант с этим компилятором, на форуме есть соответствующий раздел.



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

Форум: "Потрепаться";
Текущий архив: 2005.01.09;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.48 MB
Время: 0.041 c
14-1103687945
Чеширский_Кот
2004-12-22 06:59
2005.01.09
Нет ничего хуже ремонта!


1-1103581319
karachi
2004-12-21 01:21
2005.01.09
Не работает печать в QReport


6-1098093599
Zelius
2004-10-18 13:59
2005.01.09
Проблемы с TidHttpserver.MaxConnections в Indy 9


6-1098117504
L.evil
2004-10-18 20:38
2005.01.09
Indy


3-1102326628
Linker
2004-12-06 12:50
2005.01.09
Картинка





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский