Archivo

Archive for the ‘Noticias’ Category

Reader Q&A: When will better JITs save managed code?


Un interesante artículo de Herb Sutter, en el cual nos adelanta por qué los lenguajes administrados nunca serán tan rápidos como los nativos –particularmente .NET y Java vs C++. ¡Y no es cuestión del compilador JIT!

Reader Q&A: When will better JITs save managed code?.

Espero que pronto llegue el blog con mayor explicación.

Categorías: C++, Noticias Etiquetas: , ,

Beta de Visual Studio 11–29 de febrero


Pues bien, Soma Segar ha anunciado el primer beta de Visual Studio 11 y .NET 4.5 para el próximo 29. Y don Herb Sutter ya nos ha dado sus comentarios respecto a Visual C++. Resumiendo, algunas características interesantes:

  • Compatibilidad con el estándar C++ 11 prácticamente completado. Muchas cosas (como los lambdas) ya las tenemos desde VC++ 10, pero ahora sí estaremos completos. Esto es algo que se agradece de verdad.
  • Soporte para Windows 8 y Metro. Ya tendremos disponible C++/CX, el dialecto de Microsoft para trabajar con Metro. Cabe decir que éste es en realidad azúcar sintáctico, y que tras bambalinas el compilador genera código C++ y COM equivalente.
  • Windows Runtime Library. Una librería estilo ATL para que quienes no quieran usar C++/CX puedan interactuar con Metro sin necesidad de recurrir a COM directamente.
  • Soporte para paralelismo. Se liberan C++ AMP y el Parallel Patterns Library para trabajar con varios procesadores en pararlelo.
  • Mejoras en Intellisense y en el editor, algo de lo que sufrimos quienes usamos VC++; al parecer ¡ya nos van a poner al nivel de VC#!

También Visual C# trae cosas nuevas. Quizás lo mejor sea el soporte para programación asíncrona.

  • Soporte para realizar tareas asíncronas, incluídas en el lenguaje. El uso de “async” y “await” nos permite trabajar con tareas paralelas sin tener que meternos en multiárea. El colega Javier Torrecilla dio un muy buen webcast ayer mismo respecto a este tema.

Respecto al .NET Framework 4.5, algunas de als cosas interesantes que he encontrado son las siguientes.

  • Soporte en .NET para aplicaciones Metro. Obvio no podría quedarse atrás.
  • Mejoras en ASP.NET para soportar HTML 5 y CSS 3.0, soporte al protocolo WebSockets, lectura y escritura de las peticiones HTTP asíncronas.
  • En Windows Presentation Foundation ya tendremos un nuevo control: el Ribbon. Si bien es cierto que éste estaba disponible en Codeplex, ahora ya es parte integral del Framework.
  • Tras el fracaso que supuso quitar los flujos de trabajo de máquinas de estado en Windows Workflow Foundation, la nueva versión ya los volvió a implementar. ¡Enhorabuena! Esto ha hecho renacer mi interés por WWF.
  • Ah, y en la versión anterior de WWF se añadieron actividades que soportaban expresiones en VB, ahora soportan también expresiones en C#. ¡Uf!

También hay cosas para los desarrolladores de F#, muchas de ellas interesantes. Estas dos llamaron poderosamente mi atención.

  • Proveedores de tipos. Permiten generar tipos basados en datos estructurados, lo cual ayuda a acceder a fuentes de datos en bases de datos como SQL. Con esto, en mi opinión, F# da el gran paso de ser una herramienta académica a una herramienta de productividad en programas empresariales.
  • Expresiones de consulta, característica que implementa LINQ para F#. ¡Náaaaaaais!

¡Así que ya sabes, a descargar el beta!

Categorías: Noticias Etiquetas: , ,

Encuesta sobre Visual C++ 11, nuevas características y mis votos


En el blog del equipo Visual C++ ha aparecido una entrada en la que solicitan al mundo contestar una encuesta. Ésta hace referencia a aquellas características del nuevo estándar de C++ (llamado C++ 11) que queremos que el equipo de Visual C++ le de prioridad.

Como sabemos, algunas características de C++ 11 ya han sido incorporadas a Visual C++ 2010. Pero todavía faltan algunas otras, y Microsoft desea conocer nuestra opinión sobre a qué características darle prioridad.

Así que ya sabes: ¡participa! Aquí está la encuesta.

En mi caso, estas fueron las características que marqué como más urgentes.

1.- Delegating constructors. En C# podemos hacer esto:

class C
{
    string _param1;
    int _param2;

    C(string param1, int param2)
    {
        _param1 = param1;
        _param2 = param2;
    }

    C()
        : this(string.Empty, 0)
    {
    }
}

Esto rifa porque así creas un constructor genérico que puede ser invocado desde otros constructores. ¿No sería bueno contar con esto en nuestro Visual C++?

2.- Unicode literal strings. Para todos los que escribimos programas en otros lenguajes aparte del inglés, el mejorar el soporte para Unicode debería ser prioridad. Cierto, no sufrimos tanto como los chinos, árabes o hebreos, pero aún así debemos apoyar la causa: ¡por nuestro idioma!

3.- Use of char16_t y char32_t. Mismo razonamiento que el punto anterior, tratándose de tipos de dato para almacenar caracteres en Unicode (16 y 32 bits).

4.- Attributes. Similares a los atributos de C#:

// en C#
[WebMethod()] // este es un atributo
public void MyMethod()
{
}

El tener estos atributos en C++ nos ayudaría a olvidarnos de extensiones de compiladores como __declspec o __attribute__.

5.- Keyword exports. Aunque no es una opción, la puse en el punto 9, sobre comentarios adicionales.

La palabra reservada exports se utiliza cuando programamos clases plantillas. Hasta el momento, en Visual C++, tenemos que incorporar el cuerpo de nuestras funciones en la declaración de la clase. Intentarlo hacer por separado resulta en error de compilación.

Esta característica data del estándar C++ 98, si no me equivoco, pero Visual C++ nunca lo implementó. Y sé que no lo harán, menos ahora que el comité del estándar ha depreciado dicha palabra reservada (y la ha depreciado porque, salvo Comeau y Sun Studio, ningún otro compilador la implementó). Pero bueno, no se pierde nada con pedir.

Así que ya sabes, ¡vota por tus favoritas! ¡Participa!

Categorías: Noticias Etiquetas: ,

Boostificando mi vida


Vaya cosas de la vida. La gente que me conoce sabe que soy C++ boy desde hace años: no por nada mis sobrenombres son Fer++ o F++.

Aunque no fue el primer lenguaje que aprendí (ese fue QBASIC y luego Visual Basic 6, cuando iba en la preparatoria), fue mi primer lenguaje profesional. Antes de salir de la preparatoria ya había hecho trabajos con HTML, JavaScript y CSS, pero mi primer trabajo para una empresa de desarrollo fue como programador de C++: cuando apenas tenía 19 años en marzo de 2002. Desde ahí nunca he dejado de programar con este lenguaje.

Seguro, el boom de .NET llegó a México alrededor del 2004, y hubo altibajos, pero en general creo que fui bastante constante. En 2008 fue cuando ahora sí mi trabajo se volvió puro .NET con algo de SharePoint. Sin embargo, ahora que el código no administrado viene de vuelta, con todo, me emociona volver a usar este lenguaje y de hecho ya estoy aprendiendo Metro, la nueva API de Microsoft para Windows 8. Y no soy el único: justo hoy se está llevando a cabo la conferencia Going Native 2012.

¿Cuántos libros de C++ no habré leído con entusiasmo? The Standard C++ Library, de Nicolai Josuttis, o qué tal Modern C++ Design de Andrei Alexandrescu… He probado varias librerías: obviamente MFC, pero también la Windows Template Library, Qt o incluso wxWidgets. Y sin embargo… nunca había utilizado Boost.

Boost, para quien no sepa, es una librería, o conjunto de librerías de C++, diseñadas para integrarse bien con el estándar de C++. Proveen mucha funcionalidad que el estándar todavía no contempla, y éstas son revisadas por mucha gente de la comunidad, incluídos participantes del comité de estandarización de C++. Es más, muchos componentes de Boost suelen terminar en el estándar. Pero no dejes que te lo cuente, entra a este enlace y entérate por tí mismo.

Ahora, no es que no supiera de la existencia de Boost. Hace algunos años intenté instalarlo pero la verdad que fue un poco engorroso el construirlo. La mayoría de los componentes de Boost son puros encabezados, perohay ciertaspartes que requieren enlazar con librerías estáticas, y ahí es donde estaba el problema.

Y sucede que con todo este fervor por regresar al mundo nativo, en parte promovido por Microsoft y su Windows 8, ahora sí decidí echarle un ojo. Me encontré conque ya tenían un instalador, así que ésta fue bien fácil. Sólo tuve que agregar el directorio de instalación a

image

Y ahora sí, estamos listos para usar Boost. Probemos algo sencillo.


#include <iostream>
#include <boost/array.hpp>

int main(int argc, char* argv[])
{
    boost::array a;
    for (auto i = 0; i < a.size(); i++)
        a[i] = i * i;

    for (auto i = a.begin(); i != a.end(); ++i)
        std::cout << *i << std::endl;

    system("pause");
    return 0;
}

 

La clase boost::array en realidad es un simple envoltorio de un array natural, pero provee ciertas características adicionales como el contar con iteradores begin() y end(). En fin, no importa. Como estas clases, Boost cuenta con muchísimas más.

Y he de decir que hasta donde he podido explorar he encontrado muchas clases muuuuuuucho muy útiles. De hecho poco a poco las iré exponiendo por aquí. Pero venga, anímate tú también y boostifica tu vida.

¡Nos vemos!

Categorías: Boost, C++, Noticias Etiquetas: ,

Windows 8 Developer Preview


Hace unos días salió a la luz el Windows 8 Developer Preview, una primera versión del próximo sistema operativo de Microsoft. Ya lo bajé e instalé en una máquina virtual de Virtual Box (por algun motivo el Virtual Machine no funciono).

Obvio todavia le falta (por ejemplo, mientras escribia esto el IE decidio cambiar mi configuracion de idioma y ya no puedo poner acentos –no es que tenga faltas de ortografia en este ultimo parrafo). Pero en general puedo decir que soy fan de Metro.

El IE esta padre salvo que ahora cuando escribo me corrige la ortografia en automatico, lo cual es un problema si uno suele escribir en ingles y espaniol. La aplicacion de Twitter que tienen esta padre y es un ejemplo de lo que puede hacerse con Metro. El explorador de Windows viene con Ribbon integrado, lo cual es una bendicion para mi, que si soy fan de ese tipo de interfaz grafica. Ojala actualicen al Notepad pronto.

El Developer Preview viene con el preview de Expression Blend 5, y permite crear aplicaciones Metro con JavaScript; seguramente se convertira en la aplicacion por defecto de diseniadores graficos que quieran crear aplicaciones para Windows.

Y por supuesto, viene con el Visual Studio 11, y la posibilidad de crear aplicaciones con C++ y .NET para Metro. En verdad que ya me urge comenzar a picarle, pero tengo un concierto en un ratin (Corona Fest) asi que tendre que esperar hasta la noche. Espero sacar mi primer post este mismo fin de semana…

Esta es una imagen de mi twitter:

Mientras tanto, descarga tu propio preview!

http://msdn.microsoft.com/en-us/windows/home/br229518

Categorías: Metro / Windows 8, Noticias Etiquetas: ,