Live data from Hacker News

Matlab is oversold as a general-purpose language

abandonmatlab.wordpress.com

11–20 of 104 posts

Re: Matlab is oversold as a general-purpose language

#12
post #8

For something to be oversold... it has to be sold as something in the first place. I work at a company which uses Matlab extensively. I don't think anyone here views Matlab as a general-purpose language, even though you can put together some fairly fancy things in it. What we do view Matlab as is an exceptional domain-specific matrix manipulation and data visualization language. The IDE is exceptionally easy to use,…

I've been working with Matlab for years and have been quite intrigued by claims that SciPy is the new, better, Matlab. But every time I tried it, it felt like a cheap knockoff.

For example, let's say I want to apply DCT to a matrix. In Matlab it's simply dct(A). How do you do that in Python? Well, there's scipy.fftpack.dct, but when I try it, it turns out it operates on the rows of A, instead of the columns. So I start searching the help, and find there's a parameter called "axis", with the useless description "Axis over which to compute the transform." So I try axis=1, axis=2, then finally axis=0, and presto, it works. So sure, it's functionally equivalent to Matlab, but do I really want to go through all this every time I want to accomplish a simple task?

Re: Matlab is oversold as a general-purpose language

#13
post #3

I'm surprised he's not railing against LabView and Origin too.

Random "LabVIEW isn't a general purpose programming language...except it kinda is" story:

About a decade ago, my then-boss dragged me to a weeklong LabVIEW training course. The course was geared toward scientists and engineers (like my boss — I was sysadmin/programming/IT), and the instructor wanted people to bring data, problems, etc. from their own research to work on during the "hands-on" afternoons. I didn't have research, but I did notice that LabVIEW could open TCP sockets...

By the end of the week, I had written a barebones graphical MUA (e-mail client) that could read mail via POP3 and send via SMTP. "Written" entirely in LabVIEW. (The "code" was spaghetti – tons of boxes of all sizes and a rats nest of wires connecting everything together.)

The instructor asked for a copy to take back to NI, and I'd like to think that some NI engineers got a good laugh and/or vomit out of it.

Re: Matlab is oversold as a general-purpose language

#14
Here's what MathWork's website says:

----------------------------------------------------------

MATLAB® is a high-level language and interactive environment for numerical computation, visualization, and programming. Using MATLAB, you can analyze data, develop algorithms, and create models and applications. The language, tools, and built-in math functions enable you to explore multiple approaches and reach a solution faster than with spreadsheets or traditional programming languages, such as C/C++ or Java™.

You can use MATLAB for a range of applications, including signal processing and communications, image and video processing, control systems, test and measurement, computational finance, and computational biology. More than a million engineers and scientists in industry and academia use MATLAB, the language of technical computing.

----------------------------------------------------------

I work at a place where people use (and abuse) MATLAB a lot. The thing is, they're not programmers. As smart as they are (and they are truly brilliant) they're not especially good with computers, programming or computer science. If they tried to use a 'real' programming language, things would undoubtedly be even worse!

MATLAB is awesome at giving you powerful functions baked right in. That's good because people who aren't good at coding efficiently don't have to. Instead of messing up the whole program from start to finish, they only mess up the top level and that often isn't as big of a deal as messing up the small components that get used again and again and have to be as efficient as possible.

I agree that MATLAB isn't a general purpose programming language, but I don't think that that's how MathWorks is really selling it (note that "[creating] applications" is at the end of the list and analyzing data is at the beginning). They're mainly saying it's good for solving a specific group of problems - those that technically minded people (like scientists, engineers, economists and financial analysts) have to solve. I actually agree, especially when you take into consideration the fact that the people who really like MATLAB the most aren't really into programming or even that good at it.

Of course that's just my opinion. I'd like to hear how you guys disagree with me.

Re: Matlab is oversold as a general-purpose language

#15
The author is totally biased, but that doesn't mean he is wrong. If the bias offends you, you aren't the target audience. I personally have experienced several of the things he rants about, so I know his pain and now as a policy refuse to produce additional IP in that ecosystem. When friends ask me for help, I now send them a python script.

The rage doesn't really come from MATLAB (every language has warts); the rage comes from being forced by the social conditions of the academic workplace to collaborate on problems with totally inappropriate tools. Nobody wants to hear about how you've been procrastinating with python or git... they just want to push some new parameters into the lab's creaky matlab model and publish a new paper.

Anybody who---as the lab's "code guy"---has been handed a disk full of broken, undocumented Matlab code that mysteriously no longer works after the latest update knows what I'm talking about.

Re: Matlab is oversold as a general-purpose language

#16

Here's what MathWork's website says: ---------------------------------------------------------- MATLAB® is a high-level language and interactive environment for numerical computation, visualization, and programming. Using MATLAB, you can analyze data, develop algorithms, and create models and applications. The language, tools, and built-in math functions enable you to explore multiple approaches and reach a solution…

I'm curious... is the matlabbing that happens at your work related to the simulink/realtime/control parts of matlab? Based on the other things you've said it sounds to me like that might be the case. Obviously I might be wrong.

In any case, I've found that those parts of matlab can actually be used pretty effectively. I think the reason is that, even though matlab as a language is pretty crappy (IMO), these domains aren't actually dominated by programming languages. Take for example industrial control. It's extremely common to use PLC's, PAC's or FPGAs. These tools are, like simulink, largely operated via proprietary graphical environments.

Essentially, I agree with your points for uses of matlab where you don't write much custom code, and/or where your custom code is very insulated from the 'real world' and even from the rest of the system.

Re: Matlab is oversold as a general-purpose language

#18
From the article:

> The first problem is that the MathWorks actively markets MATLAB as a “general purpose programming language” with all the trappings, something which it is manifestly not.

From MATLAB site http://www.mathworks.com/products/matlab/ :

> MATLAB® is a high-level language and interactive environment for numerical computation, visualization, and programming.

"high-level" != "general-purpose". The author grossly misrepresents Mathworks' stance regarding MATLAB

Re: Matlab is oversold as a general-purpose language

#19
post #16

Here's what MathWork's website says: ---------------------------------------------------------- MATLAB® is a high-level language and interactive environment for numerical computation, visualization, and programming. Using MATLAB, you can analyze data, develop algorithms, and create models and applications. The language, tools, and built-in math functions enable you to explore multiple approaches and reach a solution…

I'm curious... is the matlabbing that happens at your work related to the simulink/realtime/control parts of matlab? Based on the other things you've said it sounds to me like that might be the case. Obviously I might be wrong. In any case, I've found that those parts of matlab can actually be used pretty effectively. I think the reason is that, even though matlab as a language is pretty crappy (IMO), these domains a…

We don't use simulink or anything like that - we just use the typical linear algebra stuff: Markov chains, finding eigenvalues, solving linear systems, etc.

Re: Matlab is oversold as a general-purpose language

#20

Mathematica, on the other hand, is brilliant. It's a wonderful language with wonderful libraries and functionality, and it's quite clear how to write robust code in it.

I'm not familiar with your commenting style. Is this straight up or dripping with sarcasm?
Post reply on HN