Desde las tarjetas perforadas y el lenguaje ensamblador, hasta los actuales IDE’s y lenguajes orientados a la programación de dispositivos móviles: la gama de lenguajes es de lo más amplio, y aunque muchas veces unos han bebido de otros, lo cierto es que se puede apreciar diferencias significativas entre muchos lenguajes. Medio siglo en el que hemos visto lenguajes de sintaxis muy simple y otros potentes pero complejos; programación iterativa, declarativa, funcional; orientada a objetos, a eventos; lenguajes de cliente, de servidor…
Comentarios
Oído en la oficina: "yo no entiendo esas pantallas negras con letras blancas que tenéis ahí, yo soy PROGRAMADOR, yo manejo eclipse y esas cosas, no pantallas raras de frikis informáticos" #truestory
#1 Yo hice prácticas de programación con gente que sólo sabía ejecutar un exe con parámetros haciendo un acceso directo. Si había que cambiar los parámetros para otra ejecución cambiaban las propiedades del acceso directo. #truestory also
#3 Me has recordado los tiempos del arj. Me hice dos ficheros .bat para comprimir y descomprimir sin tener que escribir la retahíla de opciones. Con los años, transferí ese conocimiento a la creación de accesos directos. Con algunos años más, aprendí a entender las opciones y que me resultase más fácil escribirlas según las necesitase.
#5 Por ahí hemos pasado todos los que tenemos un nivel de frikismo superior a la media Más de un café le he ganado a más de un compañero de trabajo apostando a que comprimo un fichero desde línea de comandos antes que él abriendo una ventana del explorador. Cuando él aún estaba buscando la carpeta donde estaba el fichero ya lo estaba yo comprimiendo
#1, x128
#1 en mi equipo nos dividiamos entre los del "mundo negro" (Coboleros, JCL, DB2, CICS, letras verdes sobre fondo negro) y el "mundo blanco" (.net, java, eclipse, netbeans y esas cosas tan modernas).
El mundo blanco está ganando, pero el mundo negro resiste.
#1 #19 Yo programo para iOS con fondo negro y letras blancas. Es la edad, claro, yo empecé en los 90 programando para AS400, todo fósforo verde.
Hombre #19, pues yo voy a meter cuchara y decir unas cuantas verdades como puños.
Yo soy del "mundo negro" de toda la vida, y habiendo hecho cosas en el mundo blanco, a nivel teórico y profesional, puedo decir con bastante conocimiento de causa que los del mundo blanco se suelen pelear con las particularidades y complejidades de los respectivos lenguajes de programación que utilizan y SU incapacidad para sacar de ellos lo que desean, y los del mundo negro (coboleros, jcl, rexx, clist, DB2... etc) se pelean con la lógica del negocio pura y dura, los programas que llevan más de 30 y 40 años sacando las castañas del fuego y como conseguir hacer miles de tareas en una tarde sin volverte loco, sobretodo cuando estás en sistemas, ya sean compilaciones, inserts en el db2 de cientos de millones de registros reestructurados, reorganizaciones de tablas, o lo que te echen.
No me extraña que la gente del mundo blanco, se crean tan superiores y blasfemen cada vez que ven una pantalla negra. No dan la talla, aunque por error se piensan que porque las empresas te meten ahí para empezar y quemarte (como les pasó a ellos) es cosa de principantes.
Esto que he dicho, en serio, más de uno que se pasea por ahí con el palo de una escoba metido en el culo todo orgulloso porque sabe abrir el netbeans debería imprimírselo y enmarcarlo.
Que el mundo negro resiste... joder, leeme y no te extrañará en absoluto.
#23 joder... tu comentario casi me ha hecho llorar... creo que hemos sufrido a la misma clase de capullos.
Con estos deditos he rascado en un tarde programas en Cobol, en PL/1, en JCL, en Db2, que han salvado situaciones muy chungas... Hacer lo mismo en Java o .net nos hubiera llevado días.
Estamos hablando de gente que no sabe hacer un modelo de datos decente, que les suenan vagamente cosas como diseño funcional, diseño técnico, normalización, documentación, optimización... pero es el futuro hamijo (esos que te han votado negatifo) ... snif... cuando nosotros los del mundo negro desaparezcamos, el caos se extenderá definitivamente sobre la informática.
Y por si fuera poco, yo me estoy pasando al mundo blanco también...
#27 Yo he resuelto el problema de las torres de Hanoi en Pascal, programado en el lenguaje ensamblador del Motorola 68000, programado mi propio shell en linux, implementado un procesador segmentado con control de riesgos mediante verilog...
En cuanto a conocimientos teóricos he resuelto ecuaciones en derivadas parciales mediante la transformada de fourier, implementado códigos de longitud variable mediante el algoritmo de Huffman, trabajado con teoría de colas y procesos markovianos en conmutación...
Soy ingeniero de teleco y resulta que mi trabajo lo desempeña igual o mejor alguien que no ha pasado por la universidad y que sólo tiene certificaciones de Cisco. Saben configurar los protocolos y diseñar las redes sin conocer la evolución del potencial en un medio dieléctrico. De hecho, sus conocimientos prácticos son muy superiores a los de cualquier ingeniero. Si he puesto negativo ha sido porque no me ha gustado que se desprecie a los profesionales que sólo están familiarizados con las últimas tecnologías. La formación que da la universidad española no es la única ni tiene porqué ser la mejor.
#28 eh, eh, yo creo que no se despreciaba a quien no ha ido a la universidad ni nada de eso. Solo era un pequeño pique entre generaciones de informaticos!
#19 #23 #27 Yo soy de la nueva generación. Sólo os digo que mis primeros programas eran en C++ con editor de texto + consola. Pero a la que el código creció a más de 100 lineas me pasé inmediatamente a NetBeans, Eclipse, VS, etc. Qué queréis que os diga, no lo cambio por nada.
No recuerdo tampoco ninguna tarea sencilla que tarde "días" en Java. E incluso, tampoco es tan difícil coger y hacer un script en PL/SQL para según que situación de emergencia.
Más nostalgia que otra cosa me parece lo vuestro... ehhh, os lo digo desde el cariño y respeto por las antiguas generaciones
#43 y si tienes toda la razón la tienes.
#43 haz ido a poner mas o menos lo que dices, es como quien quiera utilizar deamweaver para la web,mientras sea capaz se optimizar ese codigo autogenerado, no le mayor problema,la cuestión es saber lo que se hace y hacerlo lo mas facil y comodo para cada uno, para trabajar esta la máquina, la cuestión es encaminarla a lo que queramos
#23 "No me extraña que la gente del mundo blanco, se crean tan superiores y blasfemen cada vez que ven una pantalla negra. No dan la talla…"
A mi es esa actitud engreída es la que hace que me hierva la sangre. Tanto pecan los que no salen de los lenguajes de alto nivel, como los que no salen del bajo nivel. Son cosas muy distintas, pero yo he encontrado retos muy grandes en diseño de interfaz de usuario, cosas que a un ingeniero no le importan –total, el usuario es tonto y debe aprender a compilar su propio software–. En mi experiencia, tan complicado ha sido desarrollar un compilador como lo ha sido programar una interfaz de un libro para niños.
Quizás es porque debo ser de una especie de generación "bisagra", yo empecé a programar en el mundo oscuro antes de la universidad y al llegar a ella me tocó el mundo blanco. Creo que por eso nunca me acostumbré a programar en consola ni en IDE's muy rebuscados (el único que he soportado ha sido el XCode), yo era feliz con gedit y ahora con textmate.
En primer lugar, gracias a los que han entendido mi comentario en #23 y me han votado positivo. Gracias también a los que me han votado negativo y a ellos les explico, que en el mundo blanco, "el futuro" como será eternamente, tiene también gente muy buena y muy capaz. Normalmente son los que no suelen tener tiempo de estar mirando por encima del hombro a los demás. Obviamente, he generalizado pero quizás no debería haberlo hecho.
En el mundo actual, no importa lo bonito que sea tu trabajo ni el tipo de trabajo que hagas, de lo único puedes sentirte o no orgulloso es de lo bueno o malo que seas en tu trabajo, y lo único que te acredita para ser algo condescendiente con los demás (aunque yo creo que la modéstia es la virtud que te va haciendo espacio interior para seguir llenándolo).
#19 Pues yo escribo poesía en fondo negro con letras verdes, hala
#19 El java es un lenguaje de los de negro sobre fondo blanco (de hecho te enseñan a programarlo usando el MS-DOS). Otra cosa es que se use el NetBeans, el Eclipse o el BlueJ, que ya son entornos de programación gráficos, para programar en Java.
#1 El Eclipse tiene unos themes muy molones de fondo oscuro y letras de colores, aunque para mí eclipse sólo es útil para Java, para lo demás la versión gratuita de Komodo IDE es bastante más cómoda (aparte puedes hacer que que te analice cualquier framework para luego mostrarte el autocompletar y la ayuda sobre funciones y clases).
#1 Por suerte mi profesor de Programación I (en la carrera de informática) lo primero que hizo fue enseñarnos a compilar y ejecutar en linea de comandos. Luego más adelante nos enseñó a usar los IDEs pero siempre recomendandonos usar la linea de comandos.
Por suerte no nos obligaba a usar vi
Definitivamente cuanto más nuevo y sofisticado es el lenguaje, más cuesta hacer un "Hello world"
#2 Hombre, en ensamblador del 8086 no es que fuera tampoco muy sencillo:
.model tiny ; com program
.code ; code segment
org 100h ; code starts at offset 100h
main proc near
mov ah,09h ; function to display a string
mov mov dx,offset message ; offset ofMessage string terminating with $
int 21h ; dos interrupt
mov ah,4ch ; function to terminate
mov al,00
int 21h ; Dos Interrupt
endp
message db "Hello World $" ; Message to be displayed terminating with a $
end main
#4 gracias. Venía a decir que faltaba ensamblador.
#2 print('Hello World')
¿Node.js lenguaje de programación? Estos se han colado un poco
#14 habla sobre la evolución de la programación. en ningún momento dice que node.js sea un lenguaje de programación. Por cierto, que no conocía "node.js". Parece interesante.
#29 Si te decides a probarlo, muy recomendable usar el framework express.js.
Además con socket.io (plugin de sockets para node.js) se pueden hacer auténticas virguerías.
#64 Muchas gracias por la recomendación. Parece interesante. Además he encontrado templates para node.js, algo que facilita enormemente la programación web:
http://jade-lang.com/
sigo investigando
#14 Y no te olvides del detalle de poner al lado unos iPads y no mencionar a Objective-C. Por otra parte Ruby on Rails no es un lenguaje tampoco, es un lenguaje + un framework, es como poner Java on Struts+Hibernate.
Los hombres de verdad escriben código con MS Paint.
http://www.microsiervos.com/archivo/frases-citas/uberhacker.html
#17 con 2 cojones!
#17 otro
#17 Nadie que sea macho de verdad usaría MSPaint. Por lo menos "Deluxe Paint" aunque sea emulado.
#41 ¿Ensamblaste un exe con el debug de ms-dos? Eso era tortura y no meter bambú debajo de las uñas. Y lo ponían en el manual como la forma de programación más normal del mundo.
En brainfuck:
++++++++++[>+++++++>++++++++++>+++>+.
*Copiado de wikipedia...
#11 Se puede complicar aún más... en Ook:
Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook.
Ook. Ook. Ook. Ook. Ook! Ook? Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook.
Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook? Ook! Ook! Ook? Ook! Ook? Ook.
Ook! Ook. Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook.
Ook. Ook. Ook! Ook? Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook?
Ook! Ook! Ook? Ook! Ook? Ook. Ook. Ook. Ook! Ook. Ook. Ook. Ook. Ook. Ook. Ook.
Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook. Ook! Ook. Ook. Ook. Ook. Ook.
Ook. Ook. Ook! Ook. Ook. Ook? Ook. Ook? Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook.
Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook? Ook? Ook. Ook. Ook.
Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook? Ook! Ook! Ook? Ook! Ook? Ook. Ook! Ook.
Ook. Ook? Ook. Ook? Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook.
Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook? Ook? Ook. Ook. Ook.
Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook.
Ook. Ook? Ook! Ook! Ook? Ook! Ook? Ook. Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook.
Ook? Ook. Ook? Ook. Ook? Ook. Ook? Ook. Ook! Ook. Ook. Ook. Ook. Ook. Ook. Ook.
Ook! Ook. Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook.
Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook!
Ook! Ook. Ook. Ook? Ook. Ook? Ook. Ook. Ook! Ook.
#12 brainfuck
++++++++++[>+++++++>++++++++++>+++>+.
#11 #12 #18 ¿Nadie va a ponerlo en TrollScript?
Trooloolooloolooloolooloolooloolollooooolooloolooloolooloolooooolooloolooloolooloolooloolooloooooloolooloo
oooloooloolooloololllllooooloololoooooololooolooloolooloolooloololoolooolooloololooooooloololooooloololool
oolooloolooloolooloolooloolooloolooloololooooolooolooloololooollollollollollolllooollollollollollollolloll
loooooololooooolooll.
http://www.genbetadev.com/lenguajes-de-programacion/trollscript-un-lenguaje-esoterico-para-trolls
HAI
CAN HAS STDIO?
VISIBLE "HAI WORLD!"
KTHXBYE
Assembly para MIPS;
.text
main:
la $a0, hi_msg
li $v0, 4
syscall
li $v0, 10
syscall
.data
hi_msg: .asciiz "Hi Faggs\n"
Típico
Hello world http://goo.gl/1QFsL
Mi favorito
#25 Cierto, sería: SELECT 'Hola Mundo' FROM dual;
... o en PL/SQL:
SET SERVEROUTPUT ON
BEGIN DBMS_OUTPUT.PUT_LINE('Hola mundo'); END;
#10 Para mi la tabulación obligatoria es un punto fuerte, no una pega.
#6 PHP, el lenguaje con el que aprendí por mi mismo a programar.
Creo que hay un error, en SQL (al menos en oracle) no puedes poner SELECT "HOLA MUNDO" sin el from, para eso se usa la tabla DUAL que solo tiene un registro.
El de cobol no compila . Si no recuerdo mal, environment division, screen section, etc. iban en la columna 8, y el código en la 12.
#22 Se le debería caer la cara de vergüenza a quien ha hecho ese hello world, ni una sola caja de comentarios, la procedure division sin párrafos...lamentable, no sigue ningún estándar .
Aparte que sí, te va a cascar el programa, porque de la posición 1 a la 7 no se compila.
Se han olvidado de la época oscura de la programación, la programación de activeX, cuando los hombres eran hombres y hacer un Hello World hacía llorar a los programadores más duros como si fueran niños de teta http://msdn.microsoft.com/en-us/library/ms228802(v=vs.90).aspx
En mi empresa se quedaron en 1964, nada mas no se atreven a cambiar de lenguaje por que el "actual" sigue funcionando.
En hardware, en maquinas de andar por casa, se ha pasado de:
Reloj de 1MHz -> 3GHz, factor de multiplicación 3000
Memoria de 1K -> 3G, FM = 3000
Ancho de palabra 8 bits -> 64 bits FM = 8 (si lo calculamos de otra manera sale algo mas)
Cores 1 -> 6.
Threads 1 -> 2
Si lo juntamos todo la potencia del hardware se ha multiplicado por 846 millones en maquinas de uso corriente.
¿Y el software?
#36 me parece que te has colado cuando dices:
Memoria de 1K -> 3G, FM = 3000
El factor de multiplicación es de ¡3 millones!
A propósito:
- ¿porqué 3G? ¿no serán 4GB? (o mas..)
- ¿porqué 1K? ¿estas pensando en el adorable ZX81?
#59 Es cierto,la cifra final tendría que ser que el hardware se ha multiplicado por:
. 2,5 billones en maquinas de uso corriente.
#71 Me pregunto, con esta cifra, ¿como se las ha arreglado el software para anular todo este avance?
#75 Parece que cada vez se crean máquinas más potentes para que los programadores puedan usar lenguajes cada vez más ineficientes Fugas de memoria (las de las aplicaciones Java lo las de los navegadores son gordas gordas), abuso de intérpretes... Total entre un 0.1 y un 0.01% de uso de procesador como no se nota..
#36 El software hace más cosas que nunca... y es más ineficiente que nunca. Cuando de vez en cuando me viene la vena nostálgica y conecto mi Amstrad CPC 464 a cassette, ciertamente veo una máquina muy limitada y desfasada, pero que saco un partido de sus 64KB extremadamente eficiente. En cambio, cuando veo un actual i5 con Windows Vista... hará muchas más cosas, pero su estratosférico aumento de potencia física no se corresponde con la diferencia de trabajo entre ambas máquinas.
Es probable que en el futuro el aumento de potencia de las máquinas no venga tanto del aumento de prestaciones (que también) sino de la optimización de las mismas por un lado, y por la simplificación de la programación por otro, de manera que cualquiera pueda programar fácilmente sin necesidad de haberse pasado años estudiando los lenguajes.
Joder, que subidito lo tienen algunos. Suerte que me he ido a un país donde no se subestima ningún tipo de experiencia.
#31 Al Congo?
¿No ponen PHP? Estoy por votar negativo y todo...
hace una semana interconecté mi PC con mi viejo ZX Spectrum por el puerto serie, despues de pelearme durante horas con el visual studio para enviar datos al "abuelo" no conseguí nada... al final en una máquina virtual con MS-DOS y QBASIC hice un programita supersencillo que enviaba los datos (archivos) perfectamente.
A veces eso de "la evolución" es relativo.
La infografía es una mierda. De alguien que no sabe hacer un buen trabajo, de alguien sin rigor, y sin la disciplina y seriedad suficiente como para hacer una infografía de nada menos que 50 años de evolución de los lenguajes de programación.
Pues en javascript, el mundo nunca vera "Hello World", si no se ejuctuta la funcion "onload"
#74 Na, pero yo se que tu dirección MAC es T3:5H:9J:F5:GL:0L
Pues en el Cobol que a mí me enseñaron era IDENTIFICATION DIVISION, no DENTIFICATION DIVISION como pone la infografía
Cuando yo empecé, programábamos directamente los "EXE" con el masm/tasm...
Es facil, cabecera "MZ"... y sigues hasta llegar al meollo...
Aunque nada como un COM (sin cabeceras ni leches :))
Hostia...el cobol, no me acordaba ya de las Data division, procedure divison y sus put...madres.
print hello nena
He echado este:
main = do putStrLn "Hellow world"
un positivo de regalo para quien sepa que lenguaje es.
#37, Haskell
#39 Y minipunto para ti. Haskell ftw!
#37 Fantastico lenguage, pero la notacion 'do' no es necesaria en este caso:
main = putStrLn "Hello World"
18 ventanitas ahí puestas sin mucho criterio. Y eso resume 50 años... ya.
Se olvidaron de php:
Curioso,
en el caso del FORTRAN ponen que es de 1954 (correcto), pero luego el fuente es de FORTRAN 77... una versión de 23 años después ...
Ya me gustaría ver como quedaría en el primer FORTRAN, en ese no se podía utilizar formato libre por lo que la sentencia FORMAT era obligatoria.
¿Alguien ha usado PowerBasic ?
Yo me programo mis propias interfaces gráficas en VB.
Ahí queda eso.
#60 Echa currículum a CSI
#67 Eso sólo si #60 lo usa para conectarse a alguna IP
#67 #73 Exacto. Y os he rastreado a los dos. Vuestras IPs empiezan con 351 y 402 respectivamente. Ojito conmigo.
En ruby es:
puts(Hello World)
No hace falta crear un objeto. Y he de deciros, a los que quieran empezar a programar, que es como Python pero mucho más sencillo, con menos símbolos y sin la tabulación obligatoria.
Es perfecto para empezar a programar.
#10 La sintaxis es más jodida. Y la tabulación obligatoria es un fuerte.
#10 te equivocas, en Ruby todo son objetos y la tabulación se usa para las estructuras de control, no es obligatoria pero si muy recomendable. Usa un editor como Sublime Text 2 y las tabulaciones las va poniendo el editor a medida que introduces código, una manera genial para que te quede un código legible y claro.
Tu ejemplo correcto sería
puts "Hello Word"
Los parámetros pueden no ir entre paréntesis en este lenguaje pero las cadenas de texto deben ir delimitadas con comillas simples, dobles o entre varios caracteres de escape más.
Quizá para empezar no sea la mejor opción pero Ruby es un lenguaje muy bueno y potente, sobretodo es aspectos avanzados como la metaprogramación o la orientación a objetos. Los iteradores son geniales, incluso es muy sencillo crearte los tuyos propios usando la sentencia yield
Quizá como lenguaje este un poco infravalorado, por culpa de Rails que fue quién lo lazó a la fama para lo bueno y para lo malo
#10 http://imgs.xkcd.com/comics/python.png
#10 Ruby es un lenguaje muy bueno pero no creo que sea lo mas correcto para empezar a programar. Permite hacer cosas muy "elegantes", pero que si no se tienen unos conocimientos básicos de programación y OOP no son faciles de entender.