Я довольно много занимался реализацией генетических алгоритмов (такой метод оптимизации из области эволюционных вычислений). Это не совсем то, чем занимаетесь вы, но вполне возможно что по сути будут похожие задачи. Исходя из своего опыта у меня сложилась связка: питон для прототипов и задач, в которых меня устраивает скорость, и С++ для тех мест, где надо сильно оптимизировать по скорости и питона не хватает.
В рамках текущего вопроса я за питон. Во-первых он простой для освоения и на нём можно писать быстро и понятно (экономия времени на освоение и разработку). Во-вторых, на нём можно писать довольно быстрые программы, есть много библиотек для эффективных вычислений (numpy/scipy/pandas/...). До С++ очередь может и не дойти. Скажем, весьма быстрый алгоритм BWT (который используется для картирования ридов на геном) я писал на питоне и до плюсов очередь в моём случае не дошла, мне хватило (главное ускорение было от правильной реализации алгоритма, а не от языка).
C++ хорош по части скорости, но тяжёл для освоения. Я бы забил на данном этапе. К C++ можно перейти от питона, когда будет выбран ресурс последнего. Java во многом похожа, но лично мне не нравится (вкусовщина) — код получается многословней, чем в C++, а скорость скорее меньше.
MATLAB весьма своеобразен и специфичен, некоторые вещи на нём писать неудобно (хотя если всё сводится к перемножению матриц, то это хороший вариант). Ещё и денег стоит немалых.
R, ну не знаю. Можно попробовать, но мне кажется, что питон для этого лучше и скорее всего быстрее. Хотя если нужно прям много статистики или готовых конкретных пакетов, то вариант. Если аргумент за R — это интерактивность, то со стороны питона есть IPython.
.NET и его языки (VB, C#, ...) может и хороши по-своему, но я бы не стал завязываться на эту платформу. С питоном проще, можно работать на любой системе без геморроя. В случае C# времени на освоение уйдёт вряд ли меньше, чем на Java. Про VB .NET ничего не знаю, но скорее всего главное его преимущество в данном месте — это лёгкость перехода, а во всех остальных местах (в первую очередь в скорости) будут провалы.
Всякую экзотику типа ассемблера, хаскела и прочих особенных языков я бы воспринимал как троллинг.
Perl в данном месте ничем не лучше питона, да ещё и фактически умирает. Ruby хорош, но в данной задаче опять же не лучше питона. Не исключаю, что интересным вариантом под определённый класс задач может быть Erlang (легко создавать независимые процессы-агенты), но вам вряд ли стоит в него ввязываться, одного его не хватит (ещё потенциально любопытный вариант — Go, но тоже не надо на данном этапе). Среди новых языков может и есть что-то хорошее, но лучше взять проверенное эволюцией :)
no subject
Date: 2015-01-11 01:16 pm (UTC)В рамках текущего вопроса я за питон. Во-первых он простой для освоения и на нём можно писать быстро и понятно (экономия времени на освоение и разработку). Во-вторых, на нём можно писать довольно быстрые программы, есть много библиотек для эффективных вычислений (numpy/scipy/pandas/...). До С++ очередь может и не дойти. Скажем, весьма быстрый алгоритм BWT (который используется для картирования ридов на геном) я писал на питоне и до плюсов очередь в моём случае не дошла, мне хватило (главное ускорение было от правильной реализации алгоритма, а не от языка).
C++ хорош по части скорости, но тяжёл для освоения. Я бы забил на данном этапе. К C++ можно перейти от питона, когда будет выбран ресурс последнего. Java во многом похожа, но лично мне не нравится (вкусовщина) — код получается многословней, чем в C++, а скорость скорее меньше.
MATLAB весьма своеобразен и специфичен, некоторые вещи на нём писать неудобно (хотя если всё сводится к перемножению матриц, то это хороший вариант). Ещё и денег стоит немалых.
R, ну не знаю. Можно попробовать, но мне кажется, что питон для этого лучше и скорее всего быстрее. Хотя если нужно прям много статистики или готовых конкретных пакетов, то вариант. Если аргумент за R — это интерактивность, то со стороны питона есть IPython.
.NET и его языки (VB, C#, ...) может и хороши по-своему, но я бы не стал завязываться на эту платформу. С питоном проще, можно работать на любой системе без геморроя. В случае C# времени на освоение уйдёт вряд ли меньше, чем на Java. Про VB .NET ничего не знаю, но скорее всего главное его преимущество в данном месте — это лёгкость перехода, а во всех остальных местах (в первую очередь в скорости) будут провалы.
Всякую экзотику типа ассемблера, хаскела и прочих особенных языков я бы воспринимал как троллинг.
Perl в данном месте ничем не лучше питона, да ещё и фактически умирает. Ruby хорош, но в данной задаче опять же не лучше питона. Не исключаю, что интересным вариантом под определённый класс задач может быть Erlang (легко создавать независимые процессы-агенты), но вам вряд ли стоит в него ввязываться, одного его не хватит (ещё потенциально любопытный вариант — Go, но тоже не надо на данном этапе). Среди новых языков может и есть что-то хорошее, но лучше взять проверенное эволюцией :)