Los 10 lenguajes de programación más difíciles

Publicado en 'Programación' por Oce, 20 Jul 2016.





  1. Oce

    Oce Miembro frecuente

    Registro:
    14 Jul 2015
    Mensajes:
    91
    Likes:
    4




    Los 10 lenguajes de programación más difíciles



    [​IMG]

    Sin duda todos nos hemos preguntado alguna vez: ¿cuáles son los lenguajes de programación más difíciles de aprender? Algunos dirán que es Fortran, otros dirán que es C con sus punteros o el C++ que además tiene clases, etc. Pero hoy no he venido a hablaros de estos lenguajes para mortales. Hoy he venido a hablar de aquellos lenguajes de programación surgidos de alguna mente retorcida, diseñados tras una noche de borrachera e implementados con una dosis enfermiza de sadismo.

    Los que aparecen aquí son probablemente unos lenguajes tan obfuscados, complicados y crueles que probablemente preferirías saltar por un barranco a un río de lava antes que intentar dominarlos…

    10- LOLCODE
    Por si comprender dos mil líneas de código no fuera suficiente castigo para los ojos humanos, aquí llega LOLCODE, que tiene el añadido de que todas las instrucciones están escritas en el lenguaje de los chats de Internet, es decir: con faltas, abreviaciones y expresiones que convertirían al más calmado académico de la RAE (o su equivalente inglés) en un dios vengativo con sólo leer una línea.Mis hogos

    HAI 1.2
    CAN HAS STDIO?
    VISIBLE "HAI WORLD!!!1!"
    KTHXBYE

    9- Shakespeare
    En contraposición a LOLCODE tenemos el lenguaje Shakespeare. Si entender un código ya tiene un cierto grado de dificultad de por sí, imagina ahora que todo el programa es una obra de teatro escrita por Shakespeare. Si el autor inglés se levantara de su tumba y cambiara los versos por la programación imperativa y la pluma por el ordenador, así serían sus programas:

    The Infamous Hello World Program.

    Romeo, a young man with a remarkable patience.
    Juliet, a likewise young woman of remarkable grace.
    Ophelia, a remarkable woman much in dispute with Hamlet.
    Hamlet, the flatterer of Andersen Insulting A/S.


    Act I: Hamlet's insults and flattery.

    Scene I: The insulting of Romeo.

    [Enter Hamlet and Romeo]

    Hamlet:
    You lying stupid fatherless big smelly half-witted coward!
    You are as stupid as the difference between a handsome rich brave
    hero and thyself! Speak your mind!

    You are as brave as the sum of your fat little stuffed misused dusty
    old rotten codpiece and a beautiful fair warm peaceful sunny summer's
    day. You are as healthy as the difference between the sum of the
    sweetest reddest rose and my father and yourself! Speak your mind!

    You are as cowardly as the sum of yourself and the difference
    between a big mighty proud kingdom and a horse. Speak your mind.

    Speak your mind!

    [Exit Romeo]
    Y no continúo. Esto es sólo una pequeña parte de un holamundo… cada personaje es una variable y cada párrafo contiene una (o más) palabras clave que se corresponden a las funciones, condicionales y bucles.

    Deberían dar el Premio Turing a quién escriba una base de datos con esto. Y de paso el Nobel de Literatura. [​IMG]

    [​IMG]

    8- Chef
    ¿Quién podría llegar a pensar que detrás de una innocente receta de cocina (un poco extraña, eso sí) se pueda esconder un programa? Los amantes de la cocina sin duda adorarán Chef, el único lenguaje de programación en el que las variables son ingredientes, los platos son arrays y los cuencos, punteros…

    He aquí un holamundo:

    Hello World Souffle.
    Ingredients.
    72 g haricot beans
    101 eggs
    108 g lard
    111 cups oil
    32 zucchinis
    119 ml water
    114 g red salmon
    100 g dijon mustard
    33 potatoes
    Method.
    Put potatoes into the mixing bowl.
    Put dijon mustard into the mixing bowl.
    Put lard into the mixing bowl.
    Put red salmon into the mixing bowl.
    Put oil into the mixing bowl.
    Put water into the mixing bowl.
    Put zucchinis into the mixing bowl.
    Put oil into the mixing bowl.
    Put lard into the mixing bowl.
    Put lard into the mixing bowl.
    Put eggs into the mixing bowl.
    Put haricot beans into the mixing bowl.
    Liquefy contents of the mixing bowl.
    Pour contents of the mixing bowl into the baking dish.
    Serves 1.
    ¡Y recordad, servidlo humeante y bien calentito! [​IMG]

    7- Spaghetti Programming Language
    Y continuamos con los programas culinarios.

    Cuando a un código se le llama “código espagueti” significa que está mal organizado: hay muchos GOTO, las funciones están mal ordenadas, las variables se declaran en sitios inesperados… básicamente es como un bol de espaguetis en el que el flujo del programa se retuerce de un punto a otro.

    [​IMG]

    El Spaghetti Programming Language es un lenguaje especialmente pensado para crear código espagueti. Cada función debe acabar en un GOTO, pero con la condición de que no puedes saltar a la siguiente línea. El resumen: es un programa que va saltando de una línea a otra sin ninguna lógica aparente. He aquí un ejemplo:

    2[x~13:0]3
    1[x?]2
    3[?x]1

    6- Trollscript
    Trollscript es un lenguaje que sólo puede programarse con dos carácteres: ‘o’ y ‘l’. Además todas las funciones deben empezar por ‘tr’. Eso, sumado al hecho de que sólo puede programarse modificando punteros y direcciones de memoria, hacen que el nombre de Trollscript sea, sin lugar a dudas, el más adecuado para este lenguaje.

    He aquí un holamundo:

    Trooloolooloolooloolooloolooloolollooooolooloolooloolooloolooooolooloolooloolooloolooloolooloooooloolooloooooloooloolooloololllllooooloolo
    loooooololooolooloolooloolooloololoolooolooloololooooooloololooooloololooloolooloolooloolooloolooloolooloolooloololooooolooolooloololoool
    lollollollollolllooollollollollollollollollloooooololooooolooll
    5- Intercal
    Extraído de la web oficial:

    “Abandonad toda cordura aquéllos que entréis aquí. Así que crees que ya lo has visto todo, ¿eh? Vale… has programado en C, has hackeado con LISP, lenguajes como Fortran y Basic no esconden ningún secreto para ti. Escribes módulos de Emacs por diversión. Comes ensamblador para desayunar. Conoces y dominas una docena de lenguajes de los que nadie salvo una pandilla de übergeeks ha oído a hablar […] Entonces quizá estés preparado para el desafío final… INTERCAL”

    Intercal no sólo es difícil, quiere hacer sufrir al programador. Las expresiones parecen una línea de texto mal codificada, no hay estructuras de datos y muchas instrucciones sólo se ejecutan escriviendo, literalmente “POR FAVOR” (en inglés “PLEASE”). Si no hay suficientes PLEASE en el programa, este se ofenderá al compilar y no funcionará. Asimismo, si hay un exceso el programa se sentirá superior al programador y tampoco funcionará. Y así con otros comandos como “IGNORE” o “READ OUT”…

    El programa típico para escribir la série de Fibonacci sería:

    DO .9 <- #16
    DO .10 <- #0
    DO .11 <- #1

    (1) PLEASE READ OUT .11
    DO .1 <- .10
    DO .2 <- .11
    PLEASE (1009) NEXT
    DO .10 <- .11
    DO .11 <- .3

    DO (3) NEXT
    DO (1) NEXT

    (3) DO (4) NEXT
    PLEASE GIVE UP

    (4) DO .1 <- .9
    DO .2 <- #1
    PLEASE (1010) NEXT
    DO .9 <- .3
    DO .1 <- '.9~.9'~#1
    PLEASE (1020) NEXT
    DO RESUME .1
    4- Whitespace
    Para entender mejor Whitespace, lo mejor será ver un ejemplo. Este programa pide un string y lo muestra en pantalla.



    ¿Como que me he olvidado de escribir el código? ¡Si está justo ahí! Prueba a seleccionar el espacio en blanco…

    En efecto. Whitespace es un lenguaje de programación que sólo tiene tres valores: espacio, salto de línea y tabulador. Con esto puede implementarse cualquier algoritmo posible…

    Y lo mejor es colar un programa en Whitespace dentro de un programa normal. ¿No es brillante? [​IMG]

    3- Brainfuck
    Brainfuck pretende ser un lenguaje minimalista con sólo ocho carácteres, extremadamente difícil de entender. El lenguaje declara un array de variables inicializadas a cero, y el programa consiste en utilizar un puntero para editar los valores. Genial.

    He aquí un ejemplo de holamundo:

    ++++++++[>++++[>++>+++>+++>+<<<<-]>+>+>->>+[<]<-]>>.>---.+++++++..+++.>>.<-.<.+++.------.--------.>>+.>++.

    Sí, tiene bien merecido su nombre.

    2- Unlambda
    Al igual que Brainfuck, Unlambda es un lenguaje diseñado para que sea prácticamente imposible de programar con él. Un ejemplo de série de Fibonacci sería:

    ```s``s``sii`ki
    `k.*``s``s`ks
    ``s`k`s`ks``s``s`ks``s`k`s`kr``s`k`sikk
    `k``s`ksk
    Claro como el agua, ¿eh? Pero el hecho de que Unlambda aparezca en segundo lugar es que se trata de un lenguaje enfocado a las funciones. Muy enfocado a las funciones. Tan enfocado a las funciones que no hay ni variables, arrays, bucles… sólo funciones que retornan otras funciones que, a su vez, retornan otras funciones… supongo que es el sueño de un amante de la recursividad con tintes masoquistas.

    Y finalmente, en primera posición…

    1- Los punteros del C++ :exclama:
    No! mentira jejeje

    1- Malbolge}:)}:)}:)}:)

    Malbolge. Sólo el nombre ya infunde respeto. Un lenguaje con una crueldad y malicia inigualables. Es diabólico, y cuando digo diabólico es que ni el mismísimo Lucifer, ni los Cuatro Jinetes del Apocalipsis, ni una legión de Demonios surgidos del más profundo recovenco del Averno sería capaz de maquinar un lenguaje así.

    Malbolge debe su nombre al Octavo Círculo del Infierno de la Divina Comedia de Dante, dónde se clasifican los pecadores según su crimen antes de ser castigados. En el infierno de los programadores se trabaja con Malbolge.

    [​IMG]

    ¿Crees que los lenguajes anteriores son difíciles de programar? Malbolge no sólo está pensado para ser complicado… ¡pretende ser imposible de compilar! No existe un compilador oficial para Malbolge ni una lista concreta de instrucciones: estas cambian según su posición… pero no su posición en el programa, no señor: ¡Su posición en la memoria de la máquina! ¡Toma ya!

    Existe un compilador para Malbolge que se creó aprovechando un error de diseño del lenguaje… pero igualmente es infernal.

    He aquí un ejemplo de holamundo… ¡disfrutad!

    ('&%:9]!~}|z2Vxwv-,POqponl$Hjig%eB@@>}=<M:9wv6WsU2T|nm-,jcL(I&%$#"
    `CB]V?Tx<uVtT`Rpo3NlF.Jh++FdbCBA@?]!~|4XzyTT43Qsqq(Lnmkj"Fhg${z@>


    ¿Y tú, conoces algún otro lenguaje de programación que debería aparecer en esta lista? ¡Compártelo en los comentarios! [​IMG]


    http://robologs.net/2014/09/21/los-10-lenguajes-de-programacion-mas-dificiles/
     


  2. ComeMyka

    ComeMyka Miembro frecuente

    Registro:
    4 May 2016
    Mensajes:
    121
    Likes:
    33
    Pero que carajosssss....!!
     
  3. Vossman

    Vossman Miembro frecuente

    Registro:
    17 Set 2012
    Mensajes:
    233
    Likes:
    92
    lol

     
    A Raigen le gustó este mensaje.
  4. FerLethal

    FerLethal Miembro maestro

    Registro:
    10 Feb 2014
    Mensajes:
    456
    Likes:
    45
    Perl es el paraíso al lado de esos lenguajes XD.
     
  5. Jmenendez

    Jmenendez Miembro maestro

    Registro:
    4 Feb 2015
    Mensajes:
    569
    Likes:
    39
  6. luis falera10

    luis falera10 Miembro nuevo

    Registro:
    7 Ago 2016
    Mensajes:
    9
    Likes:
    0
    ACABO DE TERMINAR EL COLEGIO,ALGUIEN ME PUEDE DECIR QUE ES LO PRIMERO QUE TENGO QUE HACER PARA ESTUDIAR PROGRAMACIÓN (CREO QUE HACI SE LLAMA LA CARRERA V:)
     
  7. bacanzito

    bacanzito Miembro frecuente

    Registro:
    5 Jul 2013
    Mensajes:
    170
    Likes:
    14
    domina el ingles para que leas documentacion de ahi directo a Java para andriod haciendo app en la plays tore es la tendencia.
     
  8. NeoBox07

    NeoBox07 Miembro nuevo

    Registro:
    24 Ago 2016
    Mensajes:
    24
    Likes:
    4
    la vga mucho