I&#x27;ve worked both in industry and at a research institution (albeit not very long) and I&#x27;ve learned a bit of a love hate relationship with matlab. It&#x27;s really awesome for prototyping complex math-based algorithms as an intermediate step before writing a battle-ready implementation. There&#x27;s a ton of libraries so you can think in terms of high level concepts, and the matrix math is very natural, as is Gpu integration which is a huge plus. Once it&#x27;s in code, you can iterate quickly relying on libraries, and even create a gui very quickly. When you settle on a final implementation, you can do a 1:1 port to the optimal runtime to make the code more modular, extensible, and fast.<p>Once you get used to the indexing and quirks, it&#x27;s a prototyping dream. In a day I can do what would take weeks to implement in C++ or even Python, and I can decide if the algorithm is good enough to warrant a full port. Once I make that call, it&#x27;s trivial to decide which parts of the algorithm I should work on optimizing for speed during the port because you can analyze perf of each step. Granted, I do a lot of image processing which is sort of an ideal matlab use case.<p>I totally agree though, writing software to solve real world problems is much more riveting than writing endless web apps (I&#x27;ve done both.)