viernes, junio 05, 2009

Windows 64bits.... el fin de los programas de 16 bits.

Esta última semana he recibido por lo menos 10 llamadas de clientes y correos electrónicos que me dicen que sus programas que estaban funcionando sin problemas en Windows XP y en algunos casos con Vista, no están funcionando en computadoras nuevas (compradas de 3 meses a la fecha) que vienen con Windows Vista preinstalado (lo cual no es de extrañar, pero bueno, esa es otra historia).

Investigando mas al respecto con mis proveedores de Hardware, me estoy enterando que muchos equipos que se están vendiendo de unos meses a la fecha, vienen con el Windows Vista 64, es decir, el sistema operativo no es de 32 bits, sino de 64 bits ¿ será cierto ?.

No bien me enteré de esto, me lancé a mi tienda de computadoras favorita: Best Buy y me puse a mirar unas 20 computadoras que estaban en exhibición entre escritorios, portátiles y NetBooks y efectivamente, un 60% de esos equipos ya viene con Windows Vista 64 preinstalado, salvo los NetBooks que vienen con XP Home y algunos portátiles de gama baja, el resto de los equipos que miré tenía Windows Vista 64.

Esto presenta un problema que ya anticipaba yo hace como 2 años en un artículo de este blog Titulado ¿ Porqué tengo que cambiar de Clipper a (x)Harbour ? en el cual exponía las limitaciones de los programas hechos en CA-Clipper de 16 bits ejecutandose en plataformas de 32 bits.

Ahora el problema vendrá porque los programas en 16 bits, entiéndase los programas en CA-Clipper modo consola NO CORREN EN WINDOWS 64, y entiéndase por Windows 64 toda la nueva generación de sistemas opertivos: Windows 2008 Server 64, Vista 64, XP 64 y muy seguramente en Windows 7 también veremos una versión de 64 bits.

Lo mas interesante de esto es que los fabricantes de hardware de unos meses a la fecha han dejado de distribuir equipos con versiones de 32 bits del sistema operativo y han comenzado a distribuir muchos equipos con versiones de 64 bits pre instaladas.

El usuario final de estos equipos quizá no note la diferencia, pero nosotros como programadores si que la notaremos, porque de una forma u otra nos veremos afectados.

¿ Como me afecta esto como programador de CA-Clipper y de Xbase en general ?

Los primeros afectados serán los programadores de CA-Clipper, porque para empezar, el compilador, es decir. el CLIPPER.EXE. no funciona bajo Windows de 64 bits, por lo tanto no te será posible compilar tus programas.

Lo mismo pasará con los programas con FiveWin o con Clip4Win compilados usando CA-Clipper, aunque sean aplicaciones Windows, no funcionan en Win64, el problema va un poco mas allá, pues si eres usuario del Borland Resource Workshop, tampoco podrás usar esta herramienta para editar tus DLLs o tus archivos RC, porque el BRW también es una aplicación de 16 bits.

Tus alternativas no son muchas, de hecho solo es una: tienes que migrar por tus programas por lo menos para que funcionen a 32 bits, ya sea con (x)Harbour o Xbase++ o algún otro compilador compatible con Clipper a 32 bits para modo consola, o con WinDock si trabajas con Clip4Win y con FiveWin Harbour. El editor de recursos BRW puede ser sustituido por el de Pelles C o bien por algún otro como el Resource Builder.

Los programas de 32 bits, hechos con (x)Harbour no se ven afectados por este cambio, es decir, tus programas en modo consola, o para Windows hechos con Xailer, MiniGUI o FiveWin para (x)Harbour seguirán ejecutandose sin problema alguno bajo sistemas operativos de 64 bits.

Hay que ir tomando precauciones con respeto a esto, aún si ya estás trabajando a 32 bits, hay que comenzar a pensar en pasar a 64 bits tus programas con la menor cantidad de molestias posibles, de momento esto no es crítico ni de urgencia, tus programas a 32 bits, como ya lo mencioné anteriormente, correrán sin problemas por lo menos con la siguiente generación de Windows, es decir en Windows 7, ya he visto programas en Xailer corriendo en el beta de Windows 7 y de momento no parece haber ningun problema.

De momento no se habla mucho del tema de los 64 bits en la comunidad de (x)Harbour, aunque es bien sabido que existen versiones de 64 bits por lo menos de Harbour, aunque de (x)Harbour 64 bits no se dicen muchas cosas.

Existe otro "pequeño" incoveniente hablando de aplicaciones de 64 bits, el problema no es tanto de los compiladores (x)Harbour, viene del lado de los compiladores de "C" utilizados para generar los EXE finales después de la compilación con (x)Harbour, porque no todos los compiladores de "C" generan EXEs de 64 bits.

El Borland C++ 5.5 que usamos la mayoría de los programadores de (x)Harbour NO GENERA EXEs de 64 bits, pero hay otros compiladores de C que si lo hacen, como el Microsoft C/C++ 64 (que es el mismo que utiliza FiveWin 64), el PellesC, el MinGW, Watcom, etc.

El equipo Xailer está tomando precauciones al respecto, planteándose un cambio de compilador de "C" para la próxima versión, muy seguramente en la versión 2.0 de Xailer veremos la posiblidad de compilar nuestras aplicaciones con 3 compiladores de C distintos: Borland C++, MinGW y Pelles C, los motivos, ventajas y otras razones por las que se cambia el compilador de C con Xailer las puedes leer en Xailer.Info.

Así las cosas, ahora si ha llegado el momento de de darle las gracias a nuestro querido Clipper, mandarlo a "repisaware", y comenzar a buscar nuevas alternativas de por lo menos 32 bits.

Y no quiero dentro de 1 año, o en menos tiempo, a la velocidad a la que van sucediendo las cosas, escribir un artículo que se llame .... SE LOS DIJE, NO LE QUEDABA MUCHO TIEMPO A CA-CLIPPER, ya saben que odio tener razón.

7 comentarios:

Nicolas del Pozo dijo...

¿De verdad que odias tener razon?.
Yo mas bien pienso que te regozijas. (jejeje)

Juan Hernandez dijo...

Hola Sr. Flores.

Hace algunos meses un cliente me pidio realizar cambio de lenguaje a unos equipos que se trajo de E.U.A., No fue gran problema hacerlo ya que se consiguieron los medios on line para realizar dicho cambio sin afectar el preinstalado de windows sin necesidad de formatear. El problema fue que este cliente tiene usando una aplicacion mia en Clipper 5.0 para MS-DOS y pues oh sorpresa! esta version de windows era la de 64 bits y pues tras batallar un rato la unica solucion momentanea pero latosa fue instala un emulador DOS (DosBox) con el que se pudo correr nuevamente el programa no sin antes realizar unos ajustes al vapor para lo que eran las salidas a impresion. El emplear este emulador permitio salvar de momento el problema. Saludos!

Rene Flores dijo...

Ramiro:

Tus comentarios no aparecen porque me parece un tanto ofensiva tanto para mi como para mis lectores tu forma de expresarte.

Las maquinas virtuales son una solución pero no son exactamente "la" solución, por ejemplo nosotros hemos tenido problemas usando DosBox con Advantage database Server y el soporte a impresoras no es precisamente eficiente.

Pero hay formas de expresarlo y las tuyas no son precisamente las mas educadas.

Anónimo dijo...

Hola, Rene

Primero disculpas porque te molesto el como dije las cosas.

Pero regresando al tema el VirtualBox no tiene nada que ver con el Dosbox u los demas y con esta opcion queda solucionado el problema de los 16 bits de aqui hasta que el VirtualBox no sea soportado por los nuevos SO.

Insisto a la comunidad que lee tu blog y que aun sigue en 16bits que pruebe el VirtualBox antes de dar calquier salto si no se amerita.

Saludos
Ramiro

Willy dijo...

Bueno, a mi al igual que ha rene me pasa lo mismo conmis programas, la verdad esuqe ya debemos empezar aprogramar bajo 64 bits, y no a 32, con esta velocidad de desarrollo del hardware le veo poco tiempo de vida a las aplicaciones de 32 bits.

JOHAN dijo...

Yo probé la compilación de mis aplicaciones con xHarbour y PellesC y tuve problemas con las cadenas de caracteres muy largas.

Resulta que unas consultas SQL las tengo en unas variables de tipo Character; compilando con Borland C no da problemas, pero al compilar con PellesC me arrojó error en tiempo de compilación, lo que me hace pensar que si en algún momento tengo que leer el contenido de un archivo texto o un campo MEMO y meterla en una variable, me va a dar error.

Por ese motivo tuve que devolverme a compilar con Borland C.

Anónimo dijo...

Hola Rene: Por lo que expresa Johan, Pellesc no es alternativa como herramienta, Visual C++ es la solución a los 64 bits
Saludos de un Seguidor
Julio César Gómez
Lima