¿Es COBOL un lenguaje de programación fácil de aprender, ya que está esencialmente escrito en inglés?

Como desarrollador de COBOL, con todos los sesgos, sí, es fácil de aprender. “pero toma esto con un grano de sal” =)

Sintaxis sabia, aquí están mis 2 centavos:

Recuerdo que la primera vez que codifiqué en COBOL, me pregunté por qué la sintaxis de otros lenguajes de programación tiene que ser trivial y críptica.

No es el primer lenguaje de programación que aprendí, per se, tenía Java y C en la universidad, pero me olvidé por completo.

Al leer el código fuente de Java o C, es como resolver una ecuación matemática. Pasas tiempo para averiguar qué se supone que debe hacer el programa.

Mirando hacia atrás en ese momento, solo sonreía y sacudía mi cabeza en cuanto a lo ingenua que era.

La mayor fortaleza de COBOL es el procesamiento de datos de negocios, y por lo tanto está orientado a usuarios de negocios (no ingenieros).

Aquí hay un programa Cobol muy simple.

DIVISIÓN DE IDENTIFICACIÓN.

ID del programa. COBOLPGM.

DIVISIÓN DE PROCEDIMIENTOS.

MOSTRAR ‘HELLO WORLD’.

Dejar de correr.

Otros verbos COBOL que se explican por sí mismos:

Mueve ‘A’ a VAR1

AÑADIR 1 A VAR2

Restar 5 de var3

RENDIMIENTO A300-PARA 10 VECES.

REALIZAR UN CTR VARIADO DE 1 A 1 HASTA CTR> 10

SI ES VERDAD

HACER ESTO

MÁS

HACER ESTO

TERMINARA SI

Como puede ver, la sintaxis está orientada hacia un código fuente de auto-documentación. ‘Idealmente’. No es tan difícil imaginar qué se supone que debe hacer el programa.

Pero al igual que con otros idiomas, tiene algunos inconvenientes.

1. Ser legible es su debilidad. La sintaxis es verbosa.

Se necesita mucho tiempo para implementar algo

2. no OOP. Puede reutilizar una gran cantidad de código, pero solo hasta cierto punto.

Los programas duplicados podrían haberse reducido.

La mayoría de los nuevos graduados de CS o cualquier aspirante a desarrollador no elegiría una carrera hacia el desarrollo de COBOL. Porque no es emocionante en comparación con otros. Sin embargo, si la razón por la que quieres aprender es tener una carrera fuera de esto, diría que es una carrera segura. La mayoría de los Desarrolladores Originales están retirados o están a punto de retirarse y la mayoría de estas grandes compañías están buscando Desarrolladores para mantener estos códigos. Es un camino de nicho y puede obtener un salario decente. Pero una palabra de consejo, sin embargo, hay que ser muy paciente y comprensivo … =)

Cuando empieces a trabajar, sabrás por qué.

Si te gusta mi respuesta, o simplemente tienes curiosidad por mis 2 centavos con otros temas, sígueme en Quora – Senzo Atsimuto

COBOL en realidad no es difícil de aprender, SI tiene un proyecto que se presta a COBOL, una buena implementación y está dispuesto a soportar algunas de las restricciones. Debe recordar que se escribió en un momento en que la norma para el “procesamiento de datos” era una tarjeta perforada de ancho fijo


y como resultado, así es como está construido internamente. En la década de los 80, las adiciones incluían enlaces para archivos de acceso con clave (similares a, pero muy diferentes de, la mayoría de las bases de datos NoSQL). En la década de los 90, se agregaron ganchos para que sea más fácil evitar el inminente y temido problema Y2K.

El problema es que es más probable que se encuentre con COBOL en una aplicación existente, tenga muchas décadas de antigüedad en este momento y esté lleno de cochecitos de polvo y cochecitos del peor tipo. El desafío no será comprender el COBOL en sí, sino la rareza asociada con los hacks empleados por los codificadores de hace mucho tiempo que intentaban hacer que el código fuera eficaz en hardware mucho menos capaz.

Eso te llevará rápidamente a la desesperación y al caos, y una comprensión del lenguaje poco completa.

COBOL no está escrito en inglés. Por falta de una mejor descripción se usan palabras en inglés como verbos y palabras clave; Ahí es donde termina la similitud. Los verbos y palabras clave COBOL a veces tienen un significado semántico similar a la palabra original en inglés, pero no siempre.

Dicho esto, es un lenguaje de programación pequeño aunque detallado y una vez que lo asimile, probablemente sea productivo [sic] con relativa rapidez, solo tiene 47 verbos (según el estándar 2014). Es compatible con punteros y OO; solía permitir que el programador creara un código que efectivamente se auto modificaba, aunque se supone que esta característica es ilegal en los compiladores modernos …

Los caballos para los cursos, sin embargo, es casi seguro que no es una opción ideal para sistemas modernos. Ciertamente no es la forma más rápida de programar, solo se basa en la cantidad de caracteres que tiene que escribir para hacer algo.

Decir que COBOL está “escrito en inglés” es un poco engañoso, es más preciso decir que la sintaxis fue diseñada para ser “similar a la del inglés”. La forma en que lo pondría es que COBOL es muy prolijo, en el sentido de que otros idiomas usarán la puntuación. COBOL usa palabras, pero COBOL también está muy enfocado en los tipos de problemas que los diseñadores imaginaron al usar COBOL. Ciertamente no puedes simplemente escribir oraciones al azar y llamarlo COBOL.

Aprendí COBOL en la universidad y nunca (afortunadamente, IMO) tuve que usar ese conocimiento en mi trabajo. Francamente, si alguien me hubiera ofrecido un trabajo haciendo COBOL por (muy) buen dinero, podría haberlo aceptado (hace 30 años), pero si eso sucediera hoy, ciertamente les diría que no, en términos inequívocos.

Sin embargo, COBOL no fue difícil de aprender o de escribir. De hecho, mi conocimiento sobre COBOL y FORTRAN (IV y 77) hizo que fuera más fácil aprender PL / I, que contenía muchas de las IMÁGENES y otras estructuras de COBOL y otras cosas de FORTRAN, todo en un paquete gigante (con tornillos, pernos, y cualquier otra cosa que encontraron por ahí). PL / I también se consideraba “similar al inglés” y, por lo tanto, era un poco prolijo, pero me gustó más que COBOL o FORTRAN y lo usé durante varios años.

Una vez que pasé a trabajos centrados en computadoras personales en lugar de mainframes, nunca volví a tocar ninguno de esos idiomas (como Rexx, EXEC 2 y JCL). Nunca miré hacia atrás.

Según tengo entendido, es un lenguaje “fácil” a pesar de que está en inglés … para su dominio. Eso no ayuda si trató de usarlo fuera del dominio para el que estaba destinado, luego diga para hacer juegos 3D. Realmente no sé COBOL pero entiendo que se usa para aplicaciones de informes / negocios bastante simplistas (en comparación con aplicaciones de hoy).

Solo quería responder al punto general de usar el inglés en un lenguaje de programación, y usar los que sí conozco como ejemplos: SQL, C ++, Julia y matemáticas en general.

En C ++ tiene “class” -keyword y “struct” -keyword. Class (y struct [ure]) es una palabra en inglés, no estoy seguro de que ayude a las personas a aprender C ++ y la orientación a objetos (OO):

El idioma de Julia dice, <: donde en otros idiomas puede esperar "hereda" -keyword (o "subttype"). Siempre debe esperar aprender algo nuevo / desconocido en un lenguaje de computadora, y esa notación no es un gran problema (excepto ayudar) después de un corto tiempo. "Heredar" ni siquiera significa (en ningún lenguaje informático) lo que hace en la vida real, "obtener dinero de un familiar muerto".

En SQL usted dice:

SELECCIONAR * DE LOS CLIENTES
Donde algo ..

Sería algo así como comprensible:

Clientes S * F
W algo ..

?

[El deletrear en el primero puede ser un buen recordatorio, pero después de escribir muchas consultas, si realmente no importara mucho y no necesitarías este recordatorio constante y te gustaría escribir menos letras …]

Si supiera lo que significan los códigos de letras, esencialmente marcando las mismas cláusulas SELECT, FROM y WHERE, entonces podría escribir las consultas más rápido. Se vería quizás más “ilegible” para aquellos que no conocen SQL.

SQL NO es un lenguaje realmente bueno. Que se vea “legible” (para aquellos que saben inglés) da la falsa impresión de que cualquiera puede usarlo (correctamente). Estaba destinado a ser utilizado por los usuarios finales. Ese objetivo original falló (pero en realidad porque las personas comunes no se normalizan y se unen …).

En matemáticas, tienes “lim”, para “límite” (no me ayudó ni un poco aprender las integrales … creo que incluso más tarde aprendí lo que significaba “lim” …).

Las matemáticas son un lenguaje universal, en su mayoría no dependen del inglés (mientras que los artículos sobre matemáticas para el texto del lenguaje natural general para describir fórmulas / pruebas, como en la mayoría de las ciencias, ahora tienen el inglés como el lenguaje de la ciencia de facto , antes solía ser alemán y latín ).

¿La ausencia de inglés principalmente en las ecuaciones (usar letras latinas y con frecuencia griegas) ayuda o dificulta a las personas que hablan inglés o que no hablan inglés?

Julia utiliza la mayoría de las matemáticas estándar (con las mismas modificaciones que la mayoría de los lenguajes informáticos, aunque un poco menos):

A = B * C

[En matemáticas, más correcto sería A ← BC, ya que esto es realmente una “asignación” a la variable A, no una ecuación.]

Algunos otros lenguajes usan la notación de infijo …: A = BC *

Creo que en COBOL es posible que tengas que decir “MÚLTIPLES” en lugar de * (¿eso sería más claro?) Y probablemente necesites mucho código “repetitivo” (al menos en otro lugar), especialmente si A y B tienen matrices, mientras que en Julia a diferencia de la mayoría de los idiomas, el código aún sería idéntico.

Otro ejemplo en Julia:

p (x) = 2x ^ 2 + 1
f (x, y) = 1 + 2p (x) y

[Al igual que en la mayoría de los idiomas, ^ se usa para “al poder de” (¿no sería molesto tener que escribir eso en lugar de hacerlo?) En lugar de superíndices. pow (2x, 2) también habría sido una opción aquí.]

Otros idiomas pueden verse algo como esto:

p (float x) {return 2x ^ 2 + 1;}
f (float x, float y) {return 1 + 2 * p (x) * y;}

Tenga en cuenta que “flotante [punto de entrada]”, incluso si se hubiera explicado (o “doble” para “punto flotante de precisión doble”, le ayuda de alguna manera a saber que significa (una aproximación de) “números reales” ( por no hablar de las trampas del punto flotante …?), ¿y está ayudando de alguna manera a tener que explicar eso en su programa? Yo diría que es solo una distracción del “lenguaje matemático universal” al que está acostumbrado. haga lo mismo (explique los tipos) en Julia, pero NO tiene que hacerlo – por velocidad o corrección (guardaré la clase sobre “escritura estática” para un día posterior, y cómo eso no es un problema en Julia).

[También tenga en cuenta que Julia no requiere puntos y coma (si desea p y f en la misma línea, entonces necesita un punto y coma como separador), ni * (en ese caso) que la mayoría de los idiomas requieren (que a veces es necesario, cuando no claro del contexto, pero siempre puede agregar un * como en otros idiomas, por si acaso).]

[Julia permite el uso de letras griegas comunes y símbolos comunes de matemáticas pero no requiere (los símbolos comunes siempre son opcionales y redundantes a la sintaxis que se esperaría de otros idiomas).]

Yo diría que Julia es fácil de aprender, NO solo para el dominio de las matemáticas / ciencias a la que está bien adaptada (porque ya sabes el “lenguaje” de las matemáticas (superiores)). Incluso podría vencer a COBOL en algunas de las cosas para las que sería bueno.

Solo agradezca que no tenga que usar palabras clave en lenguaje natural demasiado, pero sí lo use (por ejemplo, probablemente en inglés) en los comentarios (y los nombres de funciones y variables) de su código … mientras que el lenguaje natural no es un sustituto del código claro ..

[No todos en el mundo entienden inglés. Aprendí inglés a la edad de 9 años, leyendo el manual que venía con mi primera computadora, Oric-1, que en su mayoría enseñaba BÁSICO (código de instrucción simbólica básica de uso múltiple) que usaba. .

Probablemente hubiera sido un poco más comprensible si BASIC hubiera usado mi idioma nativo … para empezar. Pero en su mayoría, la programación tiene que ver con las reglas estrictas de los lenguajes de programación, no que se basen en lenguajes naturales. Usar cualquier lenguaje natural en lenguajes de computadora (palabras clave de uso frecuente al menos) es una filosofía un tanto obsoleta.]

Es y no es …

Aprendí los conceptos básicos de COBOL al darles clases particulares durante dos sesiones, pero como en cualquier idioma, tiene rarezas.

Por decir lo menos, COBOL tiene muchos aspectos arcanos, como el hecho de que te obliga a definir los anchos de todas tus salidas, mientras que ningún lenguaje moderno lo hace.

También tiene algunas de las construcciones más “malvadas” de cualquier lenguaje, como goto dinámico (búsquelo, goto es “considerado dañino”).

Casi nadie abraza completamente a COBOL; esto se debe a los inconvenientes prácticos de la ingeniería de software, por ejemplo, es muy difícil escribir un código que no pueda tener errores y que se pueda mantener.

La salvación de COBOL es que fue uno de los primeros idiomas de alto nivel cuando no había buenos ejemplos a seguir.

No es más fácil de aprender porque está escrito en inglés. Tiene muchas peculiaridades extrañas, como PICTURE y DATA DIVISION y cómo los comentarios son declaraciones ejecutables, además de que cada proveedor ha agregado toneladas de “extensiones” para manejar cosas más modernas como las bases de datos modernas y los tipos de datos. Yo diría que no es diferente en dificultad que JavaScript.

No escribo COBOL, sin embargo, tengo experiencia con otro lenguaje modelado en inglés, AppleScript, que es una abominación.

Usar el inglés para programar computadoras es como usar un lenguaje de programación para hablar con un amigo, simplemente la herramienta equivocada para el trabajo.