I worked at a lab at MIT this summer focusing on some research related to compression of information as it travels through the network. A lot of my work was implemented in MATLAB. This wasn't because of any particular preference on my part; it just happens that a lot of research (especially stuff that's math heavy) is built on MATLAB.
There are a lot of things I like about MATLAB. Anything to do with matrices (a simple example: creating a matrix with a bunch of zeros is just zeros(n, n)) is really easy, the documentation is generally pretty good, and it's quick to get started with the language. The feature set is awesome and, especially if you're doing something in computer vision, seeing the results of standard algorithms quickly is incredibly useful.
There are also a lot of things I strongly dislike about MATLAB. In general, it feels as if MATLAB is continually trying to stop you from writing clean, readable code. Building abstractions is unnecessarily difficult and the concept of reusable libraries seems foreign to a lot of the MATLAB community. There's no direct access to threading or any sane, generalizable concurrency framework. Also, I think it's a pretty bad sign that there's a website called Undocumented MATLAB that's dedicated using "hidden" parts of MATLAB.
Julia is supposed to take the spot of MATLAB as a language quick to pick up and sketch out some algorithms, but it also feels like a solid language built by computer scientists. Of course, if you're a Rubyist, you might not care about MATLAB to begin with, so what's the point? Well, if you're doing any sort of numerical work, Julia is definitely worth a look: it gives you the feel of a dynamic, interpreted language, with performance close to that of a compiled one. Creating quick visualizations of data is also a breeze.
Continue reading %Julia for Rubyists: Crunch Those Numbers%
by Dhaivat Pandya via SitePoint
No comments:
Post a Comment