2010-05-23 36 views
16

Escuché que Microsoft desarrolló un lenguaje de programación llamado M.¿Para qué es el lenguaje M?

¿Alguien puede explicar el uso de M y cómo un programador de C# puede beneficiarse de M.

+0

Ug, esa página ha sido eliminada. – Michael

Respuesta

24

ACTUALIZACIÓN 2:

En julio de 2015, Microsoft lanzó una versión muy revisada de M llama Power Query. Se describe como un "lenguaje de fórmulas" y ya no se trata de modelar per se.


ACTUALIZACIÓN 1:

Han pasado casi cuatro años desde que escribí esto, y mi conjetura (que "no es muy útil") resulta que ha sido compartida por mucha gente. M hace tiempo que desapareció y nunca fue lanzado. MS cambió los esfuerzos al OData en su lugar.


Para entender el punto detrás de M, usted tiene que entender una breve historia:

  • A mediados de la década de 1990 y principios de 2000, había algo de un mini-movimiento en la ingeniería de software alentar a las personas de negocios a escribir y desarrollar software. Esto fue visto como un esfuerzo por reducir la complejidad de los grandes proyectos de software al eliminar al intermediario de los desarrolladores de software para modelar aplicaciones de grandes negocios. A muchos equipos de gestión les encantó la idea, ya que ahora los empresarios podían contribuir directamente al desarrollo de software.

  • Hubo muchas estrategias que la gente usó para tratar de aumentar el compromiso de los analistas de negocios. Uno de los más populares fue arquitectura orientada a modelos. Bajo este esquema, los empresarios podrían especificar modelos directamente utilizando algún tipo de lenguaje visual (por ejemplo, UML), que luego se generaría en código. Esto no sería diferente a tener algún tipo de diseñador visual que haya creado columnas y tablas de bases de datos autogeneradas, así como clases asociadas de C# etiquetadas con las etiquetas NHibernate correctas.

  • Debido a que es inconveniente aprender un nuevo lenguaje de programación simplemente por modelar algunos conceptos, la mayoría de las personas de negocios no podían entender el código generado. De hecho, la mayoría de la gente solo quería entregar una pila de código modelado a los desarrolladores y decir "aquí, correr con esto". En general, el nivel de calidad del código generado fue bajo.

  • En última instancia, el movimiento se extinguió una vez que se hizo evidente que tener gente de negocios que no podía entender el software que acababan de escribir era problemático.Las herramientas también fueron en parte culpables: los diagramas de cajas y flechas se ven geniales en las presentaciones de PowerPoint, pero tienen representaciones ambiguas en el software. Las diferencias de intención entre las posibles implementaciones a menudo eran demasiado sutiles para capturarlas en una herramienta.

Aquí es donde M entra. Microsoft está apostando a que las herramientas han mejorado hasta el punto en que ahora es posible modelar las cosas más directamente. Obviamente, han aprendido de los errores de los demás, ya que M es un lenguaje de texto (en lugar del lenguaje de cuadros y flechas de las herramientas de modelado visual anteriores). Piense en M como otra versión de UML, pero con una gran cantidad de material descartado, y centrado más o menos exclusivamente en el modelado de objetos (en lugar de secuencias de eventos, actores, etc., y todas las demás cosas que UML puede usarse para modelo).

IMO, no es muy útil en este momento porque no hay suficiente atención para hacer que trabajar con ella sea efectivo. Parte de la utilidad de un lenguaje son las herramientas con las que trabaja, y en este momento son muy pocas (en realidad, en este momento no puedo pensar en una herramienta de terceros que te ayude con M).

Barra lateral: alguien necesita darles a Microsoft algunas clases de SEO Marketing 101. Cero de los diez primeros resultados para "m dsl" están cerca de hablar de DSL: un resultado es para la liga de softbol en Detroit; una se trata de líneas de suscriptores digitales de teléfonos móviles; etcétera. ¡No nombre su nueva herramienta después de una letra del alfabeto!

+0

Al punto de hacer una búsqueda de 'm dsl' ... intente hacer una búsqueda de' c dsl'. 'M' es una especificación de idioma, simplemente tiene mucho ruido como' B', 'C' y' D' ... que son todos los lenguajes de programación. –

+0

Han pasado casi seis años desde que escribió esto y M es completamente diferente de lo que describió o ahora es extremadamente útil. Gracias por la información de fondo. –

+1

Los restos rotos de M se rehicieron en Power Query con algo de bondad y nuevas ideas. Power Query no es un lenguaje de modelado como originalmente era M, sino que es una herramienta para interrogar datos. Más información aquí: https://msdn.microsoft.com/en-us/library/mt270235.aspx –

5

Una cita de lenguaje specification M de Microsoft:

El nombre código de Microsoft "M" Lenguaje de Modelado, en lo sucesivo, M, es un lenguaje de modelado de dominios utilizando texto. Un dominio es cualquier colección de conceptos u objetos relacionados. El dominio de modelado consiste en seleccionar ciertas características para incluir en el modelo e excluir implícitamente otras que se consideran irrelevantes. El modelado con texto tiene algunas ventajas y desventajas con respecto al modelado con otros medios como diagramas o arcilla. Un objetivo del lenguaje M es explotar estas ventajas y mitigar las desventajas.

+11

¿Acaso solo dicen modelado en arcilla? Puedo ver que eso es problemático como un modelo de soluciones de negocios, ya que el proceso siempre termina en ser despedido. –

Cuestiones relacionadas