-
julialang.org ?Кто-нибудь юзал
По-моему она не такая платная, как Матлаб, не такая тормозная, как Питон, и не такая отстойная, как они оба.
А ещё на видео бородатый чувак в халате, прямо как я youtu.be
Кто-нибудь скажет pros/cons?..
Replies (12)
-
@dluciv, maxima, конечно, предназначена для символьных вычислений, но при этом вполне может и в числодробление (со вполне приличной производительностью). т.е. если в задаче сначала нужно проработать математическую часть, то я однозначно возьму её, чтобы не выискивать потом горы ошибок с своих записях на бумаге, а когда дело дойдет до непосредственных вычислений, то она же замечательно с ними справится, причем не надо будет переписывать все формулы в другой вид (на другой язык).
для всякой статистики лучше сразу брать R.
а octave имеет смысл брать, либо если нужно много работать с матрицами, т.к. там это удобно сделано, либо если кроме матлаба ничего не умеешь. кроме матриц в ней ничего особенного или прикольного нет, и я никогда бы не занялся её изучением, если бы не этот курс по machine learning -
@dluciv, Я пробовал на нем диплом писать, сравнивал с python+numpy+...
Из плюсов — нормальный современный дизайн языка с прицелом на эффективное выполнение (JIT), т.е. тупо циклы не тормозят. Система типов тоже симпатичненькая.
Из минусов — когда я пробовал, там был довольно странный механизм распараллеливания (я бы предпочел openmp-like интерфейс), хотя в питоне вообще по нулям. Довольно слабое все еще наполнение библиотек. Например, для machine learning ничего вменяемого вообще не было, против прекрасного scikit-learn для питона. Для NLP вроде как тоже за последний год как грибы повылезали библиотеки для питона, насчет julia сомневаюсь.
Кажется, основные контрибуторы занимаются преимущественно всякими ЧМами и диффуры решают.
Но в целом впечатление — весьма такая sexy open governance llvm-based среда, на уровне rust, но в другой нише./8 · Reply -
@borman, Я распараллелить попробовал тоже — у меня есть для этого специальная задачка тестовая. Объём N-мерных сфер методом Монте-Карло и сравнение с аналитическим. Пытаюсь портировать на всякий язык, который увижу, если за час не получается, то либо я дурак, либо язык дурацкий, примерно так.
Получилось-то почти с первого раза за полчасика, но с распараллеливанием очень расстроило то, что оно конкретно под кластер. Т.е. если мне нужно просто SMP, я всё равно получу кластерный оверхед в полном объёме (и в вычислениях, и в программировании). В общем не сильно лучше, чем parallel gem из руби с его форками или питоновский мультипроцессинг (с форками кстати на самом деле даже легче ещё, пока до возвращения результата не дойдёщь, но их под Вендой из коробки нет, понятно).
Хотя в итоге работает раз в 10 быстрее того же Питона, да.
Насчёт системы типов, как я понял, надо почаще её носом тыкать, чтобы она не пыталась делать мультифункции там, где типы известны. И не надо присваивать в нетипизированную переменную значения разных типов, иначе она её типизирует, как Any. Если это соблюдать, то JIT будет генерить приличный код, как я понял, да? -
@anton0xf, А вот тут штука как раз в том, что надо разные алгоритмы быстро прототипизировать. Понятное дело, что потом, когда кто-нибудь из них себя очень хорошо покажет, я его возможно перепишу на Си. А сейчас на Питоне. И Питон подзадолбал своими скоростью и невыразительностью.