Sobre C++ Builder 2010 y su historia

Tenemos una nueva versión de C++ Builder a la vuelta de la esquina, para el 24 de agosto si no me he equivocado en los cálculos. Ciertamente es una gran cosa que Embarcadero, los nuevos propietarios y quiero creer que definitivos, hayan devuelto este magnífico producto a la vida, como vamos a ver. [Si no te molan mis pajas mentales históricas y autobiográficas, salta hasta C++ Builder 2010].

Un poco de historia

Yo fui un furioso borlander, hasta quizás el nivel del fanatismo. El que haya leído mi serie histórica (aquí y aquí) sabrá que, en la academia en donde aprendí C, nos pasaron el entorno de desarrollo Turbo C 2.0, que le daba como mil patadas al Microsoft C (y no es cosas de fundamentalismos, por aquella época el Turbo C era la maravilla de las maravillas tecnológicas en cuanto a compiladores de C). Por supuesto era pirata, como era pirata todo lo que usamos en aquella academia (por cierto, financiada con los primeros fondos de la UE para desempleados, de hecho nos pagaron una pasta gansa por ir a estudiar)…

La academia. De la academia aquella recuerdo una anécdota (por llamarla de alguna manera) que quizás no debería contar pero que voy a hacer. No recuerdo la fecha exacta en que estudiamos, pero era cerca del verano, y allí dentro hacía un calor más que sofocante, lo que, junto a calor generado por los ordenadores hacía que apenas pudiéramos concentrarnos en lo que estábamos haciendo. También teníamos otro problema, y es que los ordenadores eran, por decirlo suavemente, una mierda. A la par que antiguos, ninguno funcionaba bien, como tampoco los profesores eran muy buenos que digamos.

Vamos, que éramos el culo del mundo, una tapadera para que el dueño de la academia se forrara con los fondos aquellos. Nuestras quejas caían en saco roto, ya fuéramos a hablar con el dueño de la empresa como al INEM de nuestra ciudad. Prometían pero no cumplían, y algunos de nosotros estábamos allí para aprender, no para cobrar. Así que ni cortos ni perezosos, tres de nosotros cogimos el autobús y nos fuimos a la oficina del INEM en Alicante y expusimos el tema: que teníamos ordenadores que no funcionaban, que nos moríamos de calor, que los profesores sabían menos que nosotros (que no era poco), que nos habíamos quejado al dueño de la academia y al INEM de Elda y que no nos habían hecho caso, que cuando venía el propietario se iba a comer con el encargado de los cursos del paro y aquí haya paz y allí gloria, y que si no nos hacían caso no tendríamos inconveniente en irnos a quejar a Valencia o a Madrid…

Buenooooooooo, la que se armó. Nosotros, callados como putas, al día siguiente volvimos a clase como si nada hubiera pasado, y ese mismo día cayó el Armagedón. Vinieron dos señores muy trajeados, echaron un vistazo, llamaron por teléfono al dueño, el profe estaba blanco como la cera, nos mandaron a todos a casa hasta nuevo aviso y… en cosa de tres días teníamos profesores competentes, aire acondicionado y lo último de lo último en ordenadores. A partir de ese momento, aprendimos.

***

Ya lo he comentado con anterioridad, para mi aprender C fue lo más, la revelación del maravilloso mundo del desarrollo. Y más todavía con el Turbo C, primer concepto de lo que ahora nos es tan consustancial y sin el cual muchos de nosotros no sabríamos vivir. Luego vinieron otras cosas, como Visual Basic y Delphi, elementos que no podían coexistir sin un IDE. Y con ellos también nació lo que yo llamo la generación de los pseudoprogramadores. Y que nadie se me mosquee. Para un buen programador que pueda haber en VB o Delphi, hay 10 pésimos. En C (y C++) también los hay, pero esos se paran y cambian a otro lenguaje cuando están haciendo un programa de 10.000 líneas y ya no saben cómo meterle mano (ni ellos ni nadie más). Así que en esos otros lenguajes están, también, los de C que no saben.

Del Turbo C pasé al Turbo C++, no recuerdo qué versión, creo que también la 2.0, aunque mi memoria se vuelve como agua con el tema de las versiones aquellas. Sé que de las versiones «Turbo» se pasó las «Borland», que cambiaban -y mejoraban- el concepto del IDE. Aquella (cuando la tienda y algo después) fue mi época, más que de programar en C, de hacerlo en Clipper. Y las cosas están confusas en mis meninges. Sé que manejé varias versiones de ambos productos, todas ellas ejecutando en MS-DOS, aunque con algunas ya se podía desarrollar para Windows.

Bueno, el tema es que en su momento compré el Borland C++ 3.0, que fue mi primera herramienta seria (y tomada en serio) de desarrollo. Si no recuerdo mal, aquello tenía un IDE para DOS y otro para Windows. Ya os podéis imaginar cómo funcionaría la versión Windows, arrastrándose como una tortuga reumática. Lo que no recuerdo eran pantallas azules ni caídas extrañas, que no era poco. Además, yo usaba la versión de MS-DOS, mucho más estable y funcional.

Al poco de comprar (sí, he dicho comprar) la versión 3.0, salió la 3.1, que soportaba Windows 3.1 y que apenas tenía otras mejoras que usar el SDK (o como quiera que se llamara en aquella época) de la susodicha versión de Windows. Aquello me tocó un poco los cojones porque hacía nada que había pasado por caja, así que la conseguí pirata. En aquellos tiempos no hacía nada útil con aquellas herramientas más que usar los manuales para aprender C++ y programación bajo Windows.

De esos años recuerdo haber comprado el libro Aplique C++ de Bruce Eckel, que acabo de recuperar de mi biblioteca. Si bien dije en una entrada anterior que cubría el CFRONT 2.1, ahora veo que no es cierto, que sólo llega al 2.0, y encima en un capítulo aparte. Añadamos los diez o doce manuales que traía el Borland C++ 3.0 y ahí tenéis mi aprendizaje de C++, que tenía que tomarme con bastante calma, ya que aprender un lenguaje estudiando su sintaxis en formato backus-nair tiene su mérito (por eso me compré el libro citado).

Después vino Borland C++ 4.0, que ya hacía enfoque en Windows y dejaba las herramientas de MS-DOS como secundarias, y ahí fue cuando yo empecé a usar el IDE de Windows como mi editor de desarrollo, usara Clipper o el propio Borland. En aquellos años una unidad de CD valía una pasta gansa, aunque en algún momento Creative (o como se llamara entonces), sacó la Sound Blaster 16 con unidad de CD, que yo compré, más que nada por el lector, porque la música no me hacía ni fu ni fa, y encima hacer funcionar aquello era toda una odisea y se comía buena parte del procesador cuando estaba sonando.

Pues bien, yo tenía unidad de CD, pero me equivoqué al pedir la versión 4.0 y la recibí en disquetes, o más bien ignoraba que hubiera versión en CD. Reíros un rato, creo que eran 40 disquetes de 3.5″ y alguno más de 5 y 1/4. Y, por supuesto, otros diez o doce manuales en papel. Lo que más me tocó las narices fue que el disquete 1 se me rompió al poco de tener aquello, y me tocó conseguirlo pirata porque el distribuidor en España se negaba a creerse eso de que se me había roto.

Incidentalmente, esa fue la primera vez que me plantee seriamente el motivo de comprar software original, si las pegas eran superiores a las ventajas. Lo único que me decidió a seguir siendo legal en ese aspecto era que los juegos conseguidos pirata terminaban haciendo cosas raras -como colgarse o no funcionar bien-, y se suponía que el software comprado, al venir de una fuente fiable, no traería errores en el soporte. Más tarde descubrí que a los legales también les pasaba. En fin.

Luego vino la versión 4.5, que tampoco compré porque la vi como una simple mejora. Más tarde sacaron Borland C++ 4.5 and Database Tools, que conseguí, de nuevo, pirata, porque aquello de hacer bases de datos con C++ me llamó mucho la atención. Era como mezclar churras con merinas, o al menos así lo pensaba yo, que vivía muy conforme con mi Clipper y mi MS-DOS, aunque estaba profundizando, a nivel diletante, en Win16. Pero lo de database tools era como una falacia, manejar bases de datos con C++ era algo como los Trabajos de Hércules, con lo que ahora sé eran los recién nacidos interfaces COM (aunque se llamaran OLE y OLE2). Inmediatamente después salió la versión 4.52 como bug fix de la anterior.

Cuando salió Borland C++ 5.0 pasé por caja, y volví a recibir una nueva espuerta de manuales, aunque ya pedí expresamente la versión en CD. O venía en CD y si querías disquetes tenías que pagarlos (y pedirlos) aparte, no recuerdo exactamente. Esta versión me la tomé muy en serio y me puse a estudiarla a fondo, sobre todo el IDE y lo que podía hacer, con aquellas plantillas de metaproyectos, y el acceso a sus interioridades del mismo mediante un lenguaje de script orientado a objetos. Aparte el compilador era bastante bueno y generaba el mejor código posible. Poco después recibí, gratis, la versión 5.02, otro bug fix.

Más o menos entonces también descubrí algo que me llenó de gozo: los parches. Sí, los fabricantes sacaban pequeños programas más o menos gratuitos que solucionaban algunos problemas de sus productos. Ciertamente el uso que yo hacía del Borand C++ no traía a la palestra ningún fallo si no era que tenías que tener cuidado con el orden de declaración de las variables y que a veces no se llamaban a los destructores. Casi nada, pero en mi caso no tenía importancia, lo veía como algo normal. Claro, era lo único que había -y tenía. No obstante, para la versión 5.02 conseguí, con mucho sudor, dos parches que apliqué con más satisfacción que utilidad, porque no vi diferencia entre antes y después.

***

Visual C++. No os penséis que sólo vivía de Borland. No recuerdo la sincronía entre versiones, pero en su momento conseguí Visual C++ 4 y luego la versión 5, y ciertamente no tenían nada que hacer frente a Borland. Con Visual C++ 6.0 la cosa cambió un poco, porque al parecer el mercado se había volcado hacia MFC en lugar de OWL (que también estudié, como estudié el poco valorado Turbo Vision, una biblioteca de clases potentísima para hacer lo mismo que con OWL pero para DOS). Sin embargo, en comparación, MFC era (y sigue siendo, al menos hasta la versión de Visual C++ 2008) una mierda, comparada con OWL. Esta última encapsulaba y abstraía mediante orientación a objetos real el api de Win32, mientras que MFC no es más que un envoltorio pseudo orientado a objetos de Win32. No obstante, se ve una tendencia a cambiar con Visual C++ 2008 Service Pack 1, en la que MFC, tras haber permanecido prácticamente estática desde la versión 6.0, parece estar evolucionando hacia algo más decente. Y es que la competencia de QT le anda a la zaga… con muchas ventajas frente a MFC.

Las versiones de Visual C++ las he conseguido por canales un tanto tortuosos. La 4 creo que me la regalaron por algo, simplemente me dieron el CD en una caja precintada. No puedo recordar por qué ni quién, pero sé que fue gratis. La 5 la compré con una licencia de estudiante, y la 6 también fue regalada. Por más que pienso, no consigo recordar cómo las conseguí, de hecho la 6 fue Visual Studio 6.0, que también traía Visual Basic y Visual InterDev o algo así, que jamás he sabido para qué servía. Y también sólo la caja, sin manuales.

Luego vino Visual Studio 2003 como elemento al comprar una suscripción a la MSDN, y luego me hicieron MVP y pude acceder a todas las versiones sin problemas, pero esa es otra historia.

***

C++ Builder. Bueno, el tema es que, una vez que me decidí a aprender en serio lo que traía Borland C++ 5.02, el fabricante sacó algo nuevo llamado C++ Builder. Como ya era cliente fijo de Database DM, me enviaron la publicidad del producto, que leí pero no entendí. Así que llamé a la empresa, y una amable chica me estuvo contando que eso era «lo nuevo de Borland, era programar como en Visual Basic o Delphi pero en C++. Había unos componentes que tu soltabas sobre la ventana y ya tenías hecha la parte visual de la aplicación». Si no me dijo exactamente eso, lo que me contó no se alejaba mucho de lo citado.

Y menos mal que lo compré. Aquello supuso una revolución personal, abandoné definitivamente Clipper (de hecho le di a todos mis clientes el código fuente de sus respectivas aplicaciones junto a propio Clipper) y me puse a estudiar aquello. No es que viviera de programar, que no lo hacía, pero algún que otro cliente sí tenía, y tampoco era dejarlos en la estacada, de hecho siempre les he mantenido los programas hasta que los han abandonado, aunque sé de uno que todavía tiene y usa la agenda doble que le hice. Bueno, ya no, porque hace cosa de un par de años el hombre murió, pero si siguiera vivo seguro que la estaría usando.

Con C++ Builder y una oportunidad que tuve pude dedicarme definitivamente al desarrollo y no a ir a salto de mata haciendo programas aquí y allí (mi trabajo diario y normal no era más que un modo de supervivencia). Una cosa que no he dicho es que de vez en cuando hacía algo embebido sin sistema operativo, incluso desde un PC «a pelo» (evidentemente en modo real x86 y sin muchas zarandajas). Sin embargo, esta oportunidad me puso en el camino que yo quería, y gracias a mi doble vertiente de programador de PC y no-PC he sobrevivido más que bien, y espero hacerlo en un futuro.

La siguiente versión fue C++ Builder 3 (no hubo 2 por un tema de sincronización con Delphi), que también compré. Y luego la 4. Y entonces se me hincharon las pelotas y decidí dejar de hacer el tonto comprando siempre lo mismo y me planté con C++ Builder 4, sus parches y sus bugs, que no eran pocos.

Más o menos entonces Borland entró en su fase «Inprise, me cambio el nombre porque no tengo ni puta idea de qué estoy haciendo» (Parece ser que las empresas también sufren crisis existenciales, y también parece ser que para ellas no vale eso de subirse a una montaña y preguntarse por el sentido de la vida). Y dejó de cuidar sus herramientas de desarrollo. Y empezó a dar bandazos. Sacaron el Kylix, un producto adelantado a su tiempo que ellos mismos mataron. Y otra herramienta de desarrollo en C++ multiplataforma que ahora no recuerdo cómo se llama, que también mataron. Compraron CodeWright y mataron sus productos. En fin, que de tontos está lleno el mundo.

En el tema del C++ sacaron las versiones 5 y 6 del C++ Builder, que no eran otra cosa que la 4 con la cara lavada. Y con cada versión, más bugs sin solucionar, hasta que mataron el producto. Supongo que con Delphi fue más o menos lo mismo. Yo usé la 5 y la 6 pero pirateadas, aunque mi herramienta principal siempre fue, durante muchos años, la 4.

Parece ser que algo estaba ocurriendo entre bambalinas, porque a partir de la 6 el entorno fue completamente remodelado intentando imitar las versiones de Visual Studio, con nuevas características y nuevas potencialidades. Cuando fueron saliendo las sucesivas versiones X, 2006, 2007 y 2009 yo estaba desarrollando con C# (no muy convencido, la verdad) y Visual C++ en mi trabajo actual (de hecho aproveché el cambio entre el anterior y el actual para cambiar por completo de herramientas). Yo pensaba que ambos funcionarían mejor que el C++ Builder, pero no es cierto. En el caso de .NET y C#, como te salgas de lo que Microsoft ha determinado como estándar, la mayoría de cosas no funcionan, aunque poco a poco lo van solucionando. Por otro lado, el compilador de C++ de Microsoft es muy bueno, bastante mejor que el de Borland, pero Visual Studio es otra cosa. En relación a C++ no anda muy fino, más que nada porque la implementación básica es para C#, y C++ anda metido con calzador. Esperemos que Visual C++ 2010 solucione el tema (y personalmente creo que, si no lo soluciona, al menos lo mejora sensiblemente).

Otra cosa es MFC, que son difíciles de aprender y retorcidas a más no poder. Técnicamente hablando no entiendo por qué ganó a OWL, pero la vida es así. Y ahora que más o menos me defiendo con MFC, añoro con bastante intensidad el C++ Builder y he abandonado desarrollar con C# y .NET mientras pueda evitarlo.

***

Pero con C++ Builder 2009 estoy viendo un agradable cambio. Cuando salió la versión 2007 o 2006, no recuerdo bien, fui invitado a una presentación y, como coincidía con el SIMO e iba a ir con mi jefe, pues asistí. Allí fue donde vi por primera vez a Octavio Hernández, y allí fue donde dejé caer mi pregunta bomba: «¿Va Borland a seguir publicando versión tras versión de este nuevo C++ Builder sin corregir los cientos y cientos de bugs que hay pendientes?», de hecho creo que asistí sólo por preguntar eso. Ciertamente cuando tradujeron aquello al inglés todos quedaron bastante incomodados, pero las muestras de adhesión a mi pregunta entre el público eran evidentes. Así que creo que fue David Dean el que dijo que sí, que él prometía que los errores se solucionarían.

Yo hice como que me lo creía pero interiormente lo tenía claro: esa es la respuesta que tienen que dar, de hecho seguí ignorando el producto. La 2006 fue una versión puente, la 2007 estabilizó muchas cosas y la 2009 significa el paso de ANSI a Unicode en la VCL, ciertos avances en C++ como la inclusión de la biblioteca boost y algunos avances sobre C++0x.

Y resulta que sí, que sí se están preocupando de los bugs. Por ejemplo, la versión 2007 tiene doce parches, y la 2009 cuatro que son seis, porque los sacan de dos en dos (uno para el compilador y el IDE y otro para el soporte de bases de datos). Y eso me hace querer volver, aunque reconozco que me he perdido muchos pasos en relación a la evolución de la VCL (desde la versión 4), y es difícil de recuperar.

C++ Builder 2010

Cuando escribo esto faltan 14 días para la salida del producto. Podemos ver aquí un reloj de cuenta atrás y un vídeo con las novedades, en inglés.

Básicamente mejoran el IDE con nuevos elementos:

· IDE Insight: Es una ventana de búsqueda que muestra las interioridades del IDE. Es decir, si uno quiere compilar pero no encuentra la opción por ningún lado, abre esta ventana, busca «compile» y le aparecen todas las cosas que tiene el IDE con esa funcionalidad y según el contexto actual. A simple vista parece una tontería, pero es una herramienta fantásticamente poderosa.

· Formateador de código, algo que ya trae Visual Studio desde al menos la versión 2003: seleccionas un bloque de código y formatea correctamente los indentados.

· Explorador de clases. Parece ser que es bastante potente y no sólo está limitado a nuestro proyecto, sino que puedes echar un vistazo por cualquier biblioteca instalada. A efectos comparativos, es una mezcla de la ventana de «Class View» y de «Object Browser» del Visual Studio con proyectos .NET.

· Más visualizadores de datos en el depurador. Ciertamente en esto siempre ha flojeado un poco el IDE. Esperemos que ahora esté solucionado.

· Control de Hilos en Depuración: una ventana de depuración especial que permite trastear con los hilos de nuestra aplicación, como ejecutar sólo uno de ellos, ejecutar con según qué hilos dormidos, etc. Según dice el vídeo es capaz de detectar deadlocks y similares.

· Compilación en background. A estas alturas suena algo risible que se presente eso como una novedad, cuando era algo que ya tenía el Turbo C, tuvo el Borland C y el Borland C++, y ha tenido de siempre Visual C++…

· Traerá integrado el SDK de Windows 7, por lo que se adelanta en cierta medida a Microsoft.

Por desgracia parece ser que el compilador de C++ de Borland (perdón, Embarcadero) sigue siendo el mismo pobrecito de siempre, sobrepasado por los estándares y bastante faltón al respeto.

Embarcadero está continuamente poniendo información sobre las novedades de la nueva versión en el canal de Twitter llamado EmbarcaderoTech, y hay vídeos en casi castellano y en portugués (que se medio entiende) aquí.

13 comentarios sobre “Sobre C++ Builder 2010 y su historia”

  1. Me ha gustado mucho tu post, he soltado alguna que otra sonrisilla, ya que, aunque tengo la sensación de ser mas joven, he vivido la evolución de Turbo Borland C++ Builder Insight 200x… de manera similar xD

    Un saludo y enhorabuena por el blog.

  2. Como me has recordando mis andanzas con c++, turbo c, clipper y delphi, recuerdo mi paso por ellos, piratear todo lo que caia en mis manos y quien lo hubiera dicho, años despues mi paso por esos lenguajes me facilito ya en .net mi trabajo con compaq framework y un mejor entendimiento del framework, excelente tu artículo.

    Un saludo.

  3. Muy bueno tu post. Me he sentido totalmente reflejado. Aunque yo empecé con el Turbo Pascal. Sin embargo, mi entorno preferido al igual que tú sigue siendo el Builder.

    Ahora doy clase en la Universidad y lo sigo usando como herramienta de programación. Los alumnos encantados porque en una sola clase ya se hacen con el entorno y podemos centranos en lo que queremos. Un año traté de hacerlo con Visual Studio, y fue un desastre total.

  4. No exisite ningún libro de C++ Builder 2010 publicado. Lo más moderno es del C++ Builder 6, cuatro versiones atrás, y encima está en inglés y descatalogado, aunque creo que Anaya tiene algo, también descatalogado.

  5. Excelente post, muy interesnte tu narracion no pude evitar dejarla de leeer 🙂

    Soy de los que me reuso a migrar de la programcion en «c» ia que se me hace excelente el nivel solo que como dices tu van matando poco a poco el lenguaje. Deseo tanto que con este 2010 todo cambie.

    Yo me enamore del builder 5 y hasta ahora fueron puras desepciones por falta de informacion. compre un libro, pro nunca encontre mas o soy muy malo pra buscar o no existen. espero hayga un libro del 2010, si sabes algo me avisas . Estoy dispuesto a retomar el camino con este c++ Builder2010

  6. Rafa me gustaria ser tu seguidor. tal ves tengas una pgina donde registrarse o algo asi pro tu me inspiras a seguir adelante con la programcion que avia avandonado Hace 4 años despues de titularme. Espero me recomiendes alguna pagina para unirme algun club de progrmacion o si tu tienes con gusto me unire 🙂 Hasta Pronto

  7. @Ulices, desengáñate: no sólo la 2010 es igual a las anteriores (con una espuerta de bugs nuevos apenas solucionados con los parches al efecto), sino que el compilador es pésimo en las optimizaciones.

    Tampoco la nueva versión XE (que sale a septiembre si no pasa nada) trae nada nuevo para C++ (ni siquiera el soporte para las novedades de C++0x).

    Y futuras versiones sobre el roadmap recientemente publicado tampoco auguran nada nuevo: hasta por lo menos 2013 no va a haber compilador de 64 bits y/o soporte multiplataforma…

  8. @Ulices, si quieres puedes darte de alta en la web de Geeks, pero no es necesario, ni para poner comentarios ni para seguir a nadie. Con que uses la fuente RSS sabrás todo lo que pongo aquí.

    Clubs y páginas en castellano que hablen sobre C++, pocas o ninguna.

    Tienes los foros WEB de MS:
    http://social.msdn.microsoft.com/Forums/es-ES/vcppes/threads
    http://social.msdn.microsoft.com/Forums/es-ES/vcppdotnetes/threads

    Y los de Solo Código:
    http://foros.solocodigo.com/viewforum.php?f=42

    Y poco más.

  9. Hola soy nuevo por aqui, estaba buscando sobre como descargar borland C++ y me encontre con tu post, muy bueno por siacaso, me gusto esa historia de como empezastes, pero soy nuevo en programacion ojala y llegue ese dia donde ya pueda decir soy programador xD por ahora recien empiezo. Muy buen post!

  10. Saludo de otro Borlander… Aunque empecé con Turbo Basic, y luego pasé a Turbo Pascal, recuerdo mis años con Turbo C 2.0, Turbo C++ 1 y Borland C++ 3.1, como unos de los más felices.

Deja un comentario

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