¿Vale la pena aprender COBOL? [cerrado]

23

¿Aprender COBOL todavía tiene sentido?

kiamlaluno
fuente
99
Será alrededor de 9990, no estoy seguro si vives tanto tiempo.
Toon Krijthe
44
@Gamecat --- Solo si el problema Y10K no es resuelto por compañías o individuos no perezosos antes, ¿no?
Mark C
2
Recuerde que COBOL solo no lo llevaría lejos. Debe apilar la pila para el sistema operativo con el que desea trabajar. Por ejemplo, en máquinas IBM, necesitaría VSAM, MVS o Z, CICS, ISPF, puede ser IMS e ISPF, Panvalet / Easytrieve, JCL además de COBOL.
NoChance
2
¡cobol.com se ve realmente Web 2.0-ish y regalan una máquina de café! Si eso no es moderno y pragmático e inserta una palabra de moda, entonces no sé qué.
Raphael R.
Puede obtener un ingreso estable si lo hace bien y encuentra una tienda COBOL.

Respuestas:

26

No lo creo, a menos que ya esté en el nicho de mercado donde todavía se mantiene COBOL.

Wizard79
fuente
13
El 70% de la infraestructura existente se ejecuta en COBOL. Desde pasar una tarjeta de débito en un cajero automático, hasta hacer una reserva de avión en línea, incluso enrutar una llamada de teléfono celular. Todos los que se ejecutan en COBOL (o dependen significativamente de él). Difícilmente es un nicho o un entorno heredado. La mayoría de estos sistemas se han ejecutado casi ininterrumpidamente y bien durante décadas (un historial mucho mejor que el que tenemos en Java y .NET), y el número de programadores COBOL está disminuyendo. ¿Quieres ganar mucho dinero? Posicione para la tremenda escasez de COBOL que ocurrirá en aproximadamente una década.
luis.espinal
14
@ luis.espinal: no, este es un mito común, y un porcentaje del 70% ya no es cierto. El uso de COBOL está disminuyendo constantemente, y eventualmente lo eliminaremos. Y ... COBOL involucrado en el enrutamiento de llamadas telefónicas? No lo creo. Quizás en la facturación de llamadas telefónicas, pero incluso allí es poco probable en estos días.
Wizard79
66
@Lorenzo: ¿70% un mito? ¿No está involucrado en telecomunicaciones? ¿Puedes respaldar esas afirmaciones? Ni siquiera estamos contando su participación en el envío (decenas de K de contenedores / año), ni en la industria del cuidado de la salud. No sé cómo es donde trabajas, pero aquí en América del Norte (y en muchos otros lugares), COBOL existe en grandes cantidades y funciona bien . ¿Por qué alguien correría el riesgo de reescribir algo que funciona y que es de misión crítica ? Me encantaría fantasear. Reescribiré todo en Java o C ++, pero hay fantasía, y hay ingeniería de software y la economía del software.
luis.espinal
99
@ luis.espinal: como he trabajado en la industria de las telecomunicaciones, estoy seguro de que los dispositivos de intercambio telefónico no usan COBOL ... se basan en hardware y firmware dedicados. Algunas compañías aún usan COBOL para facturación y contabilidad, pero otras nuevas (como los operadores móviles) dependen de diferentes tecnologías incluso para eso. El cambio está en curso.
Wizard79
8
@ luis.espinal: mi cuñado trabaja para una importante empresa de telecomunicaciones, escribiendo software para nuevos conmutadores. ¡Te garantizo absolutamente que NO usa COBOL!
Bob Jarvis - Restablece a Monica el
36

Nooo, por supuesto que no. COBOL es una lengua muerta, después de todo. ¿O es eso?

El problema con esa visión es que los programadores en sitios como este generalmente trabajan con empresas de alta tecnología, de rápido funcionamiento (e igualmente agotador). Para ellos, COBOL es una lengua muerta, no se ve por ningún lado. No ha sido por algún tiempo ahora, es verdad.

Pero COBOL no estaba hecho para ellos. Hay más en la industria del software que esto. Las computadoras no fueron inventadas para personas con alguna necesidad irracional de actualizar y reemplazar las viejas por las nuevas todo el tiempo. Fueron hechos para fines comerciales.

¿Quieres ver COBOL? Vaya a una empresa que procese la nómina, o maneje el transporte de mercancías, el envío (como en los barcos), o maneje su cuenta bancaria. Existe un enorme sistema invisible de código que es prácticamente invisible para los usuarios, y la mayoría de ellos nunca piensan en ello, aunque lo encuentran de una forma u otra todos los días (¿cajeros automáticos?)

No, no está muerto. Pero es "legado" seguro ... ¿o no?

De nuevo, depende de cómo lo mires. Hoy en día, mucha gente usará Java, C o cualquier otra cosa en lugar de COBOL, reescribiendo desde cero ... introduciendo nuevos errores a medida que avanzan, naturalmente. Eso no quiere decir que COBOL no tenga errores y peculiaridades. Lo hace, tanto como el próximo idioma. Claro que lo hace. Pero en los "tiempos COBOL", las empresas que se tomaban los errores más en serio de lo habitual (seguros, bancos) tendían a producir códigos de mayor calidad con grupos de servicios especiales de calidad; Hoy, hay plazos en los que el tiempo y el presupuesto siempre ganan a la calidad. Además, estos sistemas se desarrollaron originalmente por períodos más largos en ese entonces en comparación con el equivalente actual.

Si algún software ha estado funcionando durante más de 30 años, ¿dónde está el incentivo para cambiar? Empresas enteras cerraron porque ignoraron el viejo adagio de "si no está roto, no lo arreglen". Muchos trataron de reescribir la cosa ... luego la primera reescritura costó mucho, luego la segunda costó aún más ... y ninguno de esos nuevos y mejorados logró reemplazarla. Como dije, esta industria se está quemando rápidamente, y también tiende a olvidarse rápidamente.

En los años 70 COBOL estaba muerto o muriendo pronto, C / C ++ iban a gobernar. Por otra parte, a principios de los años 80, Pascal se hizo cargo. Luego, en los años 90, era Java como EL lenguaje ...

Piense en Unisys Mapper, dBase, Clipper, Cold fusion ... ¿la gente recuerda eso? Cada uno de ellos iba a ser el sepulturero de COBOL.

Teniendo eso en cuenta, y el hecho de que es excelente para procesar grandes volúmenes de transacciones, procesamiento por lotes o procesamiento orientado a registros / transacciones, y que uno puede compilar (sin errores) una subrutina escrita hace 30 años como código COBOL administrado y llamar desde un COBOL.NET administrado si alguien desea usar Windows y .NET, tengo problemas para encontrar un reemplazo adecuado para él. (También tengo problemas para encontrar una tecnología de Microsoft que duró más de una década).

Sí, hoy se está escribiendo un nuevo código COBOL. Uno solo tiene que saber dónde mirar.

Para aquellos que se ríen de COBOL, en mi humilde opinión, es como reírse de las pirámides egipcias, están allí desde hace 5000 años y seguirán estando allí en los próximos 5000 años, mientras que la vivienda de hoy "hola mundo" que necesita 24 controles para trabajar será eliminada, reemplazado, olvidado el próximo mes.

Entonces, ¿dónde están todos esos programadores de COBOL?

Ah, porque aquí yace el problema. La cuestión es que muchos de ellos no tienen experiencia en ciencias de la computación. Muchos de ellos no son programadores profesionales (como en los graduados universitarios de un programa CS / SE). En su mayor parte, son personas de entre 30 y 50 años, de todas las áreas de especialización, capacitadas por la compañía específicamente para ese trabajo. Por lo tanto, no son "programadores de COBOL": la capacitación que recibieron es específica de la empresa que tanto promueve desde adentro. Y eso los hace prácticamente invisibles.

Torre
fuente
99
Tener una mentalidad de iPhone / escritorio / Web 2.0 es una buena manera de olvidarse de la inmensidad del mundo de la informática.
Paul Nathan
8
Entonces, ¿dónde están todos esos programadores de COBOL? Conducir taxis.
johnc 15/10/10
1
@johnc: ¿de dónde sacaste eso? El 70% de la infraestructura existente se ejecuta en COBOL, y hay una escasez de programadores de COBOL. Podría haber sido difícil conseguir un trabajo si solo conociera COBOL en los días de las punto com (estamos hablando de una década). ¿¿¿Pero ahora??? Hombre, COBOL tendrá una gran demanda en aproximadamente una década solo por la crítica de esos sistemas y la escasez de desarrolladores de software que saben (o son lo suficientemente inteligentes como para aprovechar la oportunidad) de trabajar con COBOL.
luis.espinal
2
@ luis.espinal Soy completamente (y dolorosamente) consciente de los problemas que enfrentamos con la falta de programadores de COBOL, sin embargo, mi comentario fue hablado, algo frívolamente lo admito, por experiencia. En Australia, al menos, casi todos los taxistas que he conocido, en la última década, que no era un inmigrante reciente (y posiblemente algunos que sí lo fueron), han sido ex programadores de COBOL. Coincidencia, tal vez, y lo digo sin juzgar personalmente a los taxistas, inmigrantes o desarrolladores de COBOL. Es simplemente una observación.
johnc
2
@johnc - No dudo de tu palabra, pero encuentro esa observación extremadamente difícil de creer.
Torre
16

Si puede verse como programador de COBOL, entonces hágalo. Todavía hay miles de millones de líneas escritas en COBOL que requieren mantenimiento.

En realidad, no existe el conocimiento innecesario, así que amplíe el conocimiento y las oportunidades más amplias que tendrá (tendrá).

firusvg
fuente
1
Dado que no existen conocimientos innecesarios, nomino a Intercal para el próximo idioma que aprendas.
Tikhon Jelvis
@TikhonJelvis: Demasiado fácil, demasiado fácil. Malbolge es lo que estás buscando.
Magus
15

COBOL

¿Tiene sentido aprenderlo?
Bueno, es un nicho y hay un montón de trabajo código heredado que deben mantenerse y no sólo puede ser reescrito. Entonces, aunque en realidad no es una opción para las grandes masas de todos los programadores, es una perspectiva para un ingreso estable para las personas.

Sin embargo, si está interesado en crear nuevas soluciones, en lugar de mejorar lentamente las que han existido desde hace décadas, COBOL probablemente no sea el lenguaje correcto.

back2dos
fuente
8

Muchas empresas europeas todavía dependen en gran medida de los mainframes que se ejecutan como z / vse y programas cobol. Hay una demanda de programadores de cobol calificados que nadie piensa que el mercado llenará, lo que aumenta mucho el salario.

La pregunta debería ser, "¿alguna vez desarrollaré algo nuevo usando cobol?" ya que casi todo es mantenimiento o variaciones de cosas existentes de misión crítica.

Patrik Björklund
fuente
5

Solía ​​trabajar para IBM, donde se escribía el código COBOL y PL / I todos los días. También de las grandes compañías que confían en los mainframes de IBM, como muchos bancos que requieren miles de transacciones por segundo, esos idiomas todavía se usan con intensidad.

Si no quieres trabajar en un lugar como ese (es por eso que trabajé allí durante 6 meses), entonces ni siquiera pienses en aprender esos idiomas.

Carlos Muñoz
fuente
Trabajando en la columna vertebral de la economía, manejando ese tipo de tráfico, eso sería visto por muchos como una buena oportunidad de ingeniería y negocios.
luis.espinal
5

Escribimos un nuevo código de Cobol todos los días, y estamos en constante búsqueda de nuevos programadores. El suministro es demasiado pequeño por aquí.

usuario1249
fuente
55
Eso es realmente aterrador pero interesante. Nunca conocí a un verdadero programador de cobol en vivo (y no soy un pollo de primavera)
Tim
3
¿Por qué da miedo? Probablemente nunca conociste a un programador de Lisp tampoco ...
@Tim Hay un tipo de MicroFocus que escribe artículos sobre Code Project, ¡todo en COBOL ... para .NET! Es realmente extraño ver a COBOL actualizado con tecnologías más modernas.
MetalMikester
2
@Thorbjorn: solía codificar en lisp y conocer a los programadores de lisp. Tal vez solo soy ignorante y parcial, pero lo que sé de cobol no me induce a pensar mucho en hacer MÁS código en ese idioma.
Tim
1
Lisp se utiliza para proyectos interesantes y es un lenguaje interesante por derecho propio. También lo son C ++, Ruby on Rails, Smalltalk y Haskell. Cobol se usa para aplicaciones comerciales aburridas, y es interesante solo para las personas que tienen que crear compiladores y herramientas para ello. Básicamente, los chicos geniales no usan Cobol, y yo estoy usando "cool" tan libremente como para incluirme. Tendrás que ir a diferentes lugares, como una escuela de negocios, para encontrar gente de Cobol.
David Thornley
4

Si desea tener un trabajo como programador de COBOL, entonces seguro, continúe y aprenda.

Por cualquier otro motivo, como tratar de aprender algo útil que pueda ayudarlo con las técnicas modernas de programación, no, no se moleste.

Andy Lester
fuente
En mi opinión, las técnicas de programación modernas tienen poco que ver con los lenguajes de programación y más con la metodología del software. Hay desarrolladores que no han visto nada más que lenguajes OO en sus vidas y, sin embargo, no pueden describir cómo es un buen diseño OO. Los buenos principios de programación e ingeniería de software trascienden los lenguajes de programación. Me imagino que un desarrollador joven con habilidades decentes tendrá una mejor experiencia de aprendizaje de ingeniería de software lidiando con un legado "procesal" crítico faltante que otra capa de corteza procesal escrita en Java (soy un desarrollador de Java por cierto)
luis.espinal
3

En el año 2000 leí una estadística de que había más líneas de COBOL escritas que todos los demás idiomas combinados.
Además, IBM garantiza que cualquier mazo de TEXTO (código objeto), compilado en cualquier sistema MVS es ejecutable en todos sus sistemas MVS y tiene la garantía de que habrá programación COBOL siempre que brille el sol.

Dave
fuente
66
Si piensas en el hecho de cuán detallado es COBOL, no es de extrañar ;-).
Oliver Weiler el
3

Puedo decirle cómo lo "aprendí":
estaba empleado para trabajar con él, sin tener idea de qué se trataba, y no tuve dificultades para aprenderlo de la noche a la mañana.

Entonces, si lo necesita, puede aprenderlo. No hay necesidad de sobrecargarse con conocimientos inútiles. No hay nada interesante en él o sus compromisos a menos que tenga una necesidad práctica real de ello.

La respuesta genérica: aprender los principios de codificación, no sus implementaciones específicas (como lenguajes, etc.)

Геннадий-Ванин
fuente
2

No me perdería el tiempo.
De todos modos, COBOL es la base de muchos programas de aplicaciones heredados que son críticos para varias grandes compañías iniciadas hace 20 \ 30 años.
Por lo tanto, si lo contratan para una empresa que tiene parte de su negocio principal en COBOL, hay posibilidades de que tenga que comenzar a aprenderlo.

2 revoluciones
fuente
¿Me gusta? (15 caracteres)
TheLQ
@TheLQ Los bancos o compañías de seguros que comenzaron hace 20 \ 30 años tienen sus fundamentos de software en COBOL.
systempuntoout
2

Aprende si quieres, después de todo, saber cómo funcionan las cosas (o solía funcionar) no puede ser algo malo.

Sin embargo, recomendaría no enfatizar demasiado sus habilidades COBOL en su currículum.

En algunos lugares (por ejemplo, en el Silicon Valley donde vivo) tener COBOL en su currículum será una responsabilidad. Claro, es posible que encuentre un lugar aquí y allá que necesite su experiencia, y en ese caso continúe y publicítelo solo en esos lugares . Pero en general, hazte un favor y olvida mencionar que conoces COBOL.

Entonces sí, aprende si tienes curiosidad, solo no se lo digas a nadie.

Julio
fuente
1

Tal vez no valga la pena desde una perspectiva del mercado laboral, pero es posible que desee echarle un vistazo solo para tener una idea de cómo se hicieron las cosas "en el buen día". ^^

gablin
fuente
El único momento (creo) donde el mercado fue malo para COBOL fue durante el apocalipsis de las punto com con e-hype y todo.
luis.espinal
1

Desde una perspectiva personal, diría que primero hay cosas mejores que aprender. Sin embargo, muchas grandes empresas tienen grandes inversiones en su base de código COBOL que probablemente nunca podrán dejar atrás, creando una industria para que los programadores de COBOL mantengan la base de código y escriban código nuevo. La compañía para la que trabajo es una gran compañía financiera y nuestra división tecnológica para desarrolladores es aproximadamente 30% COBOL, 40% Java y 30% C #.

Chris Knight
fuente
2
capaz, sí, pero por qué: el código de trabajo es el código de trabajo.
0

Acabo de buscar "cobol" en el sitio web de empleo más grande de Australia. Retornó 87 resultados, y (de un vistazo rápido) en su mayoría parecen ser puestos de mantenimiento heredados en bancos e instituciones financieras. En su mayoría, claramente mejor remunerados que los trabajos basados ​​en el lenguaje más "modernos", presumiblemente debido a la rareza de la experiencia de Cobol.

Entonces, sí, parece que valdría la pena aprender a Cobol si usted 1) no le importa hacer el mantenimiento heredado y 2) quiere entrar en un nicho que está bien pagado y probablemente no sea muy competitivo, ya que es algo que pocas personas ya están aprendiendo.

(Supongo que el mercado de Cobol sería similar en la mayoría de las economías del primer mundo, pero ¿podría estar equivocado?)

Mesas Bobby
fuente
Incluso la banca / seguros / AP están evolucionando lentamente hacia tecnologías más modernas. Entonces, entrar en este nicho puede ser bueno, pero ¿qué sucederá cuando eventualmente todo el código heredado y su nicho de mercado desaparezcan?
Wizard79
@Lorenzo: Bueno, esto se puede decir sobre cualquier especialidad en nuestro campo (incluso todos los campos en general). Re-entrenamiento p.ej. Los conductores de locomotoras de vapor tuvieron que volver a capacitarse y convertirse en conductores de locomotoras diesel o eléctricas, etc., etc.
Bobby Tables
Pero COBOL ya es un nicho ... la idea es que, si adoptas COBOL ahora, probablemente necesites volver a entrenar antes que otras tecnologías.
Wizard79
1
@Lorenzo - No, en realidad no. El hecho de que no sean convencionales en cs univ. No los convierte automáticamente en nicho. Simplemente significa que no te mueves en círculos donde los encuentras. ¿Cuántos trabajadores que trabajan en la producción de líneas de automóviles conoce? Arquitectos navales? Pilotos de avión? ¿Crees que son nicho también? (y también, para estas dos categorías de ejemplo, tendrá problemas para encontrar anuncios de trabajo). Uno tiene que saber dónde mirar.
Torre
1
@Lorenzo: ¿de verdad crees que todo ese código COBOL y FORTRAN y la base de conocimiento eventualmente se reescribirán? Es enserio. Nunca he conocido a nadie en la industria y la academia que crea que tal cosa sea posible, mucho menos deseable . Tan feo como se ve COBOL (una reacción subjetiva), esos sistemas funcionan bien, mucho mejor que la basura electrónica que hemos estado construyendo desde los días de las puntocom. Eso es un testimonio de la calidad industrial. Es mejor ingeniería y economía mantener esos sistemas en lugar de reescribirlos (suponiendo un riesgo cero y recursos económicos infinitos.)
luis.espinal 18/10/10
0

Piense en los tipos de dominios problemáticos en los que desea trabajar. Por lo general, esos dominios tienen un conjunto de idiomas que generalmente se utilizan para este propósito. Si COBOL coincide con eso, adelante.

No hay forma de que toque el cobol o los dominios problemáticos que lo usan mucho con un poste de 10 pies. Prefiero voltear hamburguesas.

Considere también si el lenguaje ofrece alguna bonificación / mejora a su capacidad / conceptos de programación. No se me ocurre nada que COBOL pueda hacer / implemente / funciones que no se haga mejor o se pueda demostrar mejor en otro idioma.

Usted y los demás pueden sentirse de manera diferente.

Tim
fuente
0

Todavía hay muchos sistemas heredados escritos en COBOL. Ya sea que desee mantenerlos o portarlos a otros lenguajes de programación, todavía vale la pena aprender COBOL.

No importa lo que sea, algo de conocimiento en múltiples lenguajes de programación será una ventaja porque el conocimiento que tiene le permite elegir un lenguaje de programación o enfoque para diferentes necesidades de proyecto. Puede usar su conocimiento en lenguajes de programación para construir códigos mejores, más limpios y más eficientes y para evitar dificultades.

Adrian Hoe
fuente
Entre 2004 y 2005, participé en un proyecto de modernización de la Marina en mi país que transportaba unos 200KSLOC de Ada83 a Ada95 y unos 25KSLOC de COBOL68 y COBOL74 a Ada95. Aprendí COBOL en 1987 y definitivamente vale la pena el tiempo y el esfuerzo para aprender COBOL. No podría imaginar si no tuviera conocimiento previo de COBOL.
Adrian Hoe