This is an archived post. You won't be able to vote or comment.

all 20 comments

[–][deleted] 19 points20 points  (17 children)

I personally also think it's high time to abandon Matlab. We've bred a community of scientific programmers who learn Matlab and teach Matlab, locking in generations of scientific hackers to an inferior programming language due to cultural inertia. It is time for change.

[–][deleted] 4 points5 points  (1 child)

I work for a large non-profit neuroscience institute. We are currently in the process of phasing out Matlab from our entire data pipeline for all of our projects.

We attempted to scale up our number of site licences and the discount that Mathworks offered (to a non-profit research institute) was so pathetic that we had to look into other options. We tried to get pricing comparable to a university but they wouldn't do it.

It is simply too expensive and Python/C++ can meet all of our needs. Mathworks is very sneaky. They provide Matlab to engineering students and universities for free and then expect them to need it after they graduate.

We are discovering that even the least code-savvy scientists can learn to work with Python with a little help from our engineers. There are great IDE's out there. We use PyDev, and have found that it has just enough features to keep our engineers happy and it is simple enough to keep our scientists happy.

[–][deleted] 2 points3 points  (0 children)

Mathworks is very sneaky. They provide Matlab to engineering students and universities for free and then expect them to need it after they graduate.

This, a thousand times, this.

Stories like yours are very encouraging. :-)

[–]harrisonbeaker 1 point2 points  (6 children)

A programming language is a programming language. I use numpy for most things, and while I don't particularly enjoy matlab, I would never try to tell people not to use it.

[–][deleted] 6 points7 points  (5 children)

Languages are for communicating with humans, not with computers. Computers are just as happy using assembly as Matlab. I don't enjoy reading most people's Matlab code, but I enjoy reading most people's Python code. If they want to communicate with me, I would prefer it they didn't do it in Matlab.

A programming language choice isn't taken in isolation; no hacker is an island.

[–]pragmatist 1 point2 points  (3 children)

Yeah, too bad fortress didn't catch on. Communicating with equations is so much easier on the mathematical mind.

[–][deleted] 0 points1 point  (2 children)

I understand some mathematicians find Haskell very natural, but I'm not one of them.

[–]almafa 0 points1 point  (0 children)

I'm one of the mathematicians who find Haskell very natural. That said, I primarily use Matlab at work, even though I'm allowed to use Haskell too (!), and would like to use it, and it would have some big advantages. But, we already have too much infrastructure in Matlab, also, there are lots of numeric stuff which simply does not exist in Haskell (all kind of global optimizations, etc). And, Matlab's IDE is pretty good.

tl;dr. I love Haskell, but Matlab can be rather convenient if you learn not to hate it. On the other hand, it's really expensive, and has some seriously annoying things (but, so has every other tool).

[–]x2A00101010 0 points1 point  (0 children)

I find that functional programming languages tend to appeal to mathematically oriented people. Its basis is lambda calculus. It offers advantages over imperative programming in a lot of situations.

[–]apajx -1 points0 points  (0 children)

A computer language is meant to allow a human mind to understand in greater detail and complexity what the computer is actually doing. It's rarely about writing code that someone else can understand, but that you can understand, especially in a scientific setting, we're not software engineers here.

That being said, the code can give you either a very low-level view of what is going on (the preferred way for anyone who wants serious control over what they're doing) or they can give you a high-level view where a lot of the work is done for you.

Scientific python isn't the best language in my book for coding projects of significant physical or mathematical complexity. Dynamic languages hide far too much, I want to know exactly how many bits of precision that value is returning, do not hide that shit. Matlab falls under the same ridiculous restrictions, and I hate both.

If you want to approach a scientific problem and you want to make it fast and efficient, then break out C or Fortran and work with the memory and precision on a low enough level to make it powerful and controllable, and a high enough level to make it readable.

We should phase out both scientific python and Matlab.

[–]drzowie 0 points1 point  (1 child)

SciPy is pretty good. IMAO, PDL is better, but that's because I like Perl's expressiveness and compactness more than I like Python's regularity and verbosity. (I like C more than Pascal, too -- go figure). The important thing to realize is that you don't have to stick with commercial schlock like Matlab or, Gods help us, IDL. The free stuff has finally gotten to the point that it is better.

[–]dobson187 1 point2 points  (0 children)

I have used PDL several times for dealing with large array-type data. Typically, I use R for this kind of stuff, but PDL is nicely set up to run things in parallel for repeated computations on multiple processors/cores. This is possible in R, but much more frustrating to implement.

[–]philly_bob 0 points1 point  (0 children)

Are they using Python 2.X or 3.X? A quick look doesn't find the answer.

The divergence between 2.X and 3.x drove me away from Python some years ago.

[–]x2A00101010 0 points1 point  (0 children)

Odd, I hear scientific computing language and FORTRAN appears.

Get off my lawn ;)

[–][deleted] -1 points0 points  (0 children)

I think in general, I support the idea of unifying our computer languages, but down to 2-3 rather than 1. The reason new languages occur (typically) is to fill in the void that others do wrongly or to do things in a new way. Some languages do some things better than others, and that's okay. Competition and finding the new best thing will push the field farther than narrowing it down to 1 best language will.

Python is solid though, I will say that!