edición general
407 meneos
19885 clics
¿Qué intentaba arreglar cada lenguaje de programación? (Grafico)

¿Qué intentaba arreglar cada lenguaje de programación? (Grafico)  

En su artículo What Languages Fix, Paul Graham, autor de Hackers & Painters y fundador de Y Combinator examinaba hace unos años algunos de los lenguajes de programación más conocidos desde una óptica interesante: los problemas que sus creadores intentaban solucionar al crearlos. Hoy me he vuelto a encontrar con este texto y he dedicado unos minutos a traducirlo y a crear una representación gráfica en forma de línea de tiempo que podéis ver a continuación.

| etiquetas: lenguajes de programacion , grafico , arreglos , mejoras , mundo geek
220 187 3 K 678 mnm
220 187 3 K 678 mnm
Comentarios destacados:                                  
#10 #8 #9 programar con tarjetas perforadas era mucho mas exigente que con Pascal, nada de arreglos estáticos, ni declarar cosas 2 veces, ni seperar declaraciones y demás, no, tenías que agujerear punto por punto para poder hacer una rutina de programación medianamente estructurada. Lo que hace que cosas como Pascal y los demás lenguajes sean en realidad un juego de niños. Le debo mucho a las viejas y confiables tarjetas perjoradas. :troll:
«123
  1. Java y NET intentaban solucionar el problema de que las cosas pudieran hacerse de forma sencilla, sin necesitar de 200.000 certificados y consultorías. Y han sido un gran éxito por ello, una vez convencieron a todos los directivos que no sabían nada de desarrollo.
  2. Lisp: Las máquinas de Turing son una forma extraña de describir computación

    Sí, vamos, y por eso sacaron algo tan poco extraño como Lisp.
  3. Pero es cierto que Fortran da miedo.
  4. C no nació porque el ensamblador fuera demasiado bajo nivel, ese fue B, C fue la evolución de B para añadir tipos de datos y estructuras de las que B carecía. Se puede decir que C también solucionaba eso por extensión, pero el que hizo el cambio fue B.
  5. ¡¡Hey!! Yo aprendí a programar en Basic y luego aprendí programación estructurada en Pascal. Ambas salen en el gráfico.

    Y no sé programar.
  6. ¿Qué intentaba arreglar cada lenguaje de programación?

    El ego de sus creadores.
  7. habría que inventar algo para arreglar la mente de algun@s... :-D
  8. #5 Es que a programar se aprende en Pascal. Acierto bastantes veces, viendo el código de alguien, en saber si ha aprendido a programar en Pascal o no. Da gusto ver esos códigos.

    Y después de Pascal, C. A partir de C, puede uno irse por los mundos de fantasía, lenguajes especializados, o lo que sea.

    Obviamente, es mi opinión y blah blah blah.
  9. #8 Totalmente de acuerdo. Una sintaxis que obliga a declarar e implementar por separado, incluso a declarar algunas cosas dos veces. Sólo se pueden usar arreglos estáticos. Nada de tipos dinámicos, ni Objects, ni otros juguetes, tipado fuerte y estricto. En las declaración de las clases hay que decirlo todo, nada se infiere. Y un largo etc. Al final te haces un programador a prueba de todo al que cualquier otro lenguaje te parece un juego de niños. Le debo mucho al viejo y confiable Pascal.
  10. #8 #9 programar con tarjetas perforadas era mucho mas exigente que con Pascal, nada de arreglos estáticos, ni declarar cosas 2 veces, ni seperar declaraciones y demás, no, tenías que agujerear punto por punto para poder hacer una rutina de programación medianamente estructurada. Lo que hace que cosas como Pascal y los demás lenguajes sean en realidad un juego de niños. Le debo mucho a las viejas y confiables tarjetas perjoradas. :troll:
  11. #8 Ada también es guay para aprender.
  12. El artículo debería ser clasificado como de humor, porque lo que plantea es erroneo, irrelevante ... una absoluta gilipollez.
  13. #4 pero B apenas se usó. Fue casi más un boceto de C que un lenguaje propiamente dicho.
  14. Sois todos unas nenazas. El verdadero programador se ha forjado en los infiernos del ensamblador. :troll:
  15. #10

    Salvo que lo hayan cambiado, las tarjetas no son un lenguaje, son un soporte ;)

    Y por cierto, no eran nada confiables (se te caían, se desordenaban, se perdían)
  16. #11 Aquí uno que aprendió a programar en Ada, un gran acierto por parte de mi facultad.
  17. Curiosamente a nadie le dio por mejorar Cobol, debe ser que es el lenguaje perfecto. O quizá que los que comienzan programando en Cobol, quedan tan abducidos, que les es imposible imaginar nada fuera de el.
  18. Todo lo que no sea programar en ensamblador es de nenazas.
  19. #14 Yo aprendí primero BASIC y luego ensamblador en mi viejo y confiable Z80 (MSX). Era una gozada escribir cualquier chorradilla y ver como iba infinitamente (jaja, 3Mhz) más rápido que con BASIC.
  20. #16 Me encantaba...
  21. php: los demás lenguajes son muy ordenados...

    (PD: sí, programo en PHP)...
  22. Yo aprendí en PASCAL, luego salté al BASIC hasta que descubrí Delphi: Entorno gráfico y Object Pascal, lo puto mejor. Todavía no he visto nada mejor en programación para aplicaciones de escritorio que Delphi 5: sin "maquinas virtuales", robusto, aplicaciones rápidas, conexión con BBDD perfecta, ... Todavía estoy esperando a que salga algo tan bien hecho y con tanto "cariño" como Borland Delphi.

    Creo que Phyton me gusta y tiene la filosofía de ser, ante todo, robusto y anti-chapuceros.
  23. #11 #16 Aquí otro. Ada mola xD
  24. Java y .Net tratan de solucionar el problema que cualquier codigo funcione en cualquier maquina sin necesidad de compilarlo.
  25. #21 Ser informático y decir que da gusto olvidarse de la gestión manual de memoria es como ser cirujano y decir que da gusto olvidarse de mirar por dentro a los pacientes....
  26. #1 Te invitaba a una cerveza por esa gran verdad xD ....y añado:

    - Ruby y CSS3 intentaba solucionar la necesidad de hacer sentirnos a los peludos programadores como estrellitas y unos gafa pasta de lo mas Hipster.

    - Vala, Buu y demás inventos de la comunidad Gnome intentaban solucionar la necesidad de mantener un buen escritorio como Gnome2 mientras estaban emborrachandose en alguna convención Guadec.
  27. #26 ¿o ser arquitecto y decir que da gusto olvidarse de como se prepara el ormigón armado? ¿o ser ingeniero de teleco y decir que da gusto olvidarse de como se fabrica un cable de fibra óptica? ...
  28. #22 "php: los demás lenguajes son muy ordenados..."

    Amén, hermano.

    Diría que a su altura está solo javascript
  29. #23 "Creo que Phyton me gusta y tiene la filosofía de ser, ante todo, robusto y anti-chapuceros."

    Quitáoslo de la cabeza. Anti-chapuceros no hay nada. Poned a un chapucero con cualquier lenguaje y saldrá una chapuza. Tienen sus propios caminos.
  30. #17 Las últimas versiones de COBOL para el mainframe tienen orientación a objetos. Que sí, que sí, que NO es una broma!

    pic.dhe.ibm.com/infocenter/pdthelp/v1r1/topic/com.ibm.entcobol.doc_5.1
  31. #29 :-) Vaya, pensaba que era el único bicho raro :-)
  32. Prolog y LISP, un pasote.

    #2 Te parece raro porque no sabes contar paréntesis :-P Si puedes hacer un buen juego con un lenguaje, ese lenguaje mola.
  33. #28 #29 ¡No se puede comparar! En vez de preparar hormigón armado es investigar en nuevos materiales, aunque operes por laparoscopia sigues mirando dentro del paciente, etc.

    El jugar con buffers que necesitas redimensionar en caliente en tiempos inferiores a ms o se te va el margen de tiempo para realizar la operación, gestión de áreas de memoria contigua porque va a ser usada para DMA, cacharrear con FPGAs conectadas al bus de memoria, todo ese tipo de cosas son las que le dan vidilla a ser un programador.
  34. #9 #8 Debo ser yo el raro, aprendí con pseudocógido y a continuación me puse directamente con C en el ciclo superior. Luego al meterme en ingeniería Pascal me parecía un auténtico coñazo...
  35. A mí hace unos años en un grado superior me dieron clase de C. Ahora estoy estudiando C++ por mi cuenta y voy a empezar otro grado superior donde me van a dar C#. ¿Qué opinión os merece esa progresión? ¿Debería aprender Java?
  36. #28 'ormigón'... mira que la tilde está bien puesta, pero sin la hache se merece el típico "ahhh, mis hojos!!
  37. AS1: Porque los diseñadores también tienen derechos.
    AS2: Hay demasiadas CPU funcionando bien. Pon un enterFrame en tu vida.
    AS3: No nos hemos cargado todas las CPU que queríamos.
    Starling: Hay demasiadas GPU funcionando bien.
  38. #21 Precisamente C# no destaca por su gestion de memoria. Trata de hacer simulaciones en tiempo real o invertir una matriz de 1 Giga y luego me comentas lo bien que va el recolector de basura.

    Lo normal es empezar con C y luego aprender primero C# antes que C++.
  39. #8 ¿Por qué? ¿Qué tiene de especial Pascal? Yo aprendí con C y ahora me va a tocar darle a Pascal en la Universidad :-P
  40. #37 Si aprendes C# aprendes Java, lo llamaron C# por cuestiones legales, si no se llamaría Java de Microsoft.

    #35 Lo que es lamentable es que hay programadores que no entienden la diferencia entre estructurado y OO, eso si que es lamentable, también es lamentable que hay programadores que no entienden de cuestiones de calidad en la programación, ni tampoco saben trabajar en equipo, etc. etc. ... y es que programar es mucho más que programar. Hacer una edificio es mucho más que poner ladrillos o desarrollar una red de comunicación es mucho más que tirar cable, y este razonamiento tiene que ver con lo que digo aquí #12
  41. #37 Para el C++ autodidacta, te recomiendo encarecidamente "Addison Wesley - Accelerated C++ Practical Programming by Example", en el que se ve que C++ no tiene nada que ver con C :-)

    A riesgo de que me vapulee alguien, si vas a estudiar C# yo pasaba de Java por el momento. En cambio, si que me pondría a aprender python, lenguaje interpretado, que te será muy útil incluso en tu vida diaria :-)
  42. #38 Creo que no es para tanto ... por cierto en castellano la admiración se pone también al principio de la frase ... so, listooooooo!!!!!! :-P :troll:
  43. Por cierto, el autor de la lista ha oido campanas pero no sabe de dónde. Cuando apareció PL/1 (en los 60!) la versión de fortran que existía era Fortan-66 (ni siquiera Fotran-IV). Además de pocos tipos de datos (enteros, reales y Hollerith) ese Fortran tenía como estructuras de control el IF aritmético, el DO por contador y el GOTO. PL/I es un lenguage fuertemente tipado, estructurado (al nivel de PASCAL) y sobre todo -y ese fué su principal problema- muy completo. Con PL/I puedes programar al nivel de bit (MULTICS está programado en PL/I, y buena parte de z/OS en PL/X, que es un pariente cercano) o a nivel de registro de datos (al más puro estilo COBOL), sin olvidar la programación científica (tiene los mismos tipos de datos del Fortran, más soporte nativo para números complejos). Digo que ese es su problema porque los compiladores de PL/I son enormes, y el lenguage es muy complicado de parsear (hay muchas dependencias de contexto, un parser generado con lexx+yacc no sirve).

    Decir que PL/I apareció porque "fortran tenía pocos tipos de datos" es ignorancia pura.
  44. #44 ¿C++ nada que ver con C? Si su nombre lo dice todo: "Incremento de C". Evidentemente un programa orientado a objetos es completamente diferente de uno en C pero ambos lenguajes comparten mucho.
  45. #41 C te deja hacer demasiadas guarradas. PASCAL te obliga a ser más limpio.
  46. #44 Ese libro que dices lo tengo, y tambien este otro:

    www.amazon.co.uk/C-Primer-Stanley-B-Lippman/dp/0321714113/ref=sr_1_1?i

    Los saqué de la lista de mejores libros de C++ en StackOverflow, eran los dos primeros. Supongo que no voy mal encaminado.
  47. #43 Jejeje yo tiro más a PDP-8, PDP-10 Y PDP-11 :-)
  48. Pues yo programo en ABAP (con tono de "Yo me llamo Ralph")
  49. #54 Yo he hecho un juego (más bien demo, por ahora) tipo Minecraft en C++ sin un sólo malloc(), si te sirve de ejemplo para ilustrar que estás diciendo una salvajada.

    #49 Entonces prefiero C, es más flexible y deja ver mejor quién va a ser un chapuzas. Antes de entregar el código hay que dejarlo limpio y ordenado.
  50. #15 Si programas en PASCAL guardando en ese soporte (tarjetas perforadas) ya nada se puede interponer en tu camino y te haces inmortal.
  51. solo los autenticos hombres han desarrollado algo en COBOL en su vida. he dicho.
  52. #31 Ahí le has dado. Como no puedo darte más positivos ... !BRAVO¡¡¡
  53. #53 No será más bien que C++ es un superconjunto de C? :-P
  54. Me encanta el de "Sun controla Java" que viene a significar algo así como "No hay motivo alguno excepto que soy Microsoft y quiero que te comas mi lenguaje de mierda rollo Java" xD

    Eso sí, como leí en el primer tutorial cuando tuve que aprender C#, "este lenguaje también es multiplataforma como Java,... funciona en todas las versiones de Windows". Con dos cojones xD xD xD
  55. #45 Ya, y tampoco ojos se escribe con hache. Por eso entrecomillo la expresión...

    Por cierto, ya que te pones puntilloso, ¿por qué no pones tu tampoco el signo de admiración?

    Ainss..
  56. No veo porque daba tanto miedo Fortran. Este ejemplo de código en la wikipedia no parece tan intimidatorio:
    upload.wikimedia.org/wikipedia/commons/thumb/5/58/FortranCardPROJ039.a
  57. Mi eje cronológico aprendiendo lenguajes de programación: Modula2 -> C -> Ensamblador -> Java -> Javascript -> Python.

    De momento me quedo con Java como preferido, lástima que no se pueda usar para hacer pequeños scripts como con Python, pero es que no me gustan los lenguajes que no tienen tipado estricto: demasiadas guarradas he visto ya en JS, muchas alentadas por la propia especificación del lenguaje.
  58. #47 Quizás exagero, pero la típica visión que tenemos de C++ es que es C con clases... y eso se queda muuuy corto (STL con sus maravillosos string, vector y map, templates, etc...)

    A mi se me quedó el culo torcido cuando vi que se podían ordenar vectores con:

    std::sort(myvector.begin(), myvector.end());

    O recorrer vectores con:

    for (auto i : vec ) {
    cout << i;
    }

    Y todo con la STL, es decir, sin usar librerías de terceros....
  59. #9 #11 #16 vaya me alegro de ver a más gente a la que le parece bien aprender con un lenguaje fuertemente tipado en vez de protestar con un "buaaaaa el Pascal/Ada/Modula2 no se usa en el mundo real".

    Yo estoy totalmente de acuerdo, de hecho yo aprendí C antes de llegar a la Universidad (y antes de C ensamblador, sí, era un poco rarito) y tuve que quitarme unas cuantas malas costumbres que había cogido.
  60. Las mentes lúcidas de mi universidad nos hicieron aprender el "imprescindible" Modula2 jajaja
  61. #62 Quizás porque si te fijas demasiado en la sintaxis no te fijas tanto en el contenido ... bueno vale, como veo que te cuesta te lo explico. Como para mi lo importante es que se me entienda, intento no cometer errores ortográficos ni gramaticales, pero tampoco me obsesiono, si no pongo el signo de admiración es porque, de forma implicita, te sigo dejando claro cual es mi planteamiento.
    A veces los errores favorecen al contenido, por ejemplo, al escribirlo me di cuenta que so, listooo!!! tenía mala sintaxis, ya que lo que quería decir es so listo, pero luego pensé que era mejor tratarte como a una acémila. (todo esto con humor, incluso con cariño) :troll: :-P
  62. #21 #54 ¿No conoces los smart pointers? en.wikipedia.org/wiki/Smart_pointer
  63. #66

    ¿Has tenido algún sistema en producción corriendo así bajo Mono y comprobado que sea estable? Lo digo realmente con curiosidad, porque mi primera reacción sería no fiarme.
  64. #56 Sí, claro, pero creo que se estaba hablando de un lenguaje para aprender. Antes de poder programar con limpieza en C tienes que aprender a ser limpio :-)
  65. ¿Y Modula2? ¿Es que nadie se acuerda de Modula2?
  66. ENGINEERS CAN WRITE FORTRAN IN ANY LANGUAGE
    #DontPanicMofo #WhoCares? #AreYouScare?  media
  67. ¿Y que me decís de Qt?
  68. #70 Mira, ya me has llamado so listo y acémila... Que paso de ver si escribes con faltas o no. Lo único es que algunas faltas duelen a la vista, y tu 'ormigón' lo ha hecho.
  69. #67 C++ tiene muchísimas cosas, es su virtud y su pega. Creo que querían añadirle como estándar la librería Boost también, aunque no sé cómo anda el asunto, ni las conocía hasta hace nada.
  70. #78 Wow, en realidad tiene su ironía que te funcione mejor en Linux xD

    Yo tuve que andar aprendiendo C# por requerimientos de un cliente (gran empresa con departamento de informática formado por gente con muchos certificados Microsoft a la que no puedes sacar de ahí), hasta que por fin empiezan a ceder. Pero mira, lo de montar un Mono bajo Linux cuando te requieran C# es algo que me apunto, siempre es una victoria aunque sea parcial, y por supuesto más aún si encima va mejor.
  71. #11 #16 y aquí otro...
  72. #77 Si lo haces por mi mejor que pases, porque lo tengo clarísimo.
    Yo también paso de explicarte que lo importante es el contenido y no tanto la sintaxis ... por cierto, curioso que esta conversación se desarrolle en un hilo sobre programación :-)
  73. #76 Qt no es un leguaje de programación, son librerías para hacer interfaces gráficas, con botones, treeviews, etc..
  74. #53 No, no y no. C y C++ son lenguajes completamente diferentes y tienen filosofias inherentes completamente diferentes. C++ se ha diseñado para ser un 95% compatible con C y ahí termina la relación entre ambos.

    Un programador de C declararía las variables de este forma
    int *a;

    Mientras que un programador de C++ las declara como
    int* a;
  75. #10 Uno no sabe lo que es un "error de compilación" hasta que se le cae un taco de tarjetas perforadas al suelo...

    #84 Qt = Cute = bonito, "mono"
  76. #77 Que conste que no te he llamado acémila. Lo que ha ocurrido es que, por temas circustanciales y con un objetivo jocoso te he tratado como tal, que es muy diferente.
  77. #53 ¿Estás troleando o lo dices en serio? Da igual, porque en los dos casos estás haciendo el ridículo.
  78. #35 lo siento, te he votado negativo cuando quería ocultar los comentarios. Te he votado positivo en #26 para compensar.
  79. #30 Tu no has visto ASP
  80. #41 Al Pascal le ocurre lo mismo que al Fortran, todavía hay muchos canosos que lo utilizan. Y que conste que el Fortran entra dentro de mi categoría de lenguajes decentes, pero cuando ves que todavía programan en Fortran 77 te dan ganas de buscar un Pentium 2 para compilar su código ;P

    #67 Y eso que todavía no te has metido con metaprogramación. Pero eso que comentas ya existe en Java en .Net.
  81. #5 Si aprendiste en Basic, no me extraña que no sepas programar. :troll:

    It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration. Edsger Dijkstra.

    Es prácticamente imposible enseñar a programar bien a estudiantes que han sido previamente expuestos a Basic: como programadores potenciales esán mentalmente mutilados sin esperanza de regeneración.
  82. #84 Ya. No creí necesario señalarlo.

    A mi me parece cojonudo, pero no lo he probado "a fondo".
  83. #92 Al revés, BASIC te controla mucho que no te inventes cosas, cosas que C así te deja, por tanto, aprendes a hacer las cosas con cuidado y bien.

    LISP y PROLOG y aquellos maravillosos árboles genealógicos para saber de quien era tio PEPE y cuantos abuelos tenía MARIA xD
  84. #95 C++ no es orientado a objetos... tiene objetos, que no es lo mismo. Usarlos depende del programador.
  85. #11 Yo en la Universidad no podía con Ada. El rollo de UnboundedtoStringtoUnboundedtoStringto... Me parecía totalmente intragable.

    Eso sí, como otros por ahí, aprender Pascal antes que C me pareció una gran idea. Me habría vuelto loco si de primeras me meten C y sus bonitos punteros.
  86. El Tao engendró al lenguaje de máquina. El lenguaje de máquina engendró al ensamblador.

    El ensamblador engendró al compilador. Ahora existen diez mil lenguajes.

    Cada lenguaje tiene su propósito, aunque sea humilde. Cada lenguaje expresa el Yin y el Yang del software. Cada lenguaje tiene su lugar dentro del Tao.

    Pero no programes en COBOL si puedes evitarlo.


    Tao de la programación. Libro 1, versículo 2.
  87. #95 Esto compila en un compilador de C y no compila en un compilador de C++

    int *array = malloc(sizeof(*array) * n);

    Sólo tienes que buscar por Internet para encontrar más ejemplos.
  88. #83

    Ortografía != sintaxis.

    Y la comprensión de los contenidos escritos dependen directamente de la sintaxis (que no de la ortografía, que también). Otra cosa es que ni sepas sintaxis, ni sepas programar decentemente, ni sepas ortografía, ni sepas vocabulario castellano, como es el caso.
«123
comentarios cerrados

menéame