Página 1 de 1

Cobol, un lenguaje de programación para niños?

Publicado: 13 Jun 2014, 06:27
por Wester.Zela
Hace poco discutia con una amigos que aún viven del Cobol, y me gustaria comentar algunas reflexiones sobre este lenguaje que aun muchos usan dia a dia.

El lenguaje Cobol fue creado a finales de los 50's, es decir ahora mismo tiene mas de 50 años, y la estructura de programación sigue siendo la misma, aunque a inicios del 2000 se introdujo la programación de Orientada a Objetos en Cobol. Cuando este lenguaje fue creado se pensó que deberia ser un lenguaje orientado a negocios, facil de escribir, permitir a los usuarios mover a nuevos sistemas con el minimo esfuerzo y debe ser facil para programadores sin experiencia.

El Cobol como lenguaje ha tenido muchas criticas de los academicos, alguno como Edsger Dijkstra ganador del premio Turing Award dijo en 1975: "El COBOL lisia la mente, por lo que enseñar Cobol es una ofensa criminal", a pesar de esto lo siguen usando muchas grandes empresas ya que algunas partes principales del negocio son muy costosas moverlas a otras plataformas mas abiertas, aunque en los ultimos años hay varios estudios que dicen que cada vez es mas caro mantener estos sistemas en Mainframe. Yo particularmente he trabajo en Cobol en IBM Mainframe y en Unix, como alguno de ustedes en algunas otras plataformas.

He visto durante mi viva profesional muchas cosas alrededor del Cobol que pueden hacer validos mis argumentos. Cuando empezé a programar en Cobol en un banco de Peru, vi que la programación no era dificil, alguien con conocimientos de ingles facilmente podia a programa en Cobol en un par de dias, y como fue la intensión de sus creadores, facil para un programador inexperto. Luego en España a inicios del 2000 observé algunas practicas que para mi eran nuevas, empresas de informatica, tenian cursos de programación en Cobol para gente que no habia estudiado ingeniería informática, menos alguna ingenieria para empezar en este sector. Yo trabajaba con fisicos, quimicos o economistas que empezaron en esta profesion con cursos de Cobol de unas semanas, empezando como programador junior y luego escalando a distintas posiciones, cosa que no ocurria con mucha frequencia otros lenguajes de programación (esto se hizo una practica comun y necesaria sobretodo en proyectos para el año 2000).

Hubo un tiempo que coordinada factorias de Cobol, y la gente que empezaba en este tipo de proyectos era muy jovenes recien salidos de la universidad, y que facilmente aprendian y claro luego de un tiempo se aburrian por algun motivo. Cuando se intentó crear una factoria de C++, yo dije que este no era posible o mejor dicho que no lo recomendaba, y al final a pesar de este cliente uso a otra empresa, ese proyecto de factoria de C++ fracaso. Y finalmente lo que he observado durante mi carrera es que la gente que ingresa a trabajar en Cobol es muy dificil que me muevan a otros entornos mas abiertos, cosa que un programador que empieza en otros lenguajes de programacion es muy habitual.

Yo creo que el Cobol es como un agujero negro donde cuando la gente entra es muy dificil de salir porque limitan sus capacidades mentales para la creatividad y que se han desarrollado mas por partes "funcionales" que la parte tecnologica y que siempre se depende de que alguna empresa que tienen a cientos de coboleros, muchos de ellos ahora jovenes y cobrando menos, les den trabajo.

En la actualidad todos los dias leemos en los diarios, niño de 13 o 15 años crea una aplicación en Android o alguna otra plataforma y se vuelve millonario, y yo me pregunto, los coboleros de toda la vida, que ha visto pasar muchas tecnologias, y que ahora que hay cada vez menos proyectos en Cobol y Mainframe (salvo "mantenimientos") y mas proyectos en otras tecnologias, no son capaces con toda la experiencia y sus conocimientos que algun vez recibieron en la universidad no pueden crear aplicaciones en nuevos entornos? o es que lo que se dice que trabajar en Cobol/Mainframe los ha hecho mas "lentos" tecnologicamente y si les cambias las condiciones del entorno (no les das trabajo en Cobol) terminan como los dinosaurios?, entonces, esto me lleva a la siguiente reflexión, un niño de 13 años sin estudiar en la universidad podria programar en Cobol?

Re: Cobol, un lenguaje de programación para niños?

Publicado: 01 Jul 2014, 04:51
por hermes.tapia
No es objetivo diagnosticar el futuro de las plataformas mainframe solo viendo al Cobol, un lenguaje de programación que por motivos históricos la mayoría de aplicaciones en los mainframes están escritas en este lenguaje, bien puso ser el PL/I.

Tampoco se puede ignorar soluciones en mainframe como el IMS, CICS, DB2, RACF, VTAM, MQSeries, etc. En particular en CICS que ahora soporta aplicaciones desarrolladas en Java, XML, WebServices y bases de datos distribuidas. Tecnologías que para un desarrollador familiarizado con la filosofía mainframe resulta sencillo y hasta divertido.

Volvemos a lo que ya se discute desde los 80’s, el procesamiento centralizado o distribuido. Nos es lo mismo tirar del arado con 500 gallinas que con un par de bueyes. También es cierto que cada vez mas, para descongestionar los sistemas centrales y reducir costos, se busca descentralizar las aplicaciones, en especial las no críticas y que no afecten las necesidades del negocio. Esto hasta donde es posible. Una migración completa de un esquema centralizado a uno distribuido tendría que justificarse con un caso de negocio rentable y sin riesgos. Desconozco sin alguna entidad en el sector financiero se haya planteado en un corto plazo un proyecto de este tipo.

En resumen, tomar al Cobol como referente para los sistemas centrales es muy limitado, cuando fue creado en el año 1959 su objetivo era ser un lenguaje de programación universal y que estuviera orientado principalmente a los negocios, es decir cumplió y aun cumple su objetivo.

“Cobol soporta cada día el 90% de los sistemas de negocio de las empresas de la lista Fortune 500, es decir, de las mayores compañías del mundo. Asimismo, el 70% de la lógica de negocios críticos está escrita en este mismo lenguaje…”

“Asimismo, 1,5 millones de líneas de código COBOL se escriben todos los días, con un total de la inversión en este campo de más de 5.000 millones de dólares y dando empleo a dos millones de personas en todo el mundo”

El articulo completo en:
http://www.computerworld.es/innovacion/ ... -contrario

Saludos.
Hermes Tapia

Re: Cobol, un lenguaje de programación para niños?

Publicado: 05 Jul 2014, 13:57
por Wester.Zela
Hola Hermes,
tu analisis es acertado, pero como todo depende desde el cristal con que lo miras. Como dice este articulo en las universidades de casi de todo el mundo no se enseña Cobol, puede existir varias razones para esto, para mi a lo mejor es que la demanda de profesionales para cobol es menor que a otros tecnologias, porque a lo mejor el numero de proyectos nuevos en cobol en el mundo son muy pocos, luego de proyectos Y2K donde muchas consultoras se frotaron las manos por esto, no ha habido otro gran proyecto, salvo algun que otro proyecto de algun banco para crear una plataforma he inventar la rueda en lugar de a lo mejor comprar un core bancario ya existentes.
El otro gran fenomeno de los ultimos años ha sido llevar trabajo a centros de desarrollo mas baratos, cosa que en algunos paises se llama factoria de software.
Pero, mi critica mas va por el lado profesional de cada cobolero, y no del punto de vista de la gran empresa que tiene todavia mantienen sistemas en mainframe y cobol por diversos motivos. A la gran empresa, obviamente les conviene tener sistemas baratos de mantener, y como no pueden reducir los costos por el lado de la infraestructura lo hacen por el lado de los costos variables o mano de obra de los programadores, y llevar el trabajo donde sea mas barato.
A los coboleros de toda la vida viviendo de "mantenimientos" y que a lo mejor añoran tiempos de grandes proyectos donde se podia hacer grandes cosas. El lenguaje cobol lo puede aprender cualquiera en un corto tiempo, y eso esta demostrado, y eso le gusta a la empresa, pero a nivel de desarrollo personal, mi impresion que muchos coboleros han perdido el tren del desarrollo profesional tecnologico. Comparando los salarios de un experto en Cobol y en otras tecnologias nuevas, siempre el de Cobol va tener estar en un menor rango, eso indica lo que la empresa valora a los que tienen conocimientos en Cobol y a otras tecnologias.

Re: Cobol, un lenguaje de programación para niños?

Publicado: 10 Jul 2014, 07:04
por hermes.tapia
Hola Wester.

En la actualidad la lógica de la presentación de las aplicaciones en Cobol es inexistente, el uso de las pantallas verdes se da en forma muy puntual y justificada. Siguiendo ese camino las empresas persistirán en el Downsizing, es decir seguirán intentando descentralizar en arquitecturas más baratas toda la lógica del negocio, y si es posible también la lógica de datos donde los mainframe se mantienen debido a su gran robustez y eficiencia.

Las empresas que en su momento resolvieron sus necesidades de negocio en base aplicaciones inhouse las están reemplazando por soluciones comerciales, que con un mínimo de personalización les resulta más ventajoso por sus menores costos de mantenimiento y una mejor gestión del conocimiento.

>>> Esta perspectiva de las aplicaciones Cobol no tiene porque implicar que sea un suicidio profesional lento e inevitable el dedicarse a hacer pequeños mantenimientos.

Hay aplicaciones que requieren de algoritmos muy complejos y gran velocidad de procesamiento que realizan cálculos y operaciones muy complejas sobre una cantidad reducida de datos. Normalmente se procesan en supercomputadores y usados en áreas científicas y militares.

Por otro lado aplicaciones que requieren de algoritmo sencillos, uso intensivo de dispositivos de E/S y gran capacidad de almacenamiento que realizan operaciones muy sencillas sobre miles o millones de datos. Normalmente se procesan en un mainframe y es utilizado por empresas que necesitan procesar grandes cantidades de datos como por ejemplo las instituciones bancarias para procesar las operaciones que se han realizado a lo largo de un día o el procesamiento de las planillas a fin de mes, procesos repetitivos que se realiza con millones de fragmentos de información.

>>> Las aplicaciones Cobol para negocios son de estas últimas, es cierto, su lógica es muy sencilla, pero con esto no podemos inferir que existe una atrofia colectiva en los desarrolladores Cobol.

----------------------------------------------------------------------------------------------------

En resumen:

En mi opinión, los desarrolladores Cobol deben dejar roles menores como la de programador, deben centrase en lo que trasciende a la evolución de la tecnología que es la funcionalidad de los negocios, entender y conocer el negocio en si, al margen de la tecnología que usa o usara la empresa.

Las aplicaciones hoy en día son multiplataforma, se pueden iniciar en un teléfono celular y terminar en un mainframe ubicado al otro lado del mundo. En este punto estamos de acuerdo, como complemento al conocimiento funcional que tengan los desarrolladores Cobol deben conocer otras tecnologías, con esto elevaran su nivel de empleabilidad.

Por ultimo, sugiero evitar utilizar el término “Cobolero” para referirnos a los desarrolladores Cobol, suena despectivo.

-------------
Hermes Tapia

Re: Cobol, un lenguaje de programación para niños?

Publicado: 14 Jul 2014, 06:07
por Wester.Zela
Hola Hermes,
Creo que siempre hay una linea delgada entre la gente de negocios y la gente de desarrollo o tecnologia. La gente de negocio que vienen de distintas profesiones en principio son los que deben marcar la pauta y dicen que es lo "que hay que hacer", y la gente de tecnologia "como hacerlo". El tema que por mas que podemos saber de mucha funcionalidad porque sabemos al milimetro que hace cada modulo o programa seguimos siendo de tecnologia, y eso la gente de negocio lo tiene claro.
Pero, claro un banco o cualquier negocio tiene a la gente de negocio quienes deben de marcar la pauta, aunque muchas veces eso no ocurre o estan equivocados, nosotros los de tecnologia estamos para proponer soluciones tecnologicas.
lamentablemente viviendo en el mundo de cobol, podemos saber de muchos programas que hacen tal o cual cosa, pero nos limitamos a un pequeña porcion del que ahora posiblemente negocio le de menos importancia y que a lo mejor pocas veces se toca, y que a lo mejor muchos requerimientos ya vienen por otras areas de "front-end" o desde donde el usuario final tiene acceso.
En resumen, es necesario que existan personas con conocimiento Cobol, pero que la gente de Cobol despues de algunos años debe transcender a otras tecnologias para estar preparados a los nuevos tiempos, es como un doctor que debe de permanentemente actualizarse y no quedarse con lo que estudió en la universidad, aunque el cuerpo humano sigue siendo el mismo. Creo que a estas alturas podemos darnos cuentas que no es necesario estudiar 5 años en la universidad ing. de sistemas o informaticas y dedicarnos lustros al Cobol, pero claro la opcion de cada uno es personal y se respeta.
Con respecto a ser programador, yo creo que si un ingeniero no es programador, es como si un contable no supiera sumar, como ingeniero uno deberia ser programador toda la vida, pero obviamente no de Cobol :).

Lamentablemente no podemos llevamos un mainframe a casa y empezar a innovar o crear aplicaciones en Cobol para poder comercializarlo en algun momento. A lo mejor esto sea parte de la respuesta de porque los de Cobol les he mas deficil cambiar a otras tecnologia, mientras otros profesionales en sistemas abiertos pueden estar en casa y hacer cosas que a lo mejor les pueda preparar para nuevos cambios, que cada vez son mayores, desde hace mas de 60 años donde solo habia un par de lenguajes de programación.

La intensión de este foro es justamente discutir de estos temas.

Saludos