C/C++, C#

Entrevistas y reportajes

Nick Hodapp habla para Algoritmo
Entrevista con el product manager de Visual C++ .NET y C# en la división de desarrollo y popularización de Microsoft

Septiembre/2002

Marino Posadas

Marino Posadas es MVP en .NET Framework, Microsoft Certified Solution Developer (MCSD), MCAD (Microsoft Certified Application Developer en .NET), MCT(Microsoft Certified Trainer) y autor de numerosos artículos para revistas especializadas, así como de varias obras editadas por Editorial Ra-Ma en solitario y junto a Grupo EIDOS. Trabaja como Consultor para Grupo EIDOS.


Nick Hodapp es Product Manager de Microsoft Visual C++ .NET y C# en la División de Desarrollo y Popularización de Microsoft. Es responsable de promocionar los beneficios de C++ en la creación de aplicaciones de alto rendimiento bajo Windows y .NET. En los ocho años anteriores de su carrera, en el Medio Oeste americano, Nick desarrollaba aplicaciones gráficas y utilidades sobre telecomunicaciones para entornos de ventanas.

Enlaces de interés:

http://codeguru.earthweb.com/atl/AutoATL.shtml
http://codeguru.earthweb.com/announcements/CGMS-QA.html

A continuación la entrevista realizada por Marino Posadas:

Marino Posadas: Según las últimas noticias una de las incorporaciones al equipo de desarrollo de Visual C++ .Net ha sido uno de los antiguos creadores del lenguaje: Stanley Lipmann, que trabajaba para Disney en la sección de gráficos vectoriales. ¿Puedes confirmarnos esto y si tú trabajas con él?

Nick Hodapp: Sí. Stanley ahora pertenece al equipo de arquitectos de Visual C++ .Net y también ejerce labores de coordinación en la comunidad de desarrolladores de C++.

MP: Dado que C# ha sido sometido a un proceso de estandarización, ya aprobado, la pregunta inevitable es si C++ .Net va a sufrir un proceso similar

NH: Sí. Los objetivos son llegar a un proceso de estandarización que pudiera cubrir entre en 75% y el 85% de los estándares de C++ y estamos trabajando en ello. Queremos que el compilador de C++ tenga el mayor grado de conformidad con los estándares posible.

MP: Dado que C# ha sido presentado en .Net como el último de los lenguajes y el que posee las características más avanzadas. ¿Qué sentido tiene para los programadores de C++ seguir utilizando este lenguaje en lugar de C#?

NH: C++ va a continuar siendo un lenguaje de plataforma de bajo nivel, con el que los desarrolladores van a conseguir un rendimiento, un acceso a recursos primarios y a otras posibilidades como sólo C++ puede ofrecer. Los desarrolladores saben del uso de punteros y del manejo directo de memoria, pero también saben que si eso se hace correctamente, el rendimiento es excelente y no puede compararse con los de ningún otro lenguaje.

MP: Así que las características fundamentales van a seguir centradas en el rendimiento...

NH: No sólo en el rendimiento, sino también en la destrucción determinista de objetos, el control de dispositivos de bajo nivel, la posibilidad de uso de "templates" o plantillas.

MP: Cree que C# es un producto más estratégico que lo que pueda ser C++

NH: Creo que no, C++ va seguir jugando un papel importante en la construcción de sistemas, servicios, y en aquellas rutinas de programación en la que específicamente se requiera de alto rendimiento.


C++ va seguir jugando un papel importante en la construcción de sistemas, servicios, y en aquellas rutinas de programación en la que específicamente se requiera de alto rendimiento.

MP: Como por ejemplo, el tratamiento intensivo de gráficos, análisis financiero y cosas así.

NH: Exactamente. En estas áreas pensamos que C++ va a jugar un papel preponderante. C++ va a seguir utilizándose en la construcción de los entornos gráficos, aplicaciones para Internet, etc., pero no son excluyentes, sino complementarios.

MP: Cual es la posición de C++ dentro de .Net Framework en comparación con Visual Basic y C#

NH: Creo que aunque en el marketing de .Net Framework Visual Basic y C# parezcan los productos estrella, eso no significa que C++ ocupe una posición estratégica inferior o tenga menos importancia que los antes citados. Se trata de roles distintos y de capacidades distintas.

MP: Cree que en cierto modo, la capacidad de incrustar código C++ en un bloque unsafe de C# puede ser una solución ideal para el desarrollador que busca que busca productividad sin renunciar al rendimiento.

NH: Absolutamente. Existen miles de líneas de código fuente en C++ escritas y probadas que los desarrolladores pueden usar como parte de su código C# y eso es un valor añadido importante. Y además, siempre que se trate de recursos "a la antigua" como el manejo directo de interrupciones o la manipulación directa de hardware, esa solución se presenta como ideal para cualquiera desarrollador.

MP: ¿No piensas que en el marco de desarrollo de .Net Framework es más importante la jerarquía de clases que el lenguaje?

NH: Básicamente sí, pero especialmente en lo que se refiere a la investigación de nuevas posibilidades. Pero el lenguaje siempre tiene que soportar el acceso fácil y coherente a las innovaciones de la jerarquía de clases. El lenguaje seguirá siendo importante en cuanto a las posibilidades que el desarrollador necesite, mientras que la jerarquía de clases establecerá lo que la arquitectura de la aplicación es capaz de ofrecer.

MP: Respecto a Java y C++, ¿Crees que la opción natural para los que quieran acceder a .Net es C#?

NH: Sí, debido a la sintaxis del lenguaje pero que habría que considerar la posibilidad el uso de J# dado que sintácticamente es casi igual a Java y ofrece un entorno de migración avanzado y un rendimiento de la ejecución muy superiores a los que Java puede ofrecer. No obstante, Tony Goodhew -que es el Product Manager de J#- podría responderte a esa pregunta con más precisión que yo.

MP: Pero no crees que el verdadero problema es que el programador de Java nunca va a acceder a C++ porque no está acostumbrado al uso de instrucciones como alloc(), malloc(), realloc(), así como al uso de punteros, punteros a funciones, etc.

NH: Por supuesto, se trata de un entorno en el que los recursos de bajo nivel son algo natural y no como sucede con Java que está específicamente pensado para impedir el acceso a esos tipos de recursos.

MP: ¿Podría decirse que el futuro de C++ se presenta como la herramienta complementaria, pero no fundamental en la construcción de desarrollos?

NH: No, no lo creo así, me reitero en lo que he dicho antes, en el sentido de la importancia de C++ en la construcción de sistemas y el acceso a recursos de bajo nivel.  Pero, claro está, tenemos que tener en cuenta el hecho de que desde el punto de vista del código administrado, los recursos de potencia de C++ casi nunca pueden ir gestionados por el CLR, lo que supone la búsqueda de un equilibrio entre rendimiento y seguridad.

MP: ¿Crees que ese maridaje entre C++ y C# va a potenciar la construcción de herramientas que utilicen de forma mixta C++ y C# como solución de sistema?

NH: Pienso que sí, ya que esa opción se ofrece como algo inmediato.

MP: Bien, por tanto hay que concluir que C++ va a seguir ocupando un lugar estratégico en la construcción de ciertos recursos y de sistemas, pero muchos de los programadores podrán migrar a C# usando C++ embebido para mejorar la productividad.

NH: Tú lo has dicho, creo que es una de las opciones evidentes y quizás en los próximos dos años podamos ver el afianzamiento de C++ como lenguaje de soporte básico, y lenguaje orientado a sistemas como antes he comentado. Eso significa que C++ seguirá evolucionando y esa es la intención de Microsoft en las próximas versiones de Visual Studio .Net.

MP: Siempre me gusta concluir las entrevistas con algo personal, así que, ahí van un par de cuestiones personales: La primera, he oído que te gusta el ciclismo como a mi y que eso sucedió a partir de la victoria de Greg Lemond en el Tour de Francia...

NH: Me gusta mucho, efectivamente, espero que Lance Armstrong lo haga bien este año. Cada vez hay más equipos ciclistas en Estados Unidos y pienso que es un deporte muy bello que merece la pena que se siga.

MP: Finalmente, ¿Es ésta la primera vez que visitas España?

NH: Sí y, aunque sea un tópico, me ha gustado mucho y espero volver el año próximo.

MP: Gracias por atender nuestras preguntas, Nick.