El lenguaje D de Microsoft

Desde hace décadas, está rondando la idea de declarar la intención de un programa, en lugar de especificar los pasos a realizar en un algoritmo. Un intento temprano, ha sido el lenguaje Prolog, que de alguna forma alimentó al llamado proyecto de quinta generación de Japón, en los ochenta del siglo pasado.

Un lenguaje declarativo que ha tenido más éxito y aceptación, es el SQL. De alguna forma, lo podemos considerar declarativo: le indicamos qué queremos, más que cómo conseguir el resultado. El “engine” de base de datos resuelve nuestra consulta, armando un plan de ejecución, sin que tengamos que dar explícitamente cada paso a realizar ante el pedido “select * from customers”.

Yo soy un creyente de la abstracción y de los modelos, como se puede ver en mis artículos sobre generación de código. La idea es: no hace falta codificar directamente los pasos y estructuras necesarios para un sistema, sino que se puede describir el modelo abstracto, y luego, mediante transformaciones, usando templates y acciones, pasar a código concreto. Faltaría agregar inteligencia artificial, y otras yerbas, para pasar de un modelo de sistema, a un sistema concreto.

Microsoft ha venido trabajando desde varias puntas, en la adopción de lo declarativo, y de modelos. Por una parte, su soporte de Domain Specific Languages (DSL), la creación de Software Factories, la aparición del Entity Framework, los modelos adoptados en, por ejemplo, Web Service Software Factory, y otros, apuntan a esa dirección.

Ahora, en el proyecto Oslo, están diseñando un lenguaje declarativo, llamado informalmente, lenguaje D, incluido dentro ese proyecto. No tengo mucha información al respecto, pero algunos enlaces y extractos:

http://www.infoworld.com/article/07/10/30/microsoft-oslo_1.html

Oslo is a codename for a set of technical investments that will be delivered in the next major versions of Microsoft’s platform products, said Steven Martin, director of product management in the company’s Connected Systems division. These products include Visual Studio, System Center, BizTalk Server, BizTalk Services, and the .Net Framework. Beta releases of Oslo technology are due in 2008.

“Oslo is a set of technologies that we think will help take model-driven design mainstream,” Martin said.

http://www.infoworld.com/article/08/02/11/gates-declarative_1.html

“You should be able to do things on a declarative basis,” Gates continued. But this has not caught on partially because of weak data models — first Codasyl and then relational. Stronger data models since have emerged, such as rich schemas around XML as well as modeling work being done by Microsoft and others, Gates said. “We’re bringing the data models up to be much, much richer, and we think in that environment, a lot of business logic can be done in a declarative form. Now, we haven’t totally proven this yet. We’re doing a lot of internal developments ourselves that way,” including some Microsoft business applications, he said.

(Justamente, en AjGenesis se tomó la base de tener un buen modelo de “datos”, para construir sobre él, aunque no es específicamente de datos, sino de entidades genéricas de negocio. El tema a investigar es cómo colocar en un lenguaje declarativo un modelo de la lógica de negocios).

http://www.eweek.com/c/a/Application-Development/Microsoft-Preps-New-Modeling-Language/

Microsoft, which in October officially announced its intent to support model-driven development in a broad strategy known as “ Oslo,” is beginning work on a new declarative programming language, a supporting editing tool and other components of the initiative, according to sources close to the company.

http://blogs.zdnet.com/microsoft/?p=1159

D is a key component of Microsoft’s Oslo software-oriented architecture (SOA) technology and strategy. Microsoft outlined in vague terms its plans and goals for Oslo in late fall 2007, hinting that the company had a new modeling language in the works, but offering no details on what it was or when the final version would be delivered.

D will be a declarative language aimed at non-developers, and will be based on eXtensible Application Markup Language (XAML), sources, who asked not to be named, said.

Sources close to Microsoft confirmed the existence of D, which they described as a forthcoming “textual modeling language.” In addition to D, sources said, Microsoft also is readying a comlementary editing tool, code-namd “Intellipad,” that will allow developers to create content for the Oslo repository under development by Microsoft. (Intellipad is the “Emacs.Net” text editor for which Microsoft has seeking developers over the past couple of months.)

What, exactly is a “declarative” programming language? According to that old standby, Wikipedia, a program is “declarative,” if it describes what something is like, as opposed to how to build it. To some, a declarative program needs to be written in a purely functional programming language. HTML Web pages are examples of declarative programs.

Veremos cómo evoluciona el tema.

Nos leemos!

Angel “Java” Lopez
http://www.ajlopez.com/

This entry was posted in 2643, 3463. Bookmark the permalink.

Leave a Reply

Your email address will not be published. Required fields are marked *


*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>