Programación jurásica

Por Arturo Quirantes, el 2 noviembre, 2015. Categoría(s): Espacio • Historias del Profe ✎ 30
Programación jurásica
Esto es incluso anterior a Clint Eastwood

Una de las cosas que se critican a la universidad española es que no proporcionan conocimientos que permitan a los estudiantes acceder luego a algo llamado «mercado laboral.» Dejando al margen el hecho de que una Universidad no es una fábrica de empleados, resulta que en tu trabajo futuro necesitarás herramientas y conocimientos de los que ni siquiera sospechas cuando entras a hacer la carrera; y al revés, también aprendes un montón de cosas que luego no necesitarás. El problema es que no sabes cuáles de las herramientas que llevas en la bolsa vas a usar al final, lo que te hace pensar a veces que el peso extra es un estorbo. No lo es.

Yo mismo soy un buen ejemplo. Llevo metido en Física desde los dieciocho años, primero como estudiante, luego como profesor. He aprendido teoría de grupos, métodos matemáticos, circuitos, cuántica, relatividad, mecánica estadística, de todo. En su mayor parte no me han servido para nada en mi trabajo. Sí me han sido útiles para dos cosas: para dotarme de una buena cultura científica general que me permite, entre otras cosas, escribir libros y aparecer en Naukas sin meter demasiado la pata; y para aprender cómo funciona la Física y de qué herramientas disponemos.

Nunca se sabe cuándo podrás necesitar lo que aprendes. A mí me costó sudor y lágrimas aprobar la asignatura de teoría de grupos. ¿Saben, de todos los artículos científicos que he leído desde entonces, cuántos hablaban de teoría de grupos? Uno solo. Uno. Pero gracias a lo que recordaba de teoría de grupos pude leerlo y entenderlo. Al final el artículo no me fue útil porque utilizo otro método de cálculo, pero de no ser así las relaciones matemáticas que ese artículo contiene me hubieran ahorrado una cantidad obscena de trabajo. Puede que me sea útil en el futuro.

Y ahora ha llegado el momento de revelarles un oscuro secreto sobre mí. Me tienen ustedes por físico, tengo un papel oficial que dice que lo soy, he hecho una tesis sobre física, me gano la vida como físico y soy conocido en Twitter como @elprofedefisica. Pero en realidad, en el día a día ¿saben ustedes cuál es mi verdadera ocupación?

Se lo voy a desvelar: soy programador informático.

Bueno, vale, sí que soy físico, escribo «papers» a revistas sobre física y todo eso. Lo que sucede es que soy el encargado de las simulaciones informáticas en mi grupo. Comencé con un proyecto que pretendía medir el tamaño de partículas microscópicas mediante dispersión de luz. Es decir, lanzas un haz de luz a un objeto y examinando la luz que éste dispersa puedes averiguar cosas como su tamaño, su forma o su composición.

Si el objeto es mucho más grande que la longitud de onda de la luz usada se pueden aplicar una serie de aproximaciones, y lo bueno es que las fórmulas resultantes son muy sencillas. Quizá recuerden la ley de Snell de la refracción, la ley de la reflexión («ángulo de incidencia igual a ángulo de refracción») y todo eso. Si, por el contrario, la partícula es mucho más pequeña que la longitud de onda de la luz, se puede aplicar una simplificación conocida como aproximación de Rayleigh, que también permite calcular la luz dispersa, la absorbida, el grado de polarización y todo lo que interese calcular, todo de forma sencilla.

Entre los dos casos, cuando la partícula es de tamaño comparable a la longitud de onda, es cuando tenemos problemas. Incluso en el caso más sencillo, cuando tenemos partículas esféricas, las ecuaciones del campo electromagnético son complejas; y no digo nada cuando la partícula no tiene forma esférica. En tales ocasiones necesitamos ordenadores rápidos y potentes para poder realizar los cálculos que necesitamos.

A eso me dedico yo. Mientras mis compañeros ajustan los instrumentos y miden, yo preparo los códigos de ordenador necesarios para realizar cálculos y poder comparar teoría y experimento. Eso me convierte en el programador del grupo, no el único pero sí uno de los principales. Me he pasado años calculando propiedades de dispersión de luz para todo tipo de partículas, y las bases de datos que hemos creado ocupan centenares de gigabytes. Todo gracias a mis conocimientos de programador. ¿Y de dónde saqué esos conocimientos? Pues de una asignatura sobre electromagnetismo. Ni siquiera estaba en el temario, pero las prácticas se realizaban por ordenador, de forma que tuvimos que aprender a programar sobre la marcha.

Recordemos que hablamos de los años ochenta. Ahora los futuros físicos de mi Universidad tienen una asignatura propia sobre programación, pero en los ochenta los ordenadores eran un artículo exótico, Internet ni siquiera existía y el método de aprender era buscarte la vida por ahí. Afortunadamente conocía algo de lenguaje de programación BASIC, y eso me sirvió de ayuda para comenzar a aprender un nuevo lenguaje llamado FORTRAN 77.

Cuando se lo expliqué a mi hermano (que estudiaba informática), casi se me ríe en la cara (y sin el casi). Nadie serio programaba ya en ese lenguaje tan viejo y rígido, cuyos inicios datan de la década de 1950. Era como si le dijese que me había comprado un ábaco para calcular. Más adelante aprendió y reconoció que no era una tontería. Resulta que FORTRAN (FORmula Translation) era el lenguaje de rigor en el mundo de la computación científica. Si estás intentando crear programas en entorno Windows o Mac ese lenguaje es el último en que debes pensar, pero en el campo de computación a gran escala no hay nada mejor. Es el triturador de números definitivo.

Han pasado los años, y FORTRAN sigue siendo el rey en su castillo. Todos los superordenadores en los que he trabajado, desde el de mi Universidad hasta los de la RES (Red Española de Supercomputación) tienen distintos paquetes informáticos, diferentes modos de proceso de cola y cada uno es un mundo a la hora de poner tus programas en cola, pero absolutamente todos tienen dos elementos en común: compiladores C++ y FORTRAN. De hecho, cada seis meses se compila una lista llamada Top 500 que incluye los quinientos ordenadores más rápidos y potentes del mundo. Para establecer la clasificación se les hace correr un paquete informático llamado LINPACK que está programado en… ¿adivinan? Sí, en FORTRAN.

Una de las cosas que más me gustan de FORTRAN es que puedo correr mis programas en cualquier sitio. No necesito hacer una versión para mi PC y otra para el Mare Nostrum porque la misma copia del programa vale para ambas máquinas. Cuando me dan acceso a un nuevo superordenador, mi tiempo se invierte en aprender la nueva forma de poner en cola el programa, pero el programa en sí es el mismo. Además, la versión de PC tiene un regustillo retro que me encanta. Abro la ventana del intérprete en línea de comandos, aparece una pantalla negro con líneas verdes (la configuré así, soy un romántico), y me parece estar en una peli de los años setenta. Sí, claro que sé que hay entornos gráficos para facilitar la compilación, pero prefiero la línea de comandos. Es más potente, rápido y eficaz, y te retrotrae a una época en la que el ordenador se controlaba con tus conocimientos en lugar de con un ratón o un dibujito de un clip. Manías mías.

Por cierto, si tienen curiosidad en ver cómo se me da, pueden ver algunos de mis programas y subrutinas aquí.

Sé que hay muchas subrutinas de programación ya compiladas y disponibles (así no tienes que aprender a, digamos, multiplicar matrices cuando te haga falta), pero al comienzo de mi carrera profesional aprendí que, cuando cambian la versión o el fabricante de FORTRAN del superordenador, también te cambian las subrutinas. Desde entonces yo mismo me hago mis propias subrutinas, las anexo al programa principal y tan feliz como una perdiz.

En 2015, FORTRAN sigue siendo tan útil como siempre a la hora de efectuar cálculos científicos. No conozco todas sus posibilidades, pero he aprendido muchas de ellas a lo largo de los años y en una de las estanterías de mi despacho descansa el manual de FORTRAN-77, de comienzos de los años ochenta, que había en el Departamento. Me apoderé de él hace años y sólo lo entregaré from my dead cold hands. Bueno, quizá algún día se lo legue a mi hijo, que ahora está estudiando Física. Tal vez así encuentre curro en la NASA controlando las sondas Voyager.

No es broma. ¿Recuerdan la película Space Cowboys? El personaje que interpreta Clint Eastwood, un ingeniero ya retirado, es el único que conoce el funcionamiento de un satélite en órbita. Se trata de un sistema muy antiguo y los expertos de la NASA reconocen su ignorancia: «¿Quiere intentar descifrar este follón? El sistema de guiado de este cacharro es prehistórico. Ni siquiera estos tipos lo entienden. Es anterior al microprocesador, es anterior a… todo

Pues resulta que ha pasado algo muy similar en el mundo real. Recientemente se retiró del servicio activo Larry Zottarelli. Tiene ya ochenta años. Con cuarenta y tres se incorporó al equipo de misión Voyager como programador informático. Con un equipo tan especializado como el de las Voyager, los programadores tuvieron que usar muchos trucos, y no todos están por escrito. A veces los documentos se pierden, otras veces quedan obsoletos. Si os interesa el tema (lo que yo llamo arqueología de datos), os dejo ejemplos aquí, aquí y aquí.

Zotarelli se sabía casi todos los trucos de las Voyager, más allá de lo que indicaban las especificaciones del manual; y es que el manual de instrucciones no proporciona todas las respuestas. Por ejemplo, en cierta ocasión se descubrió que parte del software de vuelo de la nave se desconectaría en 2010. Nadie sabía por qué. Los documentos técnicos no arrojaron nueva luz. La NASA contactó con todos los programadores de la misión Voyager que aún vivían, y ninguno sabía de la desconexión. Quizá alguien en los años setenta pensó que la sonda no sobreviviría tanto tiempo e incorporó un sistema de desactivación remota, tal vez se tratase de un fallo de programación, o quizá fue parte de una actualización que nunca se documentó bien. Afortunadamente la desconexión pudo ser finalmente anulada, pero a fecha de hoy nadie sabe quién la programó o por qué motivo.

Ahora Larry Zotarelli, el último programador original del equipo Voyager, se retira definitivamente. Quienes le reemplacen harán lo que puedan, por supuesto, y seguro que saben FORTRAN a montones, ¿pero sabrán qué sorpresas se esconden en el sistema de programación de la sonda? No lo creo. Yo llevo desde los noventa usando ese lenguaje de programación y aún no se de la misa la mitad; pero incluso sabiéndose el manual de memoria nada garantiza que no haya trucos, fallos o mejoras no documentadas en el software de la Voyager.

En el momento de escribir estas líneas, la sonda espacial Voyager 1 se encuentra a algo más de 20.003 millones de kilómetros de la Tierra. Y sigue funcionando. La limitación principal con la que se encuentra es la falta de energía. Como comenté en este artículo, hacia 2020 ni siquiera las antenas de la Red de Espacio Profundo de la NASA podrán captar sus mensajes.

Sin embargo, hay una esperanza. Existe la posibilidad de realizarle una «auditoría energética» para determinar los requisitos exactos de energía de cada uno de sus componentes y establecer procedimientos de apagado, todo con el fin de aprovechar al máximo la energía disponible. Para eso hay que saber por qué se tomaron ciertas decisiones de ingeniería en los años setenta, qué sentido tuvo establecer unos requisitos de energía para los instrumentos de a bordo y hasta dónde podemos flexibilizar esos requisitos. ¿Realmente este subsistema necesita 3,2 vatios, o le bastan con 3 y el resto es un margen de seguridad? La mejor fuente de conocimiento para ello se encuentra en la documentación técnica y en el cerebro de sus programadores. Ambos fallan por motivos de edad: los papeles se pierden y los recuerdos también.

FORTRAN es un lenguaje del programación que, como dicen en Terminator Genesys, es «viejo, no obsoleto.» Otros lenguajes mucho más molones en su época han desaparecido. Estoy tan convencido de ello que le propongo una apuesta: una cerveza a que dentro de veinte años Java o PHP serán historia. Puede aceptar o no, pero en cualquier caso he aquí un consejo para mis amigos BOFHs: id guardando bien vuestros manuales de programación y cuidadlos como oro en paño. Yo ya tengo el mío.



30 Comentarios

  1. En cuanto he visto que trabajas con ficheros de cientos de GB en seguida he pensado que se podría hacer con ellos gracias a las técnicas bigdata. Puedo sugerirte que le eches un vistazo al framework apache spark? básicamente sirve para procesar en la memoria de un cluster de maquinas inmensos ficheros de texto, a día de hoy es capaz de procesar Petabytes de datos…

  2. Yo estoy haciendo el camino al revés, más o menos, soy programador desde hace años y ahora, a mis cuarenta y ocho primaveras, me tienes batiéndome el cobre en el primer curso del grado de física. Y cuesta, mucho, pero debe ser verdad aquello de que sarna con gusto, no pica.

  3. Ay, que tiempos aquellos… FORTRAN fué también mi primer lenguaje, y entonces ni siquiera había pantallas… escribíamos en papel pijama y las teclistas nos lo convertían en un taco de fichas de cartón, una por sentencia. Luego llevabas tu paquetito a los Sacerdotes Informáticos, y al día siguiente … «error de compilación en sentencia 002».
    Luego vinieron las pantallas, el APL y la interacción. Peo es hermoso que FORTRAN permanezca. Y, por cierto, también COBOL, su hermano de letras. Aseguran que, en los sótanos de Hacienda, hay viejos 370 que se mantienen sólo porque hay programas COBOL que ahí siguen corriendo. Con letras de siete bits y sin eñes 🙂

    1. Lo mismo sucedió en California. Cuando el gobernador Schwargenegger ordenó un recorte de sueldo a los funcionarios, resultó que los programas que controlaban las nóminas estaban hechos en COBOL, y que no podían reprogramarse para aceptar disminuciones salariales con facilidad. De hecho, una de las primeras medidas de recorte del Gobernator fue precisamente … ¡despedir a la mayoría de los programadores COBOL! No te metas con el BOFH…

  4. Esa historia me suena. En mi época de estudiante (hablo del 97-98) los ordenadores no eran cosa tan exótica, pero su uso tampoco estaba tan extendido como ahora. Tuve un muy buen profesor de Cálculo Numérico. Todavía recuerdo cuando nos copiábamos el compilador (creo que en un par de) diskettes para poder instalarlo en casa y seguir trabajando en el programa de turno, o trasteando por nuestra cuenta. Mis conocimientos de BASIC venían de trastear con el Spectrum 48K, de cuando tenía doce años o por ahí… Luego llegaron las asignaturas de Astrofísica y me metieron el IDL, el supermongo y «mariconadas» d’esas. Por no nombrar el Mathlab. Sí. Qué tiempos… 🙂

  5. Realmente en la universidad basta con que te enseñen bien los paradigmas de programación, con eso la curva de aprendizaje de cualquier lenguaje «nuevo» consiste en ver donde van los puntos y comas.
    Un detalle aparte es ver la cantidad de oferta de empleo que hay para banca de …… Cobol, y que seguirá….

  6. Buen artículo Arturo,

    Pero recuerda que Java y PHP cumplen este año 20 primaveras, no son lenguajes de moda.

    Pero bueno, es cierto que no tienen la solera que tiene FORTRAN pero el paradigma de orientación a objetos resuelve muchísimos de los problemas que tienen lenguajes como Basic, C o FORTRAN básicamente por culpa del código Spaghetti (las sentencias Goto que van dando saltos por el código y terminan haciéndolo ilegible) y cosas así.

    Un saludo.

  7. Discrepo en la frase «en el campo de computación a gran escala no hay nada mejor. Es el triturador de números definitivo». Fortran se sigue usando por inercia, como explicas, no porque sea mejor. C++ es bastante más potente, te permite mejor acceso dinámico a la memoria y puedes si quieres bajar el nivel de la programación ganando en potencia (aunque sueles perder versatilidad porque entonces depende de la plataforma). Que yo sepa Fortran no tiene ninguna ventaja clara en ese sentido.

    El valor de Fortran principalmente es la «herencia». Como dices muchas cosas están ya en Fortran y si quieres reciclarla, o tienes que trabajar con ellas por narices, no tienes otra opción. Ahora, si programas desde cero C++ es bastante mejor, y es igual de versátil y usable en superordenadores. Todas las librerías famosas (Eigen, LAPACK, Numerical Recipes) están en ambos idiomas.

    Por supuesto, según que cosas otros lenguajes más modernos son aún mejores, como Matlab o Python. Ya todo depende de lo que vaya uno a hacer.

    1. No soy programador ni físico, pero si existen una multitud de lenguajes de programación es porque cada uno tiene su nicho y el nicho de Fortran es el calculo numérico y su velocidad, existen compiladores Fortran especializados en cierto hardware para darle mayor rendimiento. C++ es un lenguaje genérico orientado a objetos, Matlab no lo considero lenguaje de programación y Phyton es interpretado (muy lento)

      1. No es cierto que cada uno tenga su nicho. Simplemente se han ido mejorando con los años, pero la inercia es muy difícil de vencer. Hay compiladores específicos en FORTRAN, y en C también. No hay ningún hardware, que yo sepa, en la que FORTRAN sea objetivamente mejor que C en cálculo numérico.

        Matlab es un programa, que es programable. Python es lento, pero ambos dos son muy buenos para según que cosas. La programación científica tiene muchas facetas y hay que saber adaptarse a cada una de ella.

        1. No estoy de acuerdo en el tema de inercia en los lenguajes, hay un tema de ambientes, haciendo analogía con el lenguaje humano, no veo el momento en que todos los humanos hablemos el mismo lenguaje, por el simple hecho de que vivimos en ambientes distintos las necesidades del lenguaje son distintas y la forma de pensar es distinta, lo mismo pasa en los lenguajes de programación.

          1. Como ya he dicho, yo no programo aparte de BDs y lo minimo para automatizar lotes de trabajo, — y ya jubilado , ni eso —.

            Pero desde fuera mas bien me parece que es una cuestion de domino comercial de un nicho de mercado (?), aparte de usar el lengüaje «patentandolo» parece que se pretende que «su producto» solemante sea «manipulado» por su personal «autorizado», es bastant ecomun en las grandes compañias; Apple, Adobe, Microsof, etc.

            Pregunto — ingenuamente — ¿no sera que se usa un lengüaje u otro — y de librerias no hablemos — mas pensando en controlar el producto que en la sventajas funcionales que el lengüaje aporta?

            Llevo muchos años de usuario y lo que he visto es que hace 30 años, con un par de libros y algo de ingenio eras un «haquer» en dos patadas.
            Hoy eso esmuy dificil incluso para informaticos expertos, ¿no es cierto?

            Incluso, cuando muchos nos pasamos al Macintosh — que en paz descase — lo hicimos porque con el resedit, los macros y dos libros, modificabamos y adaptabamos el ordenador a lo que nos diera la gana, sin necesidad de tecnicos.
            Hoy, aparte que los Apple son una carrca pija, meterles mano es para expertos.
            El usuario a pagar y callar.

            ¿No sera que se usan lengüajes mas por controlar el mercado que por su eficiencia?
            Tal vez por eso muchos cientificos — y otros — son reticentes a cambiar lo que les funciona bien.
            Yo tampoco lo hago.

            En fin, es la impresion de un usuario que no programa y que hace tiempo que decidio pasarse al codigo abierto.

      2. En mi experiencia, los investigadores con los que he trabajado aman FORTRAN porque no tienen tiempo o no quieren aprender a programar en serio. La programación procedural es torpe, quizas, solo aplicable a algoritmos pequeños. Y es tan evidente, que los estándares más actuales de FORTRAN ya intentan emular la programación orientada a objetos.

        Sin duda, aprender C++ es mucho más complicado que FORTRAN, pero para los estudiantes es una mejor inversión porque nunca se sabe dónde pueden terminar trabajando.

    2. Bueno, es que FORTRAN (77) suena a viejo para cualquier informático…pero «Fortran», Fortran 90 y para adelante no tiene nada que ver, el último standard es de 2008, creo. También tiene orientación a objetos, aunque al final lo más importante es que es un lenguaje con arrays multidimensionales de manera nativa, y a la hora de programar algoritmos para cálculos en paralelo y vectorizados (SIMD) se nota. CUDA tiene versión Fortran, y junto con OpenCL están basados en estructuras de datos de arrays 2D y 3D (Texture memory CUDA, Image OpenCL), más parecidos a Fortran que a C++, aunque la sintaxis esté basada en C. C++ es multiparadigma y todo eso se puede programar, existen librerías para ello muy buenas, sí…pero todavía tiene mal implantado el paralelismo en el lenguaje standard.

      Hay muchas cosas para las que C++ es mejor opción, pero en cálculo científico Fortran moderno lleva ventaja por razones de diseño, no por simple herencia.

  8. Cuando se me ocurrio hacer la segunda carrera, — Ingenieria industrial de maquinas —, alla por el años 2.000, lo que me sacó de mis casilla fue que la asignatura de programacion se hacía con basic y una cosa que se llamaba Modulados.
    Yo llevaba trabajando con ordenadores desde el ZX y el Mac Plus — aun lo tengo — y no os podeis imaginar lo que me costo hacer funcionar un emulador de dos en el mac que usaba.
    «¿Dos en el mac? ¡Tu estas loco!»
    Luego, se metieron con Java. Pero aun me pregunto si legara un dia en el que use los que tuve que aprender con dos. Evidentemente, no es lo mismo dos que que fortran.
    Pero es que hay una cosa que siempre me ha hecho pelearme con los «victim tech» informaticos y tesnicos de ordenador — lo que viven de renovarlos y venderlos, no los serios — y es que como usuario al que le interesa hacer un trabajo y hacerlo rápido y bien, prefiero ser obsoleto a hacer experimentos con gaseosa.

    Regla de oro: «Si funcion abien y cumple con tus necesidades, no lo toques».

    Pero la carrera tecnologica y el sacrosanto obsolescente programado hace que muchas cosas ya no la sconozca nadie y asi nos va.
    ¿Porque voy a compra un nuevo ordenador o una nueva version de un programa si lo que tengo funciona bien? ¿Para engrosar las ventas de una compañia que cambia dos chip de sitio o el color de la carcasa y dos menus que se mudan de lugar y eso es la «novedosa nueva version de…»?

    Un guru me expulsó d esu foro por decir que no veia motivo par aactualizar mis equipos y sistemas, pero claro, el vivia de ser «diseñador de sistemas y administrador de sistemas».

    Pero claro, cuando hay que hacer funcionar algo que lleva funcionando, no ya 30 o 40 años, sino cino o seis, ya nadie sabe como hacerlo o de donde sacar la piezas necesarias.
    «Compra algo nuevo».

    Pues el caso es que, lentito y achacoso, mi Mac Plus 1.024 del 89 sigue funcionando de maravilla, incluido el HD y el CD. Y el MacPro del 2.008 es una carraca inutil.

    Me pregunto si los programas y equipos de las nuevas sondas y «naves» lograran durar 10 años cuando los diseñaron para 90 dias o como el viajero, seran «eternos».

    No se, sera que soy obsoleto.

  9. También soy del lote de los que tuvo Fortran como primer lenguaje, la emoción que se sentía cuando el programa compilaba sin errores era difícil de expresar. Es curioso que en la actualidad el compilador Fortran al que tengo acceso (gfortran) sea mas lento en velocidad pura que FreePascal, FreeBasic, C++ o que incluso Java, por lo menos en mi notebook AMD con programas sencillos como la sumatoria de 1/i o el promedio de los enteros aleatorios del 1 al 9

  10. Ingeniería Química, Facultad Regional de Rosario (Santa Fe, Argentina) de la Universidad Nacional de Rosario, año 2015, se programa con Matlab. No tengo la más pálida idea del FORTRAN. Pero en foros de otras Universidades dicen que Matlab es bastante deficiente y que FORTRAN es el santo grial. Si eso es cierto, no sé por qué se enseña de esa manera.

  11. Esta claro que fortran o cobol siguen muy de moda.
    Sin ir más lejos toda la arquitectura del Santander sigue escrita en cobol. Yo que he entrado hace poco a trabajar allí cuando lo vi flipe.

  12. A ver, seamos sinceros, el principal requisito para que un lenguaje sea útil es que el programador lo conozca bien, ya sea Fortran, Lisp, Basic, C, Matlab, C++, Python, Haskell, R, Java, C# o Julia. Esto puede requerir más o menos tiempo en función de cada lenguaje, y la gran diferencia entre los nuevos y los viejos es que cada vez se busca más que un lenguaje sea fácil de aprender y usar, que sea «más humano». Esto es una ventaja porque permite que más gente pueda aprender a programanr en los lenguajes nuevos y en menos tiempo, lo que amplia las posibilidades. Pero al mismo tiempo esto también es un problema, porque para escribir buenos programas se necesitan buenos programadores y esto también lleva tiempo, un tiempo que no guarda relación con el tiempo de aprender un lenguaje. Algunos lenguajes nuevos a menudo rinden peor que lenguajes más viejos para según que tareas porque permiten que programadores que no están maduros puedan escribir programas que funcionan sin errores.

  13. Lo que en ese campo considero simplemente insultante, es la cantidad de sitios donde «enseñan» C++ y lo primero que ves en una línea de programa es….
    #include

    Una librería sin soporte y desaconsejada en TODAS las implementaciones modernas de C++

    Pero ahí está, la siguen metiendo a presión, aunque haya alternativas modernas

    1. Vaya vaya… perdón, parece que hay un sistema anti «palabras malsonantes» que ha confundido la librería «C O N 1 0» (de Borland, desaparecida y obsoleta) con un palabro malsonante. A ver si así se puede ver.

      Me ha sorprendido un poco esto, esa librería no solo está obsoleta, sino que Naukas la considera palabra malsonante XD

      1. http://www.engineersblogsite.com/wp-content/uploads/2010/02/basic-5.jpg
        Quizá no es que el sistema detector confunda las palabras sino que de alguna manera está programado para anticiparse a los recursos que pudieran utilizar los usuarios para saltear la medida de seguridad y hacerse entender las palabras malsonantes variando su escritura ligeramente. Harto conocido es que muchas grandes empresas compran sitios con dominio de nombre mal escrito que redireccionan hacia la página propiamente dicha (bien escrita) previendo que una parte de los usuarios cometerán errores ortográficos a la hora de escribir las direcciones.
        Cambiando ligeramente de tema y dado que la palabra malsonante en cuestión se escribe con ñ, creo recordar que por los ochentas o principios de los noventas hubo un cierto revuelo por la sugerencia (no sé si fue algo real o solo un rumor sin fundamentos) de eliminar dicha letra del castellano para adaptar el idioma al teclado de computación internacional y para no tener conflictos con los lenguajes de programación al escribir líneas de código. Era entendible que la rapidez de escritura en un simple procesador de texto quedaba opacada por el alt 164 y alt 165 (para la Ñ mayúscula) y al parecer inventarse un teclado en castellano como tenemos ahora era algo o bien complicadísimo o no se les caía media idea de la cabeza a los responsables de fabricarlo.
        Sea como fuese, la cosa era reemplazar dicha letra por algo que los teclados internacionales (léase en inglés) pudiesen interpretar. La opción más obvia fue volver al arcaico dígrafo nn que dio origen a la ñ actual. Sin embargo tendríamos un problema con las iNNovaciones, que pasarían a pronunciarse iñovaciones y las coNNotaciones, que mejor no escribo su pronunciación para no tener problemas con el filtro ya mencionado. Otra propuesta fue un tanto portuguesista, nh, pero ya no podríamos inhalar ni anhelar como antaño, o antanno, o antanho.
        Claro que la solución francesa gn nos quitaba lo magnífico y muchos significados. Reemplazar la ñ por ni era ya demasiado burdo y ni siquiera suenan igual, y escribir companiía no parecía muy cuerdo. Quizá una nj de emergencia y de los pelos traída pudiera solucionarlo, pero la injerencia y las injanas iban a oponerse.
        En fin, no es más que anecdótico y probablemente toda esa polvareda que se levantó cuando yo era apenas un niño haya sido originada nada más que en un rumor sin correlato alguno con la realidad. Sin embargo en algunas oficinas andaba circulando un cartelito que podía verse pegado a manera de humorada en las paredes detrás de los escritorios:
        «Dado que la Real Academia Espanola ha eximido del uso de la ene en las comunicaciones redactadas por ordenador a partir del ano 1991, donde diga «ano» por favor léase «ano».

        1. Eso podría tener su «sentido» hace décadas cuando los recursos eran mucho menores y se imponía el «standar ASCII».

          Hoy en día muchos lenguajes permiten el uso nativo de cualquier idioma sin problemas

        2. Me ha encantado la defensa de la ñ Luciano!
          Yo uso Delphi, que es Pascal a la altura de C++. He echado de menos las alusiones a Pascal en los comentarios precedentes. Creo que como lenguaje es fantástico, aunque ciertamente, el mejor lenguaje es el que uno domina.

  14. Porsupuesto que COBOL no está muerto. Hoy dia es uno de los lenguajes que más trabajo te pueden dar a nivel profesional. Casi todos los proyectos de grandes empresas como eléctricas o bancos, estan utilizando sistemas Host Mainframe y estos necesitan constantemente de usar COBOL, CICS, JCL, etc.. Es muy importante formarse en estos lenguajes para acceder al mundo laborar.

Deja un comentario