Discusión:COBOL

De Wikipedia, la enciclopedia libre
Ir a la navegación Ir a la búsqueda

Menos especulación y más datos[editar]

Para decidir sin un lenguaje es obsoleto o no, no basta decir "no es obsoleto porque yo lo sigo usando" o citar un informe de 1.997 (¡Por amor de dios! ¡1.997! Si apenas estaba arrancando internet en los hogares y nadie conocía la mayoría de lenguajes de programación que hoy son de uso común). ¿Cuantos sistemas siguen usando hoy en día Cobol? ¿Cuantas de las líneas de código que se escriben son para desarrollos nuevos y no para mantener estos sistemas en funcionamiento? — El comentario anterior sin firmar es obra de 190.116.31.60 (disc.contribsbloq). 14:45 25 mar 2019 (UTC)

Opinión[editar]

Respecto a:

"COBOL fue un lenguaje preponderante durante décadas, pero actualmente se usa básicamente en entidades bancarias y otros sistemas informáticos añejos, en los que se utiliza principalmente para mantener el código existente."

Esto no es cierto. Se siguen escribiendo muchísmas líneas de código nuevas en COBOL. Seguramente hay mucha más gente utilizando cobol que cualquier otro lenguaje de programación. Si es cierto que se usa principalmente por bancos, pero estos cada año siguen gastando millones de euros en renovar sus sitemas con COBOL. Quizá habría que preguntarse por qué. Lo que motiva la falsa creencia de su obsolescencia es que generalmente la gente que progama en COBOL está aparatada de los círculos académicos dónde ese lenguaje, evidentemente, no tiene ningún interés y no son nunca tenidos en cuenta como pertenecientes al gremio de la programación. Pero lo que es seguro es que el dinero se "cuenta" en COBOL.

Obsoleto[editar]

El cobol está obsoleto porque hoy en día casi nadie hace nuevos proyectos donde se use. Otra cosa son las aplicaciones legacy, que en los bancos sobre todo, son difíciloes de sustituir.

Por otro lado, el que esté obsoleto, no implica que por facilidad de desarrollo y mantenimiento de código, para ciertos propósitos sea excelente.

No obsoleto... sino específico.[editar]

COBOL no debe considerarse un lenguaje obsoleto sino un lenguaje de uso específico. Aunque existen muchos partidarios del llamado modernismo informático que pretende desvirtuar las capacidades de los sistemas desarrollados en este lenguaje y en otros por considerar que sus capacidades han sido rebasadas.

COBOL es un lenguaje muy específico de uso en negocios y que tiene una seguridad de madurez más que comprobada ya que cumple con normativas militares que lo hacen inteligible a la hora de analizar el código fuente de algún sistema. Es legible.

Su eficiencia y presencia quedó demostrada cuando se dió el fenómeno Y2K en la que la mayoría de los lenguajes modernos quedaron mal parados ante la llegada del año 2000. Al igual que C (que es igual de viejo) su funcionalidad queda demostrada al ser posible manejarlo en diferentes plataformas con muy pocas adecuaciones.

Compararlo con lenguajes Visual es muy absurdo ya que estos están enfocados a una plataforma específica y realmente no tienen relación con el entorno mainframe que es donde este lenguaje más se aplica.

Decir que nadie hace sistemas en dicho lenguaje es también absurdo. Que no sea de uso general es otra cosa.

-- Fabián A. Juárez Martínez ~ 2005/09/21 ~ 01:21 CDT ~ fabian.juarez en gmail punto com

Totalmente de Acuerdo!![editar]

Hola gente, me llamo Gustavo Brossard, y estoy completamente de acuerdo con que el COBOL no es obsoleto, lo que mas bronca da es que desde hace mas de 10 años que vienen diciendo que el cobol es obsoleto y que ya no se usa, eso es pura mentira, Veamos mi caso, yo soy un bicho raro, tengo 25 años y hace 5 años que trabajo con COBOL, tambien tengo conocimientos de otras plataformas, y todavia no encontre algo que le haga sombra, he trabajado en Visual, Web, PL1 (SII PL1!!), incluso ahora con el Cobol/Enterprise y las nuevas funcionalidades que se le agregaron para parseo de XML junto con MQseries no hay nada que se le compare para transmicion de datos desde el Mainframe hasta la WEB, aplicacion en .NET o JAVA...... asi que por favor si van a decir primero que el cobol es obsoleto por favor informense BIEN !!!! Salute !! ...... Cualquier comentario mandenme un correo a KnigtStar@argentina.com

faltan datos tecnicos propios del lenguaje[editar]

hola, este es mi primer aporte a la wiki!!!.

me gustaria aclarar que el cobol si bien es viejito, para nada esta obsoleto, yo estudio (no porque me guste este lenguaje precisamente) ACUCOBOL,que viene con un IDE que es el ACUBENCH que es muy parecido en su forma de trabajar al visual basic, permite generar ventanas para windows y manejar bases de datos sql, oracle, etc etc.... lo que demuestra que no es para nada viejo.

lo que si es vieja es su filosofia de trabajo, la verdad que tiene todos los defectos de los lenguajes estructurados, uso indiscriminado del GOTO que dificulta la lectura, indentancion que obliga a usar ciertas columnas del codigo para cosas especificas (se comienza a escribir a partir de la columna 12).

aparte el echo de ser un lenguaje tan especifico (no trae ni siquiera funciones matematicas complejas) hace que sea muy rigido a la hora de desarrollar cosas con el. por lo demas me parece que no es un mal lenguaje solo muy especifico.

propongo agrandar el articulo explicando a grandes rasgos como es la sintaxis del COBOL y algunas caracteristicas tecnicas, aparte de incluir una seccion onda "el COBOL en la actualidad" porque, se usa hoy en dia................... es mas tengo entendido que los buenos programadores COBOL son muy requeridos.

saludos.

--Valentinbasel 20:45 22 feb 2006 (CET)

Valentín estoy de acuerdo contigo en que falta información técnica. No sé cómo poner una etiqueta de que el artículo es incompleto, lo voy a intentar. Pero tú que ya tienes 12 años de experiencia con COBOL. No podrías darle una manita de gato?
Yo no me acuerdo de COBOL, no programé salvo para pasar un curso, porque es un lenguaje obsoleto, por las razones que expliqué abajo. Ahora que tienes más experiencia, habrás descubierto sus limitaciones y tal vez conozcas otros lenguajes mejor diseñados.
Sugiero que se hable de las distintas divisiones y sus principales secciones.
También de la estructura de sus tipos de datos. Yo necesitaba ver cómo se definen los tipos variantes, pero no lo encontré aquí. En fin, esas cosas.
Me acuerdo que los programadores usaban mucho la instrucción PERFORM, que llama a subrutinas pero los valores se pasan en variables globales, como el GOSUB de BASIC. También se pueden llamar con CALL, hasta donde acuerdo, cuando se usa PROCEDURE DIVISION USING (X,Y...)
También de los archivos INDEX SEQUENTIAL y otros por el estilo.
Y cómo evolucionó a ORIENTADO a OBJETOS, de eso no tengo la menor idea, me parece algo contradictorio porque la OO requiere de encapsulamiento, y polimorfismo.

Para nada es obsoleto solo....[editar]

El cobol para mi no es nada obsoleto, pero ningun programador en cobol puede negar que es un poquillo tedioso por el solo hecho que las instrucciones son muy pero muy largas!!!!, no como en los otros lenguajes tipo Java o Vb.net, que te la hacen todas faciles, de ser viejito es viejito, pero de ser obsoleto, NADA QUE VER concuerdo con el amigo, antes de declarar obsoleto, mmm, informense bien!!!! Saludos!!!!!

Eliminé la parte que decía que COBOL tenía una excelente autodocumentación,[editar]

Puse algo más neutral y específico, para que los fanáticos no lo borren. Antes intenté poner esto:

  • COBOL se concibió con la idea de que el código fuese autodocumentado, pero en esa época no se entendía bien el problema y se creía que lo importante eran cuestiones como: documentar quién había solicitado el programa, quien lo había escrito, pero en la PROCEDURE DIVISION, resultó muy verboso debido a que Las operaciones aritméticas eran escritas en inglés, usando operadores como ADD, SUBSTRACT, MULTIPLY, DIVIDE, aunque después se agregó el verbo COMPUTE para usar los símbolos aritméticos +,-,*,/. La declaración obligatoria en la DATA DIVISION de las variables y de los archivos.
Aunque la legibilidad de los programas se debía en gran parte a que en la época en que el proceso por lotes predominaba, todos los programas tenían la misma estructura conocida coloquialmente mediante el mnemónico ABC, que consiste en una rutina de Altas, una de Bajas y una de Cambios. Pero un lenguaje con tanta verbosidad atenta contra la parsimonia requerida para resolver problemas, porque una sintaxis tan extensa distrae de la solución del problema, por ello [E.W.Dijkstra] decía que COBOL era un lenguaje que anquilosaba la mente.
A pesar de la verbosidad de lenguaje, esté evolucionó a la versión estructurada, que restringía el uso de GOTOs y promovía en uso de instrucciones de control estructuradas. Como los nombres de las variables eran largos, y en esa época la programación por lotes estaba en boga era fácil copiar un programa y modificarlo con los nuevos requerimientos.

Pero ya no concordaba con lo demás.

Una cosa es su obsolescencia y otra que exista una amplia base instalada[editar]

El lenguaje COBOL es obsoleto porque no fue bien diseñado.

Aunque, si me dan a escoger entre C++, Java y COBOL, escogeré COBOL, porque los lenguajes orientados a objetos parten de un fundamento equivocado. Eso no lo voy a discutir aquí. Sólo comentaré que en mi experiencia, que pocos programadores asimilan bien ese paradigma y que diseñar programas OO, parte de establecer una jerarquía muy artificial de los datos y una visión muy antropomórfica. La decisión se debe tener en función de la formación que tengan los programadores con que se cuenta.

C es un excelente lenguaje de programación y no es tan viejito como COBOL, como lo aseveró alguien arriba.

Cobol tiene una sintaxis innecesariamente verbosa. Originalmente no permitía escribir programas recursivos, pero se puede, implementando una pila, hacer llamados recursivos. Eso permitía escribir analizadores sintácticos en ese lenguaje. Pero casi casi como si se estuviera programando en ensamblador. Lo mismo sucede con tipos de datos como árboles, listas, etc. Alguien puede decir que eso no se necesita para negocios, pero ¿cómo hacer un analizador de XML sin tanta complicación? Sé de un analizador sintáctico que analizaba los nombres para un sistema de registro de marcas escrito en COBOL.

Yo no uso COBOL, porque no tengo necesidad. Uso lenguajes mucho más avanzados que este, pero no los usaría en una empresa que tiene sistemas heredados en COBOL. Por razones sociales, no porque COBOL no sea obsoleto.

Alguna vez vi anuncios solicitando programadores en COBOL, muchas eran oficinas de gobierno, la razón principal es que esas oficinas tal vez no tienen cambios tan importantes en su estructura, y la otra es que no quieren abandonar sus mainframes, porque piensan que son menos vulnerables a los hackers.

Si un programa en COBOL está bien escrito, puede ser modificado facilmente cuando se requiere. Pero eso no es común en los sistemas heredados.

Yo no aconsejaría aprender COBOL, a menos de que se tenga una buena formación en otros lenguajes que en verdad alienten una programación bien estructurada, y que se desee trabajar en oficinas de gobierno y bancos con sistemas heredados. Un hecho es que los programadores de COBOL son escasos y muchas veces bien cotizados.

COBOL se sigue usando en los sistemas heredados, porque muchos de sus procesos administrativos todavía son por lotes. Además cuando los sistemas son estables, nadie se quiere mover a un sistema que puede tener muchos errores.

Lo anterior no es del todo verdadero. Lo que pasa es que la inmensa mayoría de los programas en el mundo, no están bien documentados. Mucho menos los sistemas heredados. Por ello en primer lugar no se sabe qué hacen los programas en un nivel detallado. Por otra parte, son pocos los programadores que saben escribir programas correctos, a partir de una especificación formal.