miércoles, 27 de febrero de 2008

¿Por qué C/C++?


Tal vez sea obvio por qué. Por supuesto hay lenguajes más fáciles e incluso más modernos. Pero sigue siendo un lenguaje de uso profesional.
Si uno echa una ojeada a las ofertas de trabajo de los equipos de desarrollo, verá una y otra vez la exigencia, para los programadores, de dominio y experiencia en la programación en C y C++.

Por ejemplo. En la página de ofertas de empleo de Bungie (la desarrolladora de la saga Halo) se anuncia que de un programador (generalista) se espera que sea o goce de:
  • Smart, driven and adaptable
  • Passionate about games and game programming
  • Excited to tackle new and varied challenges
  • High quality standard for personal code
  • Basic understanding of algorithms, performance and optimization
  • Good working knowledge of C/C++
... y ventajas añadidas son:
  • Previous console experience
  • Professional C/C++ coding experience
  • Expertise in a specialist area (such as mathematics, physics, networking, AI or graphics)
  • Experience working in a team environment and good communication skills
  • History of hobbyist game programming, mod or bot work
  • A love of combat on the high seas
Por eso, aunque no sea el lenguaje más accesible, puestos a aprender algo conviene empezar por aquí. El salto luego a otros tipos de código no puede ser muy complicado (quien sabe programar en un lenguaje tiene una familiaridad con los algoritmos y el empleo de recursos que bien debe valer en otros casos).

Más ventajas: hay muchos compiladores gratuitos y mucho soporte on-line y es un lenguaje de alto y bajo nivel (es decir, permite programar tanto operaciones rudimentarias como operaciones de operaciones).

Ah, se me olvidaba: un muy buen libro para empezar (el que yo he usado y sigo usando) es Aprenda C++, de Jess Liberty y David B. Horvath, muy bien traducido por Anaya Multimedia. Su carencia principal es que ignora C. Pero sus bondades son muchas: buena curva de aprendizaje, muchos ejemplos, magnífica ordenación de los capítulos (incluyendo uno sobre precompilación, otro sobre plantillas y otro sobre manipulación de errores), bastante dirigido a la programación orientada a objetos y lleno de consejos para programar código limpio, eficiente y fácil de mantener.

No hay comentarios: