Saltar al contenido

Categoría: C++

La historia de C++: un documental sobre su evolución durante más de 40 años

Hace poco vi un documental sobre la historia de C++ y me gustó bastante. Aunque nunca ha sido mi lenguaje de programación principal, siempre me ha parecido interesante cómo una tecnología creada hace más de 40 años sigue siendo tan importante en la industria del software. Lo que más me gustó es que entrevista al creador del lenguaje y a varias personas que participaron en su evolución. Es genial escuchar, directamente de sus protagonistas, las historias y decisiones que terminaron definiendo uno de los lenguajes más importantes de la programación.

De su creación a convertirse en un estándar

Una de las cosas que me llamó la atención fue conocer cómo Bjarne Stroustrup comenzó a desarrollar C++ en Bell Labs, inicialmente como una extensión de C que permitía utilizar la programación orientada a objetos sin sacrificar el rendimiento.

También me pareció interesante conocer la historia de la Standard Template Library (STL) y cómo, con el crecimiento del lenguaje, comenzaron los esfuerzos para crear una biblioteca estándar y, posteriormente, estandarizar C++.

A veces utilizamos características de los lenguajes sin pensar en todo el trabajo y las discusiones que hubo detrás. Escuchar a quienes participaron en esas decisiones te da otra perspectiva.

Cuando Java parecía que iba a reemplazar a C++

Otra parte que me gustó fue cuando hablaron de la llegada de Java y de cómo muchos pensaban que terminaría reemplazando a C++. Cuando entré a la universidad en el 2004, se comentaba que Java iba a reemplazar ese lenguaje; de hecho, recuerdo cómo Java se volvió extremadamente popular, especialmente por simplificar aspectos como la gestión de la memoria. Parecía que los nuevos lenguajes iban a dejar atrás las tecnologías más antiguas.

Sin embargo, C++ nunca desapareció. Siguió siendo importante en áreas donde el rendimiento y el control del hardware son fundamentales. Me parece curioso cómo, en programación, muchas veces pensamos que una nueva tecnología va a reemplazar por completo a otra, cuando en realidad terminan coexistiendo durante décadas.

C++ sigue siendo un lenguaje moderno

Uno de los aspectos que más me sorprendió fue ver cuánto ha evolucionado C++. Todavía lo asocio con punteros, la administración manual de memoria y una sintaxis bastante compleja, pero el lenguaje moderno es muy diferente al que se utilizaba hace 20 años.

Con C++11 comenzó una modernización importante, incorporando lambdas, smart pointers y muchas otras características que facilitan el desarrollo. Desde entonces, el lenguaje ha continuado evolucionando con nuevas versiones del estándar.

Me parece impresionante que haya logrado modernizarse sin abandonar la compatibilidad con décadas de software existente, aunque esto también lo convierte en un lenguaje bastante complejo.

Otra parte que disfruté fue la participación de John Romero, uno de los creadores de Doom y Quake, quien habló sobre la importancia de C++ en la industria de los videojuegos.

Como alguien a quien le gustan los videojuegos y la programación, me encanta conocer las tecnologías que subyacen a muchos de los juegos que conocemos. Es interesante cómo C++ sigue siendo fundamental en el desarrollo de motores gráficos y videojuegos modernos.

Un documental que recomiendo ver

Una de las razones por las que disfruto de estos documentales es que permiten conocer la historia del software directamente de sus protagonistas. No es lo mismo leer sobre una característica de un lenguaje que escuchar a sus creadores explicar por qué decidieron implementarla.

Después de verlo, me quedó una mayor apreciación por C++ y su capacidad de evolucionar a pesar de todas las tecnologías que han surgido para reemplazarlo.

También me recordó que, en el desarrollo de software, no todo consiste en utilizar el lenguaje o el framework más reciente. Hay tecnologías que llevan décadas resolviendo problemas y todavía tienen muchísimo que ofrecer.

Si te gusta la programación, aunque nunca hayas escrito una línea de C++, te recomiendo ver este documental.

The Story of C++ | The Official Story

Happy Coding!

Deja un comentario

Dennis Ritchie ha muerto :(

Octubre empezó con una mala semana para la gente de la informática, el pasado 12 de octubre muere el famoso programador Dennis Ritchie, otra de las personas que admiraba (si entran en la pagina de mi semi-auto-biografía en el blog pueden observarlo en la lista de mis héroes informáticos) por su gran trabajo que cambió la humanidad.

Steve Jobs fue alguien con gran visión hacia el futuro de la tecnología pero quienes lo hacían realidad era sus empleados, sin embargo, Dennis Ritchie fue alguien que hizo realidad la tecnología, su trabajos mas importantes fue crear el «Lenguaje C» y el sistema operativo «UNIX». Ambas tecnologías son usadas ampliamente, de hecho, cuando navegas en Internet estas usando una tecnología derivada de su trabajo, si estas usando programas o teléfonos inteligentes estas usando software derivado de sus creaciones.

Actualmente estoy dando clases de Computación I en la Universidad del Táchira y el pensum incluye enseñar lenguaje C, recuerdo en la primera clase al hablar un poco sobre él y la historia de lenguaje C, dije que fué creado hace 40 años y  un estudiante me preguntó: Si es algo tan viejo y para la tecnología eso es prehistorico, ¿Por qué se sigue usando? Lo que se me ocurrió responderle fue: porque es poderoso y simple.

Realmente luego de tanto tiempo programar es C es algo muy útil, produce software poderoso, disponible para cualquier plataforma y con buena documentación. Por ello la mayoría de sistemas operativos están programados en este lenguaje, es fácil de comprender la sintaxis, crea programas eficientes, está disponible para todo tipo de arquitectura:  teléfono celular, consolas de videojuegos, computadoras, etc. Respecto a UNIX, su diseño es excelente por su sencillez, casi todos los sistemas operativos lo utilizan y/o descienden de el: Linux, los telefonos con Android, Bada, WebOs, el sistema operativo de las Mac (MacOs) y de los iPhones (iOS). Casi el 70% de los servidores de Internet usan sistemas operativos con arquitectura UNIX.

Así que si usas tecnología digital hoy en día, es muy probable que estes usando tecnología influenciada por el trabajo de Dennis Ritchie, desde tu reproductor musical hasta la computadora, desde que te conectas a Internet o utilizas un reproductor blu-ray, entre otros. Gracias a este hombre le debemos gran parte del avance de hoy en día, pero su trabajo solo era comprendido por la gente del área y no por las personas «comunes».

Para finalizar quiero compartirles mi frase favorita de él y la canción de programar en C:

«UNIX es básicamente un sistema operativo muy sencillo, pero hace falta ser un genio para entender su simplicidad».

Dennis Ritchie.

Deja un comentario

Facebook libera su propio entorno de ejecución para PHP

Hoy salió a la luz una noticia importante para todos aquellos desarrolladores de PHP, pues Facebook acaba de mostrar su entorno de ejecución de PHP con el fin de optimizar hasta un 50% o más (dependiendo de los casos) la ejecución de scripts en este lenguaje. Tal vez le parezca un poco de optimización pero cuando eres una empresa grande como Facebook que cuenta con 50000 servidores aproximadamente y sirve a 300000000 de usuarios, un 50% mas de rendimiento por el mismo hardware, es bastaste.

Lo que hizo esta gente es crear un traductor de PHP a C++, donde luego se compila a lenguaje de máquina utilizando G++ (el compilador GNU de C++), permitiendo «migrar» aplicaciones PHP a lenguaje de máquina y ejecutarse con mayor velocidad, obviamente se pierde las voluntades del lenguaje dinámico e interpretado  junto a la eliminacion de algunos comandos que no se pueden adaptar a C++, como el caso de eval() que evalúa código PHP en tiempo de ejecución, el uso de $$ y otras funciones mas.

En el screencast del lanzamiento su creador comentó que este proyecto no busca sustuir el entorno de ejecución de PHP ni hacer que la gente compile todo a C++, sino que en ambientes de alta demanda, utilizar PHP con servidores web tradicionales en el momento de desarrollo y luego cuando se esté listo para producción compilarlo en C++ y obtener mayor rendimiento.

Cabe destacar que HipHop PHP también es un servidor web para servir estas páginas generadas y que se esta trabajando en un interprete para PHP, sin embargo es muy temprano para dar opiniones ya que apenas hoy se hizo el anuncio y liberación del codigo en Github , esperemos a ver que ofrece el futuro del proyecto de código abierto.

Mas informacion: https://developers.facebook.com/blog/post/2010/02/02/hiphop-for-php–move-fast/

Deja un comentario

Código fuente de Skate or Dice

Hace dí­as publiqué  sobre un programa que hice para el PSP acerca del fabuloso juego de azar Skate or Dice, la respuesta fue buena para ser mi primera aplicación y pues debido a la solicitud por parte de muchas personas aquí­ les publico el código fuente, para que con ello puedan entender como se programa para la PSP y así­ mejorar este programa (si lo hacen publí­quenlo) o realizar nuevos.

En el comprimido podrán encontrar el programa con formato para Visual C++ 2008 Express , el cual, debe estar configurado para utilizar el PSPSDK para Windows y así­ poder compilar la aplicación. Si son usuarios de linux, pueden instalar el PSPSDK y el toolchain y compilarlo con GCC o cualquier IDE que utilice este compilador (ejem, Netbeans, Eclipse, etc).

Código fuente de Skate or Dice

Bueno espero recibir comentarios o ayudas.

1 comentario