Какой из C # и Java является более простым и быстрым при взаимодействии с программным обеспечением для статистики / моделирования? - PullRequest
3 голосов
/ 06 февраля 2010

Во-первых, я почти ничего не знаю о сопряжении такого типа, и я впервые пробую его. Я рассчитываю использовать одну из программ статистики / моделирования для Maple, Mathematica или R для расчетов и использовать C # / Java для обработки других областей, таких как постоянство и сбор данных и т. Д.

Можете ли вы сказать мне, какая из этих платформ (.Net / Java) является более дружественной для этого упражнения с точки зрения:

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

Я понимаю, что одна платформа не может быть хорошей для всех, и одна может быть очень хорошей, скажем, клен, но слишком плохой для R. То, что я ищу, это хорошая комбинация.

И почему я не зациклен на одном из Maple / Mathematica / R? Ну, они все доступны для меня, и то, что я пытаюсь вычислить, довольно распространено и доступно во всех из них.

Так что дошло до того, что легко взаимодействовать.

Приветствия

Ответы [ 4 ]

2 голосов
/ 06 февраля 2010

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

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

Производительность по памяти требование и время, необходимое для связь между двумя программами

Память между ними схожа и в большинстве случаев будет зависеть от аспектов вашего приложения и библиотек, которые вы используете. Что касается производительности процессора, при прочих равных условиях я обычно обнаруживаю, что CLR имеет более высокую производительность, чем JVM. Однако будьте осторожны с этим утверждением. В зависимости от того, какой код и библиотеки вы используете, вы можете получить совершенно разные результаты.

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

1 голос
/ 06 февраля 2010

Есть две проблемы.

  • Подготовка данных. Обычно подойдет любой язык, но Perl отлично подходит для массирования текста.
  • Interfacing. Это сильно зависит от программы, поэтому идет другим путем. Можете ли вы говорить с ним только с помощью IPC в Unix, тогда C # отсутствует, если вы можете говорить с ним только через COM в Windows, C #, вероятно, лучше.

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

1 голос
/ 06 февраля 2010

В терминах языка вы вряд ли увидите реальную разницу. Возможно, C # приятнее, чем новее. Однако Java существует дольше и имеет гораздо больше библиотек с открытым исходным кодом. Это означает, что вы с большей вероятностью найдете библиотеку, которая использует X или Y для вас в Java.

Вот лишь некоторые из доступных библиотек Java с открытым исходным кодом. http://java -sources.org / 1 Google может помочь вам найти еще много библиотек.

1 голос
/ 06 февраля 2010

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

...