cobol - poner - how to put hashtags on youtube videos
¿Por qué COBOL sigue siendo un idioma preferido en el mundo de los negocios? (11)
Aunque tenemos lenguajes como C++, Java, Python
, etc., ¿por qué COBOL
sigue siendo el idioma preferido en el mundo de los negocios?
EDITAR :
¿Por qué fue tan popular?
Lo siento por no crear un hilo separado para esta pregunta.
¿Por qué se dio cuenta?
Fue fuertemente empujado por IBM. Esta fue una gran ayuda para FORTRAN y COBOL, aunque no para PL / 1.
Estaba disponible muy pronto, apareciendo por primera vez antes de 1960.
Era mucho más fácil que usar el ensamblador, incluso el ensamblador IBM 360 (que era muy bueno para el procesamiento de negocios). Se recogió un montón de gente tratando de hacer mejor que el ensamblador.
Fue una muy buena combinación para las prácticas informáticas comerciales comunes de la época. Fue muy bueno para aceptar comentarios, hacer pequeñas transformaciones y escupir informes. (Todavía lo es, para el caso, pero las empresas tienen necesidades mucho más diversas en la actualidad).
Tenía algunas características especiales, como la aritmética decimal, al tiempo que registraba los puntos decimales y registraba los tipos de datos, que funcionaban muy bien en los negocios.
¿Por qué se dio cuenta?
Porque a fines de la década de 1950 el gobierno de los EE. UU. Decretó que si un proveedor de software quería vender una aplicación o escribir una aplicación para el gobierno, el idioma tenía que ser cobol.
Como consecuencia, durante décadas, fue el lenguaje el que contó con el mayor conjunto de proveedores de compiladores, y fue el idioma con el mayor grado de estandarización de ISO, con solo FORTRAN acercándose a eso, pero FORTRAN obviamente tuvo un enfoque completamente diferente. Público objetivo.
Segunda razón: porque incluso hoy en día, es mejor que cualquier otro idioma que conozco para ciertos aspectos de ciertos problemas comerciales que ocurren con bastante frecuencia. El más importante de estos aspectos es la aritmética decimal. Cobol lo tiene de forma nativa (como es el caso de PL / 1 y tal), pero eso no es cierto para ninguno de esos lenguajes supuestamente "más modernos". Dicho sea de paso: esa es la razón por la cual hay tantas preguntas aquí con respecto a "¿cuál es el mejor tipo de datos para almacenar valores de dinero?". La gente que hace estas preguntas no sabe mejor que todo el mundo de TI consiste en algún lenguaje OO y alguna herramienta ORM, y no tienen idea de por qué tal cosa "aritmética del dinero" podría ser útil para que un lenguaje informático lo respalde de forma nativa . es decir, para que un lenguaje de computadora tenga un tipo de datos nativo incorporado, que no sea bigint (con el programador aún teniendo que realizar un seguimiento del número de decimales), o flotante (con el programador aún siendo responsable de agregar la información correcta). Lógica de redondeo por todo el lugar).
Cobol fue inventado para permitir que las personas que no sabían nada de computadora escribieran programas. Este es exactamente el tipo de mala idea sobre la que prosperan los negocios, la particularidad estadounidense.
Un buen software requiere una gran habilidad y buenas herramientas, algunas de las cuales realmente requerirán un conocimiento y una comprensión reales para poder utilizarlas, y mucho menos, bien. Los niveles altos de Habilidad tienden a exigir altos salarios, por lo que la búsqueda de la bala de la astilla continúa y la alta habilidad se desalienta activamente. No me creas? Prueba estos enlaces
http://userweb.cs.utexas.edu/users/EWD/transcriptions/EWD12xx/EWD1284.html
Funciona en máquinas que pueden enrutar cualquier pieza de hardware y degradar con gracia si muere un procesador. La confiabilidad lo es todo cuando se trabaja con miles de millones de dólares.
Esas máquinas también soportan velocidades IO ridículamente grandes; Si no puede manejar las transacciones de un día en tiempo real, está fuera del negocio.
Ha sido un lenguaje estable con muy pocos bits en desuso desde 1985.
El código no se transfiere fácilmente a otro idioma, porque los desarrolladores no "planearon" que eso suceda. Mover el código que está impulsando los sistemas hoy a otro idioma es un riesgo y un costo muy grande.
La confiabilidad cuenta para algo, y COBOL lo tiene a su favor.
Muchas grandes empresas, especialmente los bancos, tienen sistemas complejos escritos en COBOL, que simplemente funcionan. Muchas instituciones de este tipo consideran que la reescritura y el diseño de dichos sistemas son un desperdicio de recursos, incluido el tiempo y el dinero. También existe el riesgo de que ciertas características específicas de los requisitos se pierdan en el camino. De ahí la expresión antigua, si no está rota, no la arregles.
Ninguno de estos idiomas ofrece lo que Cobol hace: procesamiento rápido y eficiente de grandes lotes de datos. No necesita gráficos, no necesita giros de bits, solo necesita hacer lo que hace bien, en su mayor parte de contabilidad.
C ++ y C son buenos sustitutos de las cosas de estilo de los sistemas, pero caen en el punto fijo de matemáticas y un fuerte soporte para E / S orientada a registros. En el espacio donde viven la mayoría de las aplicaciones financieras y empresariales, z / OS, tanto Cobol como z / assembler tienen mejor soporte nativo para esas cosas.
Java es bueno, seguro y viable. Y en los mainframes de IBM, Java y Cobol interactúan muy bien. Pero algunas cosas que son fáciles de hacer en Cobol son muy difíciles de hacer en Java, y lo contrario es cierto. Se complementan, no se reemplazan. Java también hace todo lo que tiene que ver con matemáticas de punto fijo a través de las llamadas a la biblioteca, que son mucho más lentas que el soporte nativo de opcode.
Python usa la biblioteca (también conocido como módulo) para matemática de punto fijo, así como para registro de E / S. También adolece de un error fatal, IMHO, de uso de la sangría para delimitar el alcance. Esto funciona razonablemente bien en el entorno relativamente homogéneo de Mac / Windows / Unix con alguna variante de conjuntos de caracteres ISO8859-1. Es propenso a problemas al moverse entre un mundo centrado en ASCII y un mundo centrado en EBCDIC donde los terminadores de línea no son tan simples como "/ n / r, / r, / n" y cualquier configuración errónea en un paquete de transferencia de archivos La rutina de conversión de caracteres o la edición por un terminal configurado para un conjunto de caracteres diferente destruirá el alcance de su fuente.
Todos los idiomas que menciona tienen debilidades en las necesidades comerciales críticas donde Cobol es el más fuerte.
No estoy tan seguro de que COBOL sea preferido por las grandes empresas y el gobierno. Yo diría que tolerado podría ser una palabra mejor.
¿Por qué?
Debido a que el gran gobierno / empresa es un riesgo adverso cuando se trata de administrar sus sistemas financieros. Enloquece aquí y toda la empresa se pone en peligro. Si no está roto, no lo arregles.
Es difícil hacer un caso de negocios sólido para reemplazar los sistemas de misión crítica que contienen millones de líneas de código sobre lo que se reduce a un tipo de argumento de "mi idioma es mejor que el tuyo": bueno, es más complejo que eso, pero presenta un sólido caso de negocio es dificil
Volumen de transacciones. Las aplicaciones COBOL tienden a ser optimizadas para el rendimiento. El procesamiento por lotes de grandes cantidades de datos es donde COBOL realmente brilla. Las aplicaciones Java son algo más difíciles de optimizar para el rendimiento debido a la tendencia a tener más capas de infraestructura entre el programa y el "metal", lo que agrega un arrastre de procesamiento. Las grandes empresas / el gobierno tienen una gran cantidad de datos para impulsar sus sistemas y el rendimiento es esencial.
Costo por transacción. COBOL generalmente tiene un menor costo por transacción cuando se incluyen todos los factores. Esto se debe en parte a que el tiempo de procesamiento cuesta dinero, y las aplicaciones COBOL en general son más eficientes. Sin embargo, las aplicaciones COBOL también parecen tener menores costos de desarrollo / mantenimiento.
Antes de que todos salten sobre mí para ese último punto, déjenme explicar ...
Trabajo en una tienda muy grande y hace unos años se tomó la decisión ejecutiva de construir todos los sistemas nuevos en Java. COBOL se retendría solo para el mantenimiento de la base de software existente. Se planificó una eliminación gradual completa para un horizonte de tiempo de 15 años.
Algunas de las mejores y más brillantes mentes de Java fueron entrenadas para entrenar, establecer Mejores Prácticas, construir infraestructura y soporte para el desarrollo de Java a gran escala. Esta iniciativa fue bien planeada y ejecutada. Luego, una vez implementadas varias aplicaciones Java, se inició el "conteo de beans". Los resultados fueron que las aplicaciones COBOL todavía cuestan menos para desarrollar, mantener, soportar y ejecutar - ¡aquí se trata de un gran número de cálculos duros porque el resultado no fue bienvenido!
COBOL está de vuelta, pero no completamente. La nueva dirección ejecutiva es mantener COBOL para trabajos pesados (procesamiento de transacciones de back-end) y aplicaciones orientadas a lotes. Básicamente, COBOL se utilizará para el cálculo de números y la implementación de reglas comerciales. Java viene al frente para proporcionar interfaces de tipo GUI y un procesamiento ligero.
Sospecho que esta es probablemente la tendencia de la industria. COBOL no va a desaparecer en el corto plazo, pero puede desaparecer tras bambalinas donde admite nuevos jugadores por adelantado.
Primero, trabajo para Micro Focus, entonces soy una parte interesada. Sin embargo, volvería la pregunta sobre sí misma. Por qué no? El supuesto inherente es que C ++, C # o Java naturalmente van a ser mejores porque son más nuevos. Sin embargo, COBOL no se ha detenido. En parte debido a su sintaxis verbal, se ha demostrado que es posible agregar nuevas características a COBOL, por lo que se ha mantenido competitivo. La gente suele hablar de lo "malo" de COBOL, ¡pero están comparando a COBOL de 30 años con la última versión de C #, Ruby, etc.!
De hecho, la historia misma de la evolución de COBOL pero la compatibilidad con versiones anteriores es una razón importante para que una empresa invierta en ella; el tco se reduce porque no hay necesidad de volver a escribir.
Para obtener más información sobre la última versión de COBOL, visite el sitio de la comunidad de Managed COBOL: http://knol.google.com/k/alex-turner/micro-focus-managed-cobol/2246polgkyjfl/4
Trabajé ao c, c ++ y Java también. todos son avanzados n tienen una característica grafical. Pero cuando llega la cuestión de la informática, significa que no hay trabajos duros solo cálculos de negocios y especulaciones. nadie derrotó a COBOL en eficiencia ... y enorme procesamiento de datos, Prossesing por un día o más de un día ... ¡en Java u otro lenguaje! olvidar. Su único cobol y mainframe.
- La lejía de la seguridad. No hay cloro por más de 60 años en mainframe.
- Sencillez de código para manejar en situaciones de emergencia o showstoper.
- Oye, usa front-end en java, vb.net todo, pero para los datos que guardan la confianza en DB2.so cobol se volvió imprescindible.
todos sus motivos por qué las principales empresas bancarias que piensan 10 veces antes de migrar de mainframe a otra
[Publicación del vendedor - pero no necesariamente la declaración oficial del vendedor]
Ciertamente, la inercia, la base de instalación y el riesgo de cambio son razones muy válidas, pero diría que existen buenas razones dentro del lenguaje en sí. Si desea hacer un procesamiento por lotes de grandes conjuntos de registros de datos o desea realizar cálculos financieros, entonces las definiciones de diseños de registros y tipos de datos numéricos son mejores que en cualquier otro idioma.
Como NealB describe en su publicación, he hablado con usuarios cuyo entorno natural y experiencia es Java pero mantienen la lógica central en COBOL porque es la mejor herramienta para el trabajo. Mezclan liberalmente Java (principalmente para la maniuplación de cadenas UNICODE y la integración de systesm) con COBOL dentro de la misma aplicación. si comparaban la cantidad de código para hacer el mismo trabajo en Java, simplemente no tenía sentido. Alex Turner ha publicado algunos ejemplos excelentes en otro sitio web que compara funciones de negocios típicas en COBOL con Java.
Código de inercia. Grandes cantidades de código existente escrito en COBOL = costos prohibitivos para cambiar todo a otro idioma. Wikipedia dice que hay más de 200 mil millones de líneas de código COBOL en uso.
Inercia política. Los lugares donde COBOL está realmente en uso profundo tienden a ser agencias gubernamentales y grandes empresas, que son notoriamente lentas para cambiar.
Inercia humana. Las personas que se ganan la vida escribiendo códigos y conocen muchos idiomas son menos propensas a considerar que es un gran problema aprender una nueva. Las personas que aprendieron un idioma porque necesitaban saberlo para realizar lo que de otro modo es un trabajo "de negocios" tal vez ni siquiera piensen en cambiar.