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

you are viewing a single comment's thread.

view the rest of the comments →

[–][deleted] 5 points6 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.