Pregunta

Me encanta programar en lenguajes que parecen orientados a programadores hardcore. (Mis favoritos son Python y D.) Matlab está orientado a los ingenieros y R está orientado a los estadísticos, y parece que estos idiomas fueron diseñados para personas que no son programadores hardcore y no piensan como programadores hardcore. Siempre los encuentro algo incómodos de usar, y hasta cierto punto no puedo decir por qué. Aquí hay algunos problemas que he logrado identificar:

  • (Ambos): El énfasis extremo en vectores y matrices en la medida en que no hay primitivas verdaderas.
  • (Ambos): la dificultad de la manipulación básica de la cadena.
  • (Ambos): Falta de incomodidad o incomodidad en el soporte de estructuras de datos básicas como tablas hash y matrices "reales", es decir, tipo paramétrico y nido.
  • (Ambos): Son muy, muy lentos incluso por los estándares de lenguaje interpretados, a menos que se doblegue hacia atrás para vectorizar su código.
  • (Ambos): Parecen no estar diseñados para interactuar con el mundo exterior. Por ejemplo, ambos son programas bastante voluminosos que tardan un tiempo en lanzarse y parecen no estar diseñados para hacer que los programas de filtro de texto simples sean fáciles de escribir. Además, la falta de un buen procesamiento de cadenas hace que la E/S del archivo sea en cualquier cosa, pero formas muy estándar casi imposibles.
  • (Ambos): La orientación de objetos parece tener una sensación muy atornillada. Sí, puedes hacerlo, pero no se siente mucho más idiomático que OO en C.
  • (Ambos): No hay forma obvia y simple de obtener un tipo de referencia. Sin punteros ni referencias de clase. Por ejemplo, no tengo idea de cómo roda su propia lista vinculada en cualquiera de estos idiomas.
  • (MATLAB): No puede colocar múltiples funciones de nivel superior en un solo archivo, fomentando funciones muy largas y codificación de corte y pasta.
  • (MATLAB): los enteros aparentemente no existen como un tipo de primera clase.
  • (R): Las estructuras básicas de datos creadas parecen demasiado altos y mal documentados, y nunca parecen hacer lo que espero dada mi experiencia con estructuras de datos similares pero de nivel inferior.
  • (R): La documentación se extiende por todo el lugar y es prácticamente imposible de navegar o buscar. Incluso D, que a menudo se llama por mala documentación y todavía es bastante alfa, es sustancialmente mejor por lo que puedo decir.
  • (R): Al menos que yo sepa, no hay un buen ideal para ello. Una vez más, incluso D, un idioma bastante alfa con una comunidad pequeña, hace mejor.

En general, también siento que Matlab y R podrían ser reemplazados fácilmente por bibliotecas antiguas en lenguas más generales, si existían bibliotecas suficientemente completas. Esto es especialmente cierto en los idiomas de propósito general más nuevos que incluyen muchas características para los escritores de la biblioteca.

¿Por qué R y Matlab me parecen tan raros? ¿Hay otros problemas importantes que hayas notado que puedan hacer que estos idiomas sean tan extraños para los programadores hardcore? Cuando su uso es necesario, ¿cuáles son algunos buenos consejos de supervivencia?

EDITAR: Estoy viendo un problema de algunas de las respuestas que he recibido. Tengo una fuerte preferencia personal, cuando analizo los datos, para tener una Script que incorpora toda la tubería. Esto implica que un lenguaje de propósito general debe ser utilizado. Odio tener que escribir un script para "limpiar" los datos y escupirlos, luego otro para leerlo en un entorno completamente diferente, etc. Encuentro la fricción de usar MATLAB/R para algunos de mi trabajo y un completamente Diferente lenguaje con un espacio de direcciones completamente diferente y una forma de pensar para que el resto sea una gran fuente de fricción. Además, sé que existen capas de pegamento que existen, pero siempre parecen ser terriblemente complicadas y una fuente de fricción.

No hay solución correcta

Licenciado bajo: CC-BY-SA con atribución
scroll top