3 ms·
I think I could have written this article a few months ago, when I was a huge Python fan and would spend a significant amount of time telling my friends in acad
by selmnoo 12y ago
I think I could have written this article a few months ago, when I was a huge Python fan and would spend a significant amount of time telling my friends in academia to stop using Matlab and start using Python.
Then I started working in a research lab myself, and I haven't used Python since. Very simply, there's an immense amount of code written for Matlab that I can learn from in domain-specific instances, hardware vendors provide Matlab example code (and not Python code), and all of my peers use Matlab. When I have a problem they can usually help me solve it, if I'd been using Python I would've been all by myself and likely unable to finish the task.
And really, these are the most important things to consider when choosing a language. As it stands, Matlab is the right language to choose, at least for me.
- bayesianhorse 12y agoBig existing codebases always hinder language adoption. But Python is becoming the lingua franca of scientific computing, owing to great open source tool and libraries. Very soon hardware vendors will always provide python example code, python "drivers" or REST-like APIs. I don't say this lightly, and this statement is hardly ever right, but in this specific instance, Python is clearly the better "language" compared to Matlab, even in scientific computing. The syntax and quirks in Python are more consistent than in Matlab and general programming is a lot easier.
- GuiA 12y ago"Research" is a wide area. I personally used Python in HCI research during all my time in grad school, and thoroughly enjoyed it. What field are you in, if I may ask?
- deleted 12y ago[deleted]
- techtalsky 12y agoWell, also consider the point she's making. So you had to switch to matlab, but you were able to, perhaps partially because you already had a grounding in programming in a language you found pleasurable.
- grayclhn 12y agoI'll make the obligatory "I hope that Julia will replace Matlab in this role soon" statement. But I also hope that infix matrix operations will make Python 3.5 more competitive in this situation too.
- neumann 12y agoThis is an important point. The right tool for the job has to take into account the existing tools inertia. Having said that, I had a similar situation at my research lab and have now almost replaced Matlab. This process was mostly organic, starting with me changing my personal post-processing workflow when I switched to IPython Notebook as a logbook and plotting library (i still use gnuplot occasionaly). Soon I started having to port bits of Matlab and C code to Python and Cython to allow me to continue using the logbook, and I found I was becoming a lot faster at creating new modules and tools, mainly because the programming component was now intricately linked to my workflow (and more fun) The tipping point was when I converted a notebook into a slideshow for a presentation I had to do for the group. Everybody was more interested in how I made the presentation then in my results, and wanted access to the new tools. I provided them with the git repo (and git tutorial), gave people notebooks I had written to log coding practices and demos of my code (I have poor memory) and encouraged people to contribute back. Getting people to contribute back is still the hardwork: Everyone is shy to share their code, but the Professors starting preferring IPython Notebooks. New code is now usually written in Python first, and sometimes ported to Matlab and even the hardcore Matlab researchers are starting to show interest because of the speed and flexibility of the new code. Basically, I found Matlab is definitely replaceable - and can only improve workflow (speed it up if nothing else). There are a few instances when specific hardware requires Win driver access through a Matlab plugin, but there are ways to interface with these too.