Reason 1 The license manager. Having Matlab licensed for use at your university is fine until you move your laptop with its licensed copy somewhere else outside the firewall, and it stops working.
Reason 2 The license manager. Using a function in a particular toolbox is fine until all the licenses for that toolbox are checked out, at which point your code will fail when the function is called. That's an interpreted language that calls the license server before every command.
Reason 3 It's written in Java, and that's not very well hidden. Observe:
[ConditionalEventPump] Exception occurred during event dispatching: java.lang.OutOfMemoryError: Java heap space at java.awt.image.DataBufferInt.<init>(Unknown Source) at java.awt.image.Raster.createPackedRaster (Unknown Source) at java.awt.image.DirectColorModel.createCompatibleWritableRas ter(Unknown Source) at sun.awt.image.SunVolatileImage.getBackupImage (Unknown Source) at sun.awt.image.VolatileSurfaceManager.getBackupSurface (Unknown Source) at sun.awt.image.VolatileSurfaceManager.initialize (Unknown Source) at sun.awt.image.SunVolatileImage.<init>(Unknown Source) at sun.awt.image.SunVolatileImage.<init>(Unknown Source) at java.awt.GraphicsConfiguration.createCompatibleVolatileImag e(Unknown Source) at java.awt.GraphicsConfiguration.createCompatibleVolatileImag e(Unknown Source) at javax.swing.RepaintManager.getVolatileOffscreenBuffer (Unknown Source) at javax.swing.RepaintManager$PaintManager.paint (Unknown Source) at javax.swing.RepaintManager.paint(Unknown Source) at javax.swing.JComponent.paint(Unknown Source) at java.awt.GraphicsCallback$PaintCallback.run (Unknown Source) at sun.awt.SunGraphicsCallback.runOneComponent (Unknown Source) at sun.awt.SunGraphicsCallback.runComponents (Unknown Source) at java.awt.Container.paint(Unknown Source) at javax.swing.RepaintManager.paintDirtyRegions (Unknown Source) at javax.swing.RepaintManager.paintDirtyRegions (Unknown Source) at javax.swing.RepaintManager.seqPaintDirtyRegions (Unknown Source) at javax.swing.SystemEventQueueUtilities$ComponentWorkRequest. run(Unknown Source) at java.awt.event.InvocationEvent.dispatch (Unknown Source) at java.awt.EventQueue.dispatchEvent(Unknown Source) at java.awt.EventDispatchThread.pumpOneEventForFilters (Unknown Source) at java.awt.EventDispatchThread.pumpEventsForFilter (Unknown Source) at java.awt.EventDispatchThread.pumpEventsForHierarchy (Unknown Source) at java.awt.EventDispatchThread.pumpEvents (Unknown Source) at java.awt.EventDispatchThread.pumpEvents (Unknown Source) at java.awt.EventDispatchThread.run(Unknown Source) [ConditionalEventPump] Exception occurred during event dispatching: java.lang.OutOfMemoryError: Java heap space at java.awt.image.DataBufferInt.<init>(Unknown Source) at java.awt.image.Raster.createPackedRaster (Unknown Source) at java.awt.image.DirectColorModel.createCompatibleWritableRas ter(Unknown Source) at sun.awt.image.SunVolatileImage.getBackupImage (Unknown Source) at sun.awt.image.VolatileSurfaceManager.getBackupSurface (Unknown Source) at sun.awt.image.VolatileSurfaceManager.initialize (Unknown Source) at sun.awt.image.SunVolatileImage.<init>(Unknown Source) at sun.awt.image.SunVolatileImage.<init>(Unknown Source) at java.awt.GraphicsConfiguration.createCompatibleVolatileImag e(Unknown Source) at java.awt.GraphicsConfiguration.createCompatibleVolatileImag e(Unknown Source) at javax.swing.RepaintManager.getVolatileOffscreenBuffer (Unknown Source) at javax.swing.RepaintManager$PaintManager.paint (Unknown Source) at javax.swing.RepaintManager.paint(Unknown Source) at javax.swing.JComponent.paint(Unknown Source) at java.awt.GraphicsCallback$PaintCallback.run (Unknown Source) at sun.awt.SunGraphicsCallback.runOneComponent (Unknown Source) at sun.awt.SunGraphicsCallback.runComponents (Unknown Source) at java.awt.Container.paint(Unknown Source) at javax.swing.RepaintManager.paintDirtyRegions (Unknown Source) at javax.swing.RepaintManager.paintDirtyRegions (Unknown Source) at javax.swing.RepaintManager.seqPaintDirtyRegions (Unknown Source) at javax.swing.SystemEventQueueUtilities$ComponentWorkRequest. run(Unknown Source) at java.awt.event.InvocationEvent.dispatch (Unknown Source) at java.awt.EventQueue.dispatchEvent(Unknown Source) at java.awt.EventDispatchThread.pumpOneEventForFilters (Unknown Source) at java.awt.EventDispatchThread.pumpEventsForFilter (Unknown Source) at java.awt.EventDispatchThread.pumpEventsForHierarchy (Unknown Source) at java.awt.EventDispatchThread.pumpEvents (Unknown Source) at java.awt.EventDispatchThread.pumpEvents (Unknown Source) at java.awt.EventDispatchThread.run(Unknown Source) [ConditionalEventPump] Exception occurred during event dispatching: java.lang.OutOfMemoryError: Java heap space at java.awt.image.DataBufferInt.<init>(Unknown Source) at java.awt.image.Raster.createPackedRaster (Unknown Source) at java.awt.image.DirectColorModel.createCompatibleWritableRas ter(Unknown Source) at sun.awt.image.SunVolatileImage.getBackupImage (Unknown Source) at sun.awt.image.VolatileSurfaceManager.getBackupSurface (Unknown Source) at sun.awt.image.VolatileSurfaceManager.initialize (Unknown Source) at sun.awt.image.SunVolatileImage.<init>(Unknown Source) at sun.awt.image.SunVolatileImage.<init>(Unknown Source) at java.awt.GraphicsConfiguration.createCompatibleVolatileImag e(Unknown Source) at java.awt.GraphicsConfiguration.createCompatibleVolatileImag e(Unknown Source) at javax.swing.RepaintManager.getVolatileOffscreenBuffer (Unknown Source) at javax.swing.RepaintManager$PaintManager.paint (Unknown Source) at javax.swing.RepaintManager.paint(Unknown Source) at javax.swing.JComponent.paint(Unknown Source) at java.awt.GraphicsCallback$PaintCallback.run (Unknown Source) at sun.awt.SunGraphicsCallback.runOneComponent (Unknown Source) at sun.awt.SunGraphicsCallback.runComponents (Unknown Source) at java.awt.Container.paint(Unknown Source) at javax.swing.RepaintManager.paintDirtyRegions (Unknown Source) at javax.swing.RepaintManager.paintDirtyRegions (Unknown Source) at javax.swing.RepaintManager.seqPaintDirtyRegions (Unknown Source) at javax.swing.SystemEventQueueUtilities$ComponentWorkRequest. run(Unknown Source) at java.awt.event.InvocationEvent.dispatch (Unknown Source) at java.awt.EventQueue.dispatchEvent(Unknown Source) at java.awt.EventDispatchThread.pumpOneEventForFilters (Unknown Source) at java.awt.EventDispatchThread.pumpEventsForFilter (Unknown Source) at java.awt.EventDispatchThread.pumpEventsForHierarchy (Unknown Source) at java.awt.EventDispatchThread.pumpEvents (Unknown Source) at java.awt.EventDispatchThread.pumpEvents (Unknown Source) at java.awt.EventDispatchThread.run(Unknown Source) [ConditionalEventPump] Exception occurred during event dispatching: java.lang.OutOfMemoryError: Java heap space at java.awt.image.DataBufferInt.<init>(Unknown Source) at java.awt.image.Raster.createPackedRaster (Unknown Source) at java.awt.image.DirectColorModel.createCompatibleWritableRas ter(Unknown Source) at sun.awt.image.SunVolatileImage.getBackupImage (Unknown Source) at sun.awt.image.VolatileSurfaceManager.getBackupSurface (Unknown Source) at sun.awt.image.VolatileSurfaceManager.initialize (Unknown Source) at sun.awt.image.SunVolatileImage.<init>(Unknown Source) at sun.awt.image.SunVolatileImage.<init>(Unknown Source) at java.awt.GraphicsConfiguration.createCompatibleVolatileImag e(Unknown Source) at java.awt.GraphicsConfiguration.createCompatibleVolatileImag e(Unknown Source) at javax.swing.RepaintManager.getVolatileOffscreenBuffer (Unknown Source) at javax.swing.RepaintManager$PaintManager.paint (Unknown Source) at javax.swing.RepaintManager.paint(Unknown Source) at javax.swing.JComponent.paint(Unknown Source) at java.awt.GraphicsCallback$PaintCallback.run (Unknown Source) at sun.awt.SunGraphicsCallback.runOneComponent (Unknown Source) at sun.awt.SunGraphicsCallback.runComponents (Unknown Source) at java.awt.Container.paint(Unknown Source) at javax.swing.RepaintManager.paintDirtyRegions (Unknown Source) at javax.swing.RepaintManager.paintDirtyRegions (Unknown Source) at javax.swing.RepaintManager.seqPaintDirtyRegions (Unknown Source) at javax.swing.SystemEventQueueUtilities$ComponentWorkRequest. run(Unknown Source) at java.awt.event.InvocationEvent.dispatch (Unknown Source) at java.awt.EventQueue.dispatchEvent(Unknown Source) at java.awt.EventDispatchThread.pumpOneEventForFilters (Unknown Source) at java.awt.EventDispatchThread.pumpEventsForFilter (Unknown Source) at java.awt.EventDispatchThread.pumpEventsForHierarchy (Unknown Source) at java.awt.EventDispatchThread.pumpEvents (Unknown Source) at java.awt.EventDispatchThread.pumpEvents (Unknown Source) at java.awt.EventDispatchThread.run(Unknown Source) [ConditionalEventPump] Exception occurred during event dispatching: java.lang.OutOfMemoryError: Java heap space [ConditionalEventPump] Exception occurred during event dispatching: java.lang.OutOfMemoryError: Java heap space
So, Matlab is an interpreted language, now written in Java, that calls its license manager before every command and won't run on a work laptop that is being used as a laptop. What's not to like?