Язык программирования J против языка программирования R против Incanter - PullRequest
17 голосов
/ 15 сентября 2009

Кто-нибудь пробовал оба языка программирования J от jsoftware и R . После некоторого поиска я столкнулся с заклинателем , основанным на clojure. Я хочу выучить статистический язык для анализа данных. Какой из них вы предпочитаете? Зачем?

Пожалуйста, рассмотрите условия ниже, спасибо.

  • Производительность
  • производительности
  • сообщество
  • библиотека
  • синтаксис

Ответы [ 3 ]

11 голосов
/ 16 сентября 2009

Вопрос, похожий на этот, был задан недавно на форуме J. Это был мой ответ:

Я нигде не знаю R так же хорошо, как J, но, учитывая этот отказ от ответственности, мои впечатления:

J

  • сильный математический фокус
  • концептуальная основа для работы с массивами данных является очень общей, последовательной и хорошо продуманной.
  • код краткий / краткий
  • объектно-ориентированная парадигма доступна, но необязательна

R

  • сильный статистический фокус
  • объектно-ориентированная парадигма распространена
  • зрелая / мощная прорисовка и графика
  • большая база пользователей
  • доступно много пользовательских пакетов
  • синтаксис для ввода / управления массивами кажется неуклюжим
  • код относительно многословный
  • более доступная и обширная документация

Если бы мой основной фокус был статистическим, то я думаю, что R был бы очевидным выбором. Однако я считаю, что функции манипулирования данными J более простые и мощные. Таким образом, мое текущее решение «сделай так, как есть», это использование J для создания и обработки данных, а затем использование его интерфейса Rserve для доступа к функциям / пакетам из R по мере необходимости. Однако до сих пор мое использование R было "легким".

8 голосов
/ 16 сентября 2009

Производительность

библиотека

Производительность во многом зависит от доступных библиотек для данной задачи. Если все дело в статистических вычислениях, R имеет очевидную победу благодаря огромному разнообразию библиотек. Однако, когда вам придется манипулировать / смешивать данные, J будет легче обрабатывать, и это станет намного, намного легче, если вы станете более опытным в программировании на J.

Однако вы можете иметь оба мира, используя R интерфейсы в J.

производительности

R печально известен своей низкой производительностью. Вы не должны чрезмерно использовать циклы for ни в J, ни в R. У Джи приличная производительность. Более того, J-код обычно более краткий и, следовательно, его легче изменить / переписать / оптимизировать / придумать новый алгоритм. Я нахожу "придумать новый алгоритм" большой победой.

сообщество

Сообщество R огромно по сравнению с J. Однако у вас есть плюсы и минусы. Представьте плюсы и минусы, живущие в маленькой, дружелюбной деревне и в большом городе.

синтаксис

Синтаксис J на ​​удивление непротиворечив в сравнении с R. Предсказуемость очень высока, когда вы изучили принципы.

1 голос
/ 01 августа 2011

Несколько комментариев к J, которые не были упомянуты выше: re: loops.

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

Хотя вы можете делать петли в J, часто вы можете полностью их избегать. Так что, если вы можете изменить свой подход к решению проблем, вы можете быть гораздо быстрее. Эта смена может занять несколько месяцев. Достичь этого не так сложно.

...