El compilador como servicio

Me he quedado poco menos que estupefacto con esta entrada del blog de SomaSegar. Y no, no penséis mal, que no es malo.

Básicamente viene a decirnos que está disponible la CTP de “Roslyn”, que según entiendo es una extensión -de momento- a Visual Studio 2010 SP1. De hecho nos la podemos bajar y jugar con ella.

Comienza diciendo que los compiladores se han venido haciendo en C++ nativo, pero que ya es hora de cambiar y que han rehecho los compiladores de C# y de Visual Basic desde cero en… Visual Basic.

Hay que joderse. La primera en la boca. ¿Pero no decían que el compilador y el propio .NET estaban hechos en C# (lo siento, no encuentro la referencia)? Ahora no, ahora resulta que C# está escrito en C++.

Y la segunda, también: C# está hecho en Visual Basic.

O están tontos, o yo no me entero, o mienten más que hablan. Para nada me extraña de que hubieran mentido en lo de hacer C# en C++, de hecho es lo lógico y coherente, ¡pero construirlo todo en VB?

De todos modos dejemos esto aquí, corramos un estúpido velo, y centrémonos en el meollo del artículo: compilador como servicio.

Es decir, en Visual Studio 11 los compiladores de C# y VB no serán ejecutables, sino servicios expuestos al público (espero que haya uno para invocarlo desde la línea de comandos), de modo que cualquiera podrá compilar.

No solo eso, sino que dejarán de ser una caja negra que, a partir de un código fuente, genera una salida compilada, sino que podremos acceder a los diferentes estados del proceso de compilación, e incluso podremos realizar solo unos pasos, como análisis semántico o la obtención del código IL (ensamblador del .NET).

Eso posibilita la creación de scripts en una consola interactiva. ¿Recuerdan la consola aquella que tenía el Visual FoxPro que permitía ir encadenando comandos como si programáramos? Pues lo mismo, pero en VB y en C#. Vamos, que reinventan la rueda.

En la entrada original hay un par de imágenes enseñando lo que puede hacer.

 

4 comentarios sobre “El compilador como servicio”

  1. Pues sin entrar en el chiste fácil, lo que me parece genial de este modelo de servicio, es poder sacar la capacidad de compilación a entornos dedicados a esto. CloudBuild? no lo veo descabellado, pero en escenarios más tontos pues codifico en una tableta y compilo… pues ve tu a saber donde 😀

    Salu2

  2. Rafiki, por favor, lee con atención. 😉
    Soma: «in Roslyn we’ve rewritten the compilers from the ground up, implementing the C# compiler in C# and the Visual Basic compiler in Visual Basic». Cada compilador en su propio lenguaje, no ambos en VB.

  3. Entiedo que C++ nativo es más óptimo para el rendimiento (los móviles por ejemplo, tienen realmente c++ nativo creo), no?

    No sé que pasará en esas cuestiones en rendimiento si se hace con VB o C#…

    saludos

  4. @Bruno
    CloudBuild… volvemos a los tiempos de COBOL, hosts y tarjetas perforadas!!! 😛
    Me ha hecho gracia tu comentario porque fue lo primero que se me vino a la cabeza (sin duda, creo que estamos demasiado «cloudizados»). Aunque creo que quien mejor se puede beneficiar de esto son herramientas tipo Resharper…

    Saludos!

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *