¿Por qué la gente de la industria (en oposición a la academia) soporta MATLAB y paga fortunas por ello?

Por el contrario, permite que personas sin experiencia escriban código poderoso. Intente escribir un algoritmo rápido de transformación de Fourier o una operación de inversión de matriz en cualquier idioma usted mismo. Piense en todos los posibles errores que tendrá que eliminar, todas las condiciones posibles (matrices dispersas, matrices condicionadas numéricamente, etc.) que tendrá que manejar. Matlab ya hace esto con sus funciones integradas. Una persona sin experiencia generalmente puede escribir una sola línea de código para realizar tareas complejas, como filtrar una señal, obtener densidad espectral de potencia, procesamiento de imágenes, etc.

¿Está buscando una funcionalidad como Intellisense de Microsoft para que a medida que escribe sus scripts el programa le haga sugerencias o corrija errores simples de sintaxis? Matlab ya verifica su código y subraya la sintaxis incorrecta para que pueda verlo claramente, pero no está al nivel de la sofisticación de Intellisense.

Aparte de eso, no puedo entender cómo Matlab “permite que personas sin experiencia escriban sin sentido y cometan errores triviales” mientras que cualquier otro programa no lo hace. Tal vez puedas dar un anectodo o algún ejemplo claro.

Es muy permisivo, ya que permite que personas sin experiencia escriban muchos sin sentido y con experiencia para cometer errores triviales que solo se notan en el tiempo de ejecución.

Existe una compensación entre lo “poderosa” que es una aplicación y lo “fácil” que es usarla.

En un extremo se encuentra el tipo de aplicaciones ‘asistente’ que guían al usuario a través de un proceso y le da opciones limitadas en cada paso. El asistente es fácil de usar para principiantes, y el resultado final estará casi garantizado para funcionar. El inconveniente es que la aplicación está limitada en lo que puede hacer, ya que la mayoría de las decisiones ya han sido tomadas por el programador. Por ejemplo, considere los asistentes de instalación de software u otros procesos de configuración / personalización.

El otro extremo es un lenguaje de programación, que es increíblemente poderoso y puede hacer algunas cosas increíbles. Los inconvenientes son 1) que no hay garantía de que un programa incluso se compile, mucho menos ejecutar sin errores, y 2) un novato se perderá bastante sin algún tipo de capacitación, y el usuario debe estar bien informado para obtener un resultado adecuado.

Los desarrolladores de software tienen que establecer prioridades y equilibrar la “facilidad de uso” con el “poder”, según el propósito y la necesidad que el software pretende cumplir. MATLAB es muy poderoso y se ha vuelto muy popular porque llena la necesidad de lo que hace. Debido a que es tan poderoso, no es fácil de usar.

En términos generales, cuantas más opciones tenga el usuario, más oportunidades tendrá de estropear las cosas. Esto también es cierto en la vida, no solo en el software.