Какой язык я должен использовать?

Исходя из вашего описания, я думаю, что этот практический пост HCC очень актуален: https://community.hortonworks.com/questions/140060/nifi-how-to-load-a-value-in- memory-one-time-from-c.html

В итоге он использует тот факт, что UpdateAttribute имеет функцию состояния, и гарантирует, что атрибут обновляется только тогда, когда данные извлекаются из справочной таблицы.


Существует также альтернативное решение, если для вас нормально перезапустить nifi после получения обновленного эталонного значения, это называется переменным реестром, и это немного упрощает: https: // docs.hortonworks.com/HDPDocuments/HDF3/HDF-3.1.1/bk_administration/content/custom_properties.html

5
задан Ben 15 July 2012 в 03:18
поделиться

20 ответов

Прототип или не при уплотнении огромных сумм чисел Вам, возможно, понадобится скорость Java или C/C++, по крайней мере, для частей AI. Я действительно не знаю точно, что Вы делаете, но много материала AI является интенсивным вычислением. Можно найти Python, VS C имеет значение от 10 минут почти до 2 часов или больше (или со дня до месяца).

Вероятно, Ваш лучший выбор является гибридным подходом. Java/C++ или что-то для AI (я только говорю, что Java, потому что он имеет тонну библиотек, я даже, имеет книгу по Анализу данных, который обсуждает несколько библиотек в Java, которые в свободном доступе и выполняют некоторые методы). И Python/Ruby/Perl для всего остального (как веб-части).

Я не решаюсь рекомендовать PHP, потому что Вы никогда не знаете то, что можно делать. PHP, кажется, действительно сияет в сети и для связанных с сетью вещей, но после того как Вам нужно не веб-использование, это, кажется, является более громоздким, чем что-нибудь (хотя я видел ссылки на PHP, используемый как Perl/Python/и т.д. как нормальный язык сценариев некоторыми людьми).

Выбором между Python/Ruby/Perl является почти вопрос вкуса. За исключением того, что Perl имеет CPAN, который является вне чего-либо, что Python и Ruby имеют прямо сейчас. Так как Вы находитесь в запуске, широкий выбор модулей на CPAN, который можно просто хлопнуть вместе, может предоставить значение Вам в добивании цели раньше. Лично мне нравится Python по Perl (я нахожу, что объектная система Perl ужасна при создании собственных объектов, и иногда это берет меня немного, чтобы выяснить, как код, который я написал несколько месяцев назад, работает). Но я не могу отклонить значение CPAN.

Таким образом короче говоря, Вам, вероятно, нужен язык производительности для части материала AI и простоты и скорости разработки языка сценариев для всего остального, потому что запуск - все о получении продукта, сделанного как можно скорее и избиение Ваших конкурентов рынка. Я хотел бы рекомендовать Python, но на основе того, что я знаю о запусках, необходимо оценить CPAN в процессе принятия решений. Просто способность хлопнуть набор модулей вместе, которые делают то, что Вы хотите быстро, может иметь огромную ценность в запуске.

Я должен также добавить, что Perl и Python (я не уверен в Ruby, но я думаю, что к), может назвать код C скорее легко. Таким образом, Вы могли использовать C или библиотеки C++ путем создания ряда привязки к языку. Вы могли также попытаться писать все это в Perl/Python/Ruby и если это - слишком медленная перезапись что часть в C или C++ и вызове его от языка сценариев. С целой вещью запуска, переписывающей как это, может быть очень дорогим с точки зрения получения чего-то сделанного. Также, так как Вы являетесь самыми удобными в C или C++ или Java, это может стоить просто идти туда от запуска.

13
ответ дан 18 December 2019 в 05:12
поделиться

Если Вы - пользователь Mac, взглянули на WebObjects, чтобы сделать весь материал платформы, и можно сфокусироваться на написании значимого нейронного кода в Java.

-1
ответ дан 18 December 2019 в 05:12
поделиться

Что-то, что управляет памятью для Вас. Они утверждают, что это - технологическое изменение, которое дает самое большое повышение производительности. Я думаю, что фунт для фунта c# невероятно трудно разбить.

0
ответ дан 18 December 2019 в 05:12
поделиться

PHP или даже SSI были бы моим выбором для разработки прототипа в этом случае. Мое обоснование: Я не должен волноваться о системе шаблонной обработки, поскольку они оба обрабатывают системы по шаблону. Никакой смысл, напрасно тратящий время, выбирая систему шаблонной обработки для простого прототипа. SSI в особенности является востребованным выбором, у Вас все еще есть свой выбор языков для обработки CGI, и что касается возврата неатомарных данных, можно испустить JSON и затем позволить UI циклично выполняться по возвращенной структуре данных с помощью JavaScript.

0
ответ дан 18 December 2019 в 05:12
поделиться

Оценка Python:

Если Вам нужна производительность для, вычисляют - интенсивный материал, смотрят на Числовой Python http://numpy.scipy.org/ и Пирекс http://www.cosc.canterbury.ac.nz/greg.ewing/python/Pyrex/. Числовой Python является расширением Python, которое предоставляет много олдскульных числовых услуг как быстрый код C - векторная математика (существенный инструмент для работы ANN) и т.д. Пирекс является инструментом, который по существу позволяет Вам компилировать код Python вниз в собственный исполняемый файл.

С Пирексом необходимо быть осторожны относительно использования отражения, потому что это не может полностью скомпилировать код, который использует определенные отражающие конструкции (особенно местные жители () и globals ()). Я упоминаю это ограничение только потому, что и AI и исследовательское кодирование (подразумеваемый Вашим "опытным" комментарием) часто используют в своих интересах отражение больше, чем другие виды прикладных областей делают.

0
ответ дан 18 December 2019 в 05:12
поделиться

Учитывая, что не простое Приложение типа CRUD, Java мог бы быть хорошим вариантом. Смотрите на Grails (http://grails.org/), он предлагает большую часть лесов и генерации кода, которую платформа как направляющие делает, но предлагает бесшовную интеграцию с любой другой библиотекой Java или платформой там.

0
ответ дан 18 December 2019 в 05:12
поделиться

Если Вы сделали на скорую руку быстрый и грязный прототип, то это, вероятно, в Вашем интересе придерживаться чего-то, что Вы уже знаете, особенно если прототип должен представить некоторую другую часть необычной функциональности; производительность многие не быть значительным беспокойством здесь.

1
ответ дан 18 December 2019 в 05:12
поделиться

Если бы это был я, то я записал бы все это в Python, то представил бы его и записал бы узкие места в пирексе. При разработке сложных алгоритмов типа AI полезно (1) полезный для разработки на высокоуровневом языке, таким образом, можно быстро попробовать много разных подходов и (2) полезный, чтобы иметь ссылочную реализацию на высокоуровневом языке для тестирования реализации C/C++ против. Я использую Python/пирекс таким образом все время, и он работает хорошо на меня.

1
ответ дан 18 December 2019 в 05:12
поделиться

Попробуйте Python с помощью Mod_Python. Как язык, это имеет большое большое машинное обучение и модули обработки естественного языка, и действительно легко считать, изучить, и использовать.

0
ответ дан 18 December 2019 в 05:12
поделиться

Я был бы второй взгляд на чаши Грааля. Определенно легко настроить и получить работу в течение часа, и Вы все еще имеете власть Java внизу.

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

1
ответ дан 18 December 2019 в 05:12
поделиться

Вы могли бы хотеть смотреть на СТЕКЛО: smalltalk, побережье и объектная база данных драгоценного камня. Лучшая сеть, чем рубин, никакой orm и лучший язык моделирования.

2
ответ дан 18 December 2019 в 05:12
поделиться

Lisp был упомянут, но я думаю, что Схема (в особенности plt-схема) является в некотором отношении столь же хорошим выбором как Ruby/Python/Perl/PHP. Это не имеет стольких же хороших библиотек сколько некоторые из тех, которые являются минус, но большинство схем имеет превосходный ffi (внешний функциональный интерфейс), который делает это тривиальным для интеграции внешний (C код) библиотеки. Другая сила схемы является своим профилем производительности; можно часто получать близкую производительность типа C-кода на материале перемалывания чисел.

2
ответ дан 18 December 2019 в 05:12
поделиться

Если бы Вы привыкли к стеку/среде Unix, я пошел бы для Python - хороший и легкий.

Править: Можно реализовать часть перемалывания чисел в C или C++ и сделать это модулем для использования в коде Python. Таким образом, Вы получаете быстрый код перемалывания чисел и легкое к программе связующее звено.

2
ответ дан 18 December 2019 в 05:12
поделиться

Я думаю, что Perl был бы способом пойти. Проверьте Американского лося для ООП Perl, и что касается других библиотек Вы ищете, я уверен, что Вы найдете некоторых из них на CPAN (возможно, что-то как Байесовские модули)

3
ответ дан 18 December 2019 в 05:12
поделиться

Я соглашаюсь с другими ответами, которые рекомендуют Java, тем более, что Вам, возможно, понадобится, это - скорость в коде AI, и для библиотек и т.д., которые доступны.

Комбинация Java (сервлеты) и JSP, вероятно, работала бы приятно.

Однако причина записи этого ответа состоит в том, чтобы больше всего настоятельно рекомендовать:

Пойдите с тем, что Вы знаете.

Новые языки или, которые Вы "вид" знаете, являются большими для забавного материала, и даже для некоторых проектов разработки и разработки прототипа. Но если Вам нужно что-то, что будет работать на Вас в конечном счете, использовать лучший язык для задачи, КОТОРУЮ ВЫ УЖЕ ЗНАЕТЕ. В этом случае я думаю (из Вашего сообщения), это был бы Java.

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

Удачи,

- R

4
ответ дан 18 December 2019 в 05:12
поделиться

Я думаю, что Java сделал бы Вашу жизнь самой легкой.

  • скорость разработки - Вы сказали, что Вы уже знакомы с нею.

  • существующие библиотеки AI - проверяют JOONE

  • простота взаимодействия с веб-интерфейсом - сервлеты, JSP, слишком много веб-платформ для списка.

Java также интегрируется легко с MySQL с помощью JDBC.

4
ответ дан 18 December 2019 в 05:12
поделиться

AI? Определенно LISP

6
ответ дан 18 December 2019 в 05:12
поделиться

Единственная вещь, которую я могу действительно прокомментировать, является этим: PHP является в основном DSL для сети, тогда как другие три (Perl, Ruby, Python) являются большим количеством языков общего назначения, которые не имеют никакого определенного домена, хотя все определенно способны к сети.

С точки зрения Вашего второго пункта маркированного списка я думаю, что PHP, вероятно, будет худшим выбором из Вашего списка.

7
ответ дан 18 December 2019 в 05:12
поделиться

Все три из Ruby, Python и Perl хороши для быстрой разработки, прототипов и веб-приложений. Я предполагаю от Вашего вопроса, что самая существенная часть этого проекта является частью AI. Perl действительно имеет множество связанных с AI библиотек по CPAN. Проверьте пространство имен AI для выборки. Существуют также модули в других пространствах имен, так удостоверьтесь, что искали определенные вещи как "Байесов" или "SVM".

Я не знаю много об опциях библиотеки AI для Python или Ruby. Моя рекомендация состоит в том, чтобы занять день или два и провести некоторое серьезное исследование на библиотеках для каждого Perl, Python и Ruby. Так как Вы уже использовали Ruby прежде, если это имеет библиотеки, Вам нужно, это - легкая задача, и Ruby является, конечно, веб-товарищеской встречей.

Насколько веб-сторона идет для Python, я услышал много хороших вещей о Django. Для Perl я рекомендовал бы смотреть на Катализатор.

Вы отметите, что я проигнорировал PHP. Это - что-то, что я пытаюсь сделать как можно больше ;)

10
ответ дан 18 December 2019 в 05:12
поделиться

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

Поскольку Вы уже указали:

  • Если Вы - единственный человек, делающий Вашу задачу на языке X, Вы собираетесь быть нелегко получать справку от кого-либо еще. Узнайте то, что другие люди уже раньше делали подобные задачи.

  • Если все хорошие библиотеки для Вашей задачи находятся на другом языке, Вы оказываетесь перед необходимостью заново изобретать много колес. Вместо Вашего вопроса спросите, о котором библиотеки делают важные части Вашей задачи, затем исследуют их. "AI" является слишком большим из темы для рекомендации чего-либо.

  • Если никто на работе не знает язык, Вы хотите использовать, даже если это будет язык быстрого прототипирования, то Вы потеряете скорость, поскольку они должны выучить язык. Изучение языка больше, чем знает свой синтаксис; это знает свои идиомы, библиотеки, документацию, и многое другое. Что делает люди на работе уже знают? Что они будут терпеть?

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

8
ответ дан 18 December 2019 в 05:12
поделиться
Другие вопросы по тегам:

Похожие вопросы: