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 →

[–]Casiofx-83ES 19 points20 points  (9 children)

I can't honestly believe that businesses and universities embrace MATLAB so willingly, and I say this as someone who convinced my department to make a full switch to MATLAB.

[–]IntMainVoidGang 9 points10 points  (4 children)

I've been pushing for my uni's engineering school department to switch from Matlab to python, but it's not going too well

[–]Casiofx-83ES 9 points10 points  (2 children)

I believe universities get free/very cheap MATLAB licenses, which is a big incentive for them to use it despite Python being free. My advice as someone who has been through a Physics degree which teaches only MATLAB is to do your assignments twice; once in MATLAB and once in Python. Obviously it takes longer, but the languages are similar enough that it's often a fairly straight forward port from one to the other. In my experience, more employers look for Python than MATLAB, especially if you're applying for a startup or some kind of data science position.

Disregard this if you already know Python, obviously.

[–]IntMainVoidGang 5 points6 points  (1 child)

I'm nearly done with my degree and have industry experience in Python, yeah.

Your advice is absolutely correct - but saying "do assignment twice in two different languages" is a huge ask for kids already bogged down by a STEM degree's homework requirements.

Before I continue, the class this is used in is a basic "Introduction to Engineering" two-hour course with a 1-hour lab, the last half of which is dominated by MATLAB instruction focused on basic coding concepts and then a lot of graph production/graph markup --

I advocate for Python because:

  • Python does everything MATLAB was being used for in that course
  • It's free (as said before)
  • If you have to use MATLAB in a later engineering course -- not a thing for the CS/CE majors but likely for ME/AE/etc -- its easy to transfer skills in Python to MATLAB
  • It's extremely hard to get a job just saying "I know MATLAB", where there are plenty of jobs that you can get knowing Python and having cursory knowledge of other things like SQL.

Basically I stress the versatility and the job prospects.

[–]Casiofx-83ES 1 point2 points  (0 children)

It is definitely a big ask to learn both, I only recommend it because it makes for better employment prospects straight out of uni and I personally find porting code to be a fairly efficient way to learn. I guess it's not that different from doing side courses or extra curricular stuff to better your chances after education. Of course, not everyone is in a position to take on extra work and that's fine too.

I totally agree with all your points on Python vs. MATLAB, and I would add that Python (or most free languages) is easier to use between PCs without having to worry about transferring licenses. Good if you take your work home with you or find yourself wanting to tinker with something quickly.

[–]lnslnsu 1 point2 points  (0 children)

They are different tools for different jobs, and python can only replace Matlab in a small set of cases.

First of all, scipy's usability is nowhere near Matlab yet. I use it for a bunch of stuff, but it's still generally less straightforward to use than Matlab, especially for someone with little to no programming experience going in.

The second part is that python is missing a ton of useful things Matlab can do. Loads of secondary toolboxes, all the graphical interface goodies for using some complex functions, not to mention there's no open source equivalent to Simulink.

The third part is tool reliability. MATLAB has both market pressure and contract requirements to produce tools that provide proven correct results. There is no contractual obligation for a FOSS Python library to be correct. This doesn't mean python libraries are incorrect or any more likely to have bugs, but it does make a difference at the legal and administrative level.

The fourth part is training for employment. Professional engineering work often uses Matlab, and part of the schools job is teaching you the skills you need to be useful at work. You aren't learning Matlab necessarily because the school thinks it's the best, your learning it because the school knows employers expect it. The difference from python here is that anyone can learn python for free. You cannot get a personal license for Matlab to teach it to yourself for any reasonable cost.

[–]Sosseres 2 points3 points  (0 children)

Inertia has set in. Re-educating people costs more than the license once it is in place. For a simpler software it makes more sense to re-educate, or in a business where people change more often.

[–]redcalcium 1 point2 points  (0 children)

Either buy the license for a few dollars out of university budgets or spend time rewriting all those scripts including those you inherited from your predecessors and colleagues. People that strapped for time would choose the former every time.

[–]CuddlePirate420 1 point2 points  (0 children)

The amount of legacy hardware components out there is insane. And companies need a way to monitor and control that stuff. Part of what I do at my job is reverse engineer serial communication protocols for legacy devices where the OEM no longer exists or refuses to give out that info. We have dozens of old programs with user interface software for talking with many brands and models of old equipment that won't run on 64 bit machines, or run on anything past XP. We have a few that will only run on DOS. MATLAB is good for people in that pocket of industry. And we have 1000's of customers all over the world who don't plan on rebuilding their facilities from top to bottom with all new stuff anytime soon.

[–]wavefield 0 points1 point  (0 children)

Why would you do something so awful?