I'm taking a break from Octave, but I plan to come back to it and take Matlab head-on, not chip away at the edges.
I'm taking a break from Octave, but I plan to come back to it and take Matlab head-on, not chip away at the edges.
Anyone that isn't using those could probably switch to octave with few issues but last time I checked some functions were starting to differ (see eig)
Octave is nice when you really need to have matlab compatible files but don't have a matlab license but now everyone that I know in the sciences if they are not using matlab and don't need to use fortran/c/c++ they are using python because why keep the matlab syntax if you can gain so much by switching to another language.
EDIT: Also, although it's not opensource, I had used Mentor SystemVision eons ago in college. It now has a free web interface. I haven't tried it, but honestly, what could be worse than DxDesigner ;-)
Matlab is a crappy language, but a productive environment.
What are they?
R was much more programmable that the other systems (except S) in that time -- while the R language is not pretty, the scripting languages in SAS, Stata etc. were much worse. So R provided an improvement in people's workflow. Whereas Octave is just a free version of the same language as Matlab (with some small improvements).
So, switching from SAS, Stata, SPSS etc. to R provided an improvement in productivity, but switching from Matlab to Octave does not.
This is not the reason for why Octave has not overtaken Matlab. Maybe I should write a blog post about it.
Also, mathematicians and statisticians think functionally and the general attitude in python is to do object oriented programming while R is strictly functional programming with a little bit of object programming.
However, in my experience, for the data munging required as a preliminary to the analyses, R is worse than bad. It's as if satan himself designed a language.
I find that what then happens is this: data scientists/statisticians/[your favorite word here] become reliant on programmers to clean/format the data to do the analyses.
This is all fine, but those same scientists are then put off learning python, where they could do all of their own munging, and probably 95% of the analysis they need to do, and where they could further add value by writing programs that are easier to production-alize.
Job security for those who know how to write production code, I guess.
[1] http://opiateforthemass.es/articles/james-bond-film-ratings/
I don't know anyone who considers themselves a "data scientist" of any sort that doesn't view their job as 80% or more data wrangling/munging/cleaning.
I write production ETL processes in R at my current job. AMA.
I'm always interested in learning a new tool, though.
I have largely avoided ts, zoo, etc where possible. Time series stuff seems to have a lot of specialized tooling all of which tends to be much more strict about data structure than I'm comfortable with for my flow.
BUT perl + R was a really nice combination for a while.
A lot of package are built from matlab and not for Python, if you are a PhD student you want to use those package, not write your own, if you really really need to write some software you want to write it on top of something that already exists...
It is really sad, but it is the reality...
In grad school, if I wanted to do my own EEG connectivity analyses, I could just include the Signal Processing Toolbox, the Stats Toolbox, and crunch my own numbers. Or, if I wanted to do a more standard analysis of my fMRI or EEG data, I would turn to the world's most popular open-source toolkits (SPM and Fieldtrip), both of which require... you guessed it, Matlab.
The only place I ever found Matlab's libraries deficient for my needs was in machine learning. (I ended up doing an SVM-based spotlight fMRI analysis in Python.)
There's a lot of lock-in and quality toolboxes around Matlab, Python/Julia won't knock it over yet, though I wish them the best of luck.