{"id":15905,"date":"2019-05-13T06:43:35","date_gmt":"2019-05-13T05:43:35","guid":{"rendered":"https:\/\/changlonet.com\/blog\/?p=15557"},"modified":"2019-05-13T06:43:35","modified_gmt":"2019-05-13T05:43:35","slug":"los-viejos-rockeros-nunca-mueren-2","status":"publish","type":"post","link":"https:\/\/changlonet.com\/blog\/los-viejos-rockeros-nunca-mueren-2\/","title":{"rendered":"Los viejos rockeros nunca mueren"},"content":{"rendered":"<p>Vamos a ver si recuperamos un poco de regularidad en la publicaci\u00f3n de entradas en el blog. Llevo un par de meses que no tengo tiempo para casi nada. En la tienda estamos en pleno proceso de readaptaci\u00f3n. Como el tema del hardware se pone cada d\u00eda m\u00e1s complicado, pues volvemos a los or\u00edgenes: al software. Desde el verano pasado hemos ido cogiendo algunos peque\u00f1os proyectos de programaci\u00f3n a medida. El primero fue m\u00e1s un favor que otra cosa. Pero lo divertido es ver las herramientas que estamos usando para hacer estas aplicaciones.<\/p>\n<p style=\"text-align: center;\"><img decoding=\"async\" src=\"https:\/\/changlonet.com\/blog\/wp-content\/uploads\/2019\/05\/051219_1943_Losviejosro1.jpg\" alt=\"\" title=\"\"><\/p>\n<p>Este verano pasado un cliente nos llama. Nos dice que en la empresa donde trabaja, encargaron a la competencia una aplicaci\u00f3n a medida. Y no consegu\u00edan que ese programa funcionase correctamente. Nuestro cliente nos ped\u00eda que le ech\u00e1semos un cable, porque parte de la responsabilidad del fallo de la aplicaci\u00f3n iba a recaer sobre \u00e9l y no sobre los programadores. El motivo era porque \u00e9l hab\u00eda montado un par de tablas en Access, dos ventanas y una conexi\u00f3n con Excel. Y con eso llevaban un par de a\u00f1os trabajando. Pero lo que empez\u00f3 como una peque\u00f1a ayuda en el d\u00eda a d\u00eda de la empresa, se hab\u00eda convertido en una herramienta muy importante para ahorrar costes y obtener m\u00e1s informaci\u00f3n sobre las ventas. As\u00ed que llamaron a la empresa que les hab\u00eda vendido todo el software de gesti\u00f3n (un ERP muy potente y una aplicaci\u00f3n de n\u00f3minas) y les comentaron el tema. Y \u00e9l qued\u00f3 encargado del asunto. Nuestra compenteci\u00f3n, les dijo que cog\u00edan sus Access y le montaban una aplicaci\u00f3n .NET puntera y con las mejores y m\u00e1s modernas herramientas del mercado. Y as\u00ed fue. Pero la aplicaci\u00f3n siempre daba alg\u00fan error, o no validaba correctamente un campo o no respetaba las reglas del negocio en alg\u00fan proceso. Y llevaban ya as\u00ed seis meses y no ve\u00edan el final por ning\u00fan lado. As\u00ed que nos llamaba para ver si pod\u00edamos hacer algo en dos semanas.<\/p>\n<p>En un caso normal no habr\u00eda echo caso a la llamada de este cliente. Parec\u00eda una causa perdida de libro. Pero se trataba m\u00e1s de un amigo que de un cliente, adem\u00e1s estaba el sentimiento de hacer algo que la potente competencia no hab\u00eda podido hacer y el an\u00e1lisis de la aplicaci\u00f3n ya exist\u00eda: con el Access y las Excel que usaban, ten\u00edamos lo necesario. Pero se trataba de un plazo de tiempo muy corto. As\u00ed que pregunt\u00e9:<\/p>\n<ul>\n<li>Imagino que hay que trabajar en red local de forma concurrente: \u00bfmuchos usuarios?<\/li>\n<li>Solo se acceder\u00e1 desde las Oficinas de la empresa: \u00bfhace falta salir a Internet?<\/li>\n<li>\u00bfLos equipos de la empresa, tienen Windows 7 o 10?<\/li>\n<\/ul>\n<p>Las repuesta fueron claras: se trabajar\u00eda en red local, como m\u00e1ximo 5 usuarios a la vez, desde una \u00fanica ubicaci\u00f3n f\u00edsica y en la empresa todos los PCs corr\u00edan con Windows 10 y hab\u00eda un servidor con Windows Server 2016.<\/p>\n<p>Entonces le dije que si quer\u00edan una soluci\u00f3n en un plazo muy corto, ten\u00edamos que usar mi viejo compilador: Visual Objects, en su versi\u00f3n 2.7 que era la \u00faltima que compramos. Se trata de un lenguaje de programaci\u00f3n que era una evoluci\u00f3n del <a href=\"https:\/\/es.wikipedia.org\/wiki\/Clipper_(lenguaje_de_programaci%C3%B3n)\" target=\"_blank\" rel=\"noopener\">Clipper<\/a>, que a su vez era un compilador de c\u00f3digo de <a href=\"https:\/\/es.wikipedia.org\/wiki\/DBase\" target=\"_blank\" rel=\"noopener\">dBase III.<\/a> Ah\u00ed es nada. El compilador que ten\u00eda era del a\u00f1o 2.004. Pero como le dije, yo ten\u00eda ya un mont\u00f3n de librer\u00edas con objetos de negocio que hac\u00edan el 90 % de cosas que \u00edbamos a necesitas en la aplicaci\u00f3n. Y era c\u00f3digo casi mayor de edad, pero lo m\u00e1s importante es que estaba muy probado. Hice un peque\u00f1o prototipo para que viesen el aspecto visual y me lo aceptaron\u2026<\/p>\n<p>Y as\u00ed comenz\u00f3 la resurrecci\u00f3n de mi Visual Objects 2.7. La historia de este paquete es un pedazo historia de inform\u00e1tica de empresa. Clipper en su momento fue un gran bombazo. Permit\u00eda compilar c\u00f3digo dBase III y hacerlo funcionar muy r\u00e1pido. Y adem\u00e1s hac\u00eda que usar bases de datos (en los a\u00f1os ochenta del siglo pasado) fuese un juego de ni\u00f1os. Como es claro se trataba de un compilador que generaba programas para Ms-Dos. Con la aparici\u00f3n de Windows 95, se requer\u00eda algo que funcionase bien con dicho sistema. Adem\u00e1s, por aquel entonces se puso de moda la programaci\u00f3n orientada a objetos (primeros a\u00f1os noventa del siglo pasado, parece que fue ayer). As\u00ed que <a href=\"https:\/\/en.wikipedia.org\/wiki\/Nantucket_Corporation\" target=\"_blank\" rel=\"noopener\">Nantucket<\/a> los creadors de Clipper decidieron fusionar las dos cosas con Visual Objects. Pero apareci\u00f3 por all\u00ed <a href=\"https:\/\/en.wikipedia.org\/wiki\/CA_Technologies\" target=\"_blank\" rel=\"noopener\">Computer Associates<\/a> (en aquellos a\u00f1os una de las empresas de software m\u00e1s grande del mundo, que quer\u00edan diversificar y entrar en el mercado del PC) y compro el Visual Objects. Computer Associates ven\u00eda de la inform\u00e1tica departamental, mainframes, hosts\u2026 y se noto algo en Visual Objects. Se trata de un compilador que sigui\u00f3 al p\u00ede de la letra los dictados de Microsoft para crear aplicaciones para Windows. As\u00ed que nosotros con Visual Objects hemos hecho aplicaciones para Windows NT, Windows 95, Windows 98, Vista, 7, 8 y 10\u2026 y funcionan sin tener ni que recompilar.<\/p>\n<p>As\u00ed que vi que hac\u00edan aquellas Access y las Excel y lo pas\u00e1 a un diagrama de flujo. Cog\u00ed mis clases est\u00e1ndar y comec\u00e9 a derivarlas para los objectos concretos que iba a usar aqu\u00ed. Tarde algo m\u00e1s que dos semanas, pero antes de acabar el verano la aplicaci\u00f3n ya estaba funcionando. Y los clientes muy contentos y con una soluci\u00f3n a su problema. Y yo mientras trataba de pegar con cola mis libros de Visual Objects y de programaci\u00f3n orientada a objetos que hac\u00eda casi una d\u00e9cada que no sacaba de la estanter\u00eda y ya se estaban poniendo amarillos.<\/p>\n<p>Luego vino otro cliente con un encargo parecido\u2026 y le dimos la misma soluci\u00f3n. Dejo para otro d\u00eda el software que usamos para crear reporte, pero si alguien quiere probar suerte en los comentarios\u2026 pues que diga cual cree que es. Como pistas, es incombustible y ha tenido una historia de compraventas tambi\u00e9n apasionante, donde interviene alg\u00fan fabricante de hardware en un momento de diversificaci\u00f3n\u2026<\/p>\n<p>Resumiendo, aqu\u00ed estoy programando con una herramienta que tiene 14 a\u00f1os. Pero hace lo que necesitan mis clientes. De todas formas estoy siguiendo con inter\u00e9s uno de los muchos intentos de resucitar el Visual Objects concretamente, <a href=\"https:\/\/www.xsharp.info\/\" target=\"_blank\" rel=\"noopener\">xSharp<\/a>.<\/p>\n<p>Al final como siempre digo, no se trata de la herramienta, sino de saberla usar.<\/p>\n<p>Como contando batallitas, la cosa se ha hecho larga, dejo para una segunda entrada el tema del rendimiento y la velocidad de estos programas.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Vamos a ver si recuperamos un poco de regularidad en la publicaci\u00f3n de entradas en el blog. Llevo un par de meses que no tengo tiempo para casi nada. En la tienda estamos en pleno proceso de readaptaci\u00f3n. Como el tema del hardware se pone cada d\u00eda m\u00e1s complicado, pues volvemos a los or\u00edgenes: al [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":15556,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_exactmetrics_skip_tracking":false,"_exactmetrics_sitenote_active":false,"_exactmetrics_sitenote_note":"","_exactmetrics_sitenote_category":0,"footnotes":""},"categories":[13],"tags":[580,629,765,2938],"series":[],"class_list":["post-15905","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-software","tag-clipper","tag-computer-associates","tag-dbase-iii","tag-visual-objects"],"_links":{"self":[{"href":"https:\/\/changlonet.com\/blog\/wp-json\/wp\/v2\/posts\/15905","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/changlonet.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/changlonet.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/changlonet.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/changlonet.com\/blog\/wp-json\/wp\/v2\/comments?post=15905"}],"version-history":[{"count":0,"href":"https:\/\/changlonet.com\/blog\/wp-json\/wp\/v2\/posts\/15905\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/changlonet.com\/blog\/wp-json\/wp\/v2\/media\/15556"}],"wp:attachment":[{"href":"https:\/\/changlonet.com\/blog\/wp-json\/wp\/v2\/media?parent=15905"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/changlonet.com\/blog\/wp-json\/wp\/v2\/categories?post=15905"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/changlonet.com\/blog\/wp-json\/wp\/v2\/tags?post=15905"},{"taxonomy":"series","embeddable":true,"href":"https:\/\/changlonet.com\/blog\/wp-json\/wp\/v2\/series?post=15905"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}