2009-03-08

Ahora llegan los programadores balas, digo, de vala... @#$!

Yo me dedico a esto y sin embargo muchas veces me es imposible seguir los acontecimientos y la velocidad de "progreso" (progreso?) de la informática. Parece que cada dos o tres años una nueva generación de estudiantes de sistemas dice "todo lo que existe no sirve, voy a crear mi propio lenguaje de programación".

Yo cuando empecé con las compus hogareñas de 8 bits, había 3 lenguajes principales (había más pero en uso hobbista había básicamente tres):

-Podías programar to computadora en BASIC (la mayoria empezamos con eso)
-Podías programar en C
o bien
-Podías programar en assembler o código de máquina, es decir, programar para el procesador que tenía la computadora en cuestión (Z-80, 6502, Motorola 6809 etc)

Ahh me siento un dinosaurio sabiendo assembler del 6502...

LDA $0A
CMP $C020
BEQ $D01E

(JA! ... tomá mate... no se qué catzo hay en la posición de memoria C020 pero igual comparo con $0A y si es igual salto a la m... ;-)

Después aparecieron PASCAL y Clipper que tuvieron gran aceptación, por nombrar sólo dos.... (ahora me vienen a la mente Borland Objectvision, y CA-Realizer!).

Ya antes de la explosión de internet tuvimos a Java (que sigue muy vigente sobre todo en el servidor, y ahora con JavaFX promete traer más gente),

Antes de eso estuvo Smalltalk, orientado a objetos, y otros remanentes en uso académico o de negocios como Fortran, Ada, Cobol...

También existian lenguajes de "scripting" como Rexx (usado en OS/2 de IBM y AmigaOS)

Pero igual la cosa era manejable los lenguajes se podían contar con los dedos de dos manos.

La explosión de internet como decía trajo nuevos lenguajes... primero estuvo PERL que venía del mundo Unix y que pasó a correr como scripts ".CGI" en el servidor. En una época todo sitio en la web tenia extensiones .pl o .cgi. Después llegó PHP. Después la moda pasó a ser Python. Después de pronto todo el mundo empezó a hablar de Ruby. -estoy dejando afuera inventos de Microsoft para destronar a Java como C#-.

Uy casi me olvido de TCL y TCL/tk que también venían del mundo Unix.

Como si no hubieran suficientes, hace relativamente poco (el tiempo vuela en la red) los compañeros Mercosureños de Brasil hicieron LUA... muy popular para sistemas embebidos.

Bueno, ahora me entero que me estaba quedando afuera de otro que viene "pisando fuerte".... y me desayuno con que existe BALA, er.. digo, VALA.

http://en.wikipedia.org/wiki/Vala_(programming_language)

BASTA, es hora de ponerle fin a esta farsa con los nombres jocosos. ¿Se imaginan la conversación siguente en un ascensor entre dos programadores nerds, ante la atenta mirada de una persona cualquiera -no-nerd-?.

- No, no sabés, ahora estoy haciendo el CURSO DE "BALA" (vala)
- Ah vos... Bala?
- Si, bala. Una masa.
- Terminaste con el Mambo?
- Si, ayer estuve hasta la 4am dandole a Samba.
- Nosotros en la empresa tuvimos un problema con Rumba, es una mierda.

En fin...tantos proyectos al mismo tiempo, van a torpedear el crecimiento de
la industra del software... (ver link)

...Es poco serio, así no se puede trabajar... ;-)

Imagínense las tapas de Reptil (Perfil) si el gobierno extende las becas Control-F
para este nuevo lenguaje... "El kirchnerismo da cursos de bala" ... no.. en serio... en gráfica todo bien, pero cuando lean la noticia por radio?... a mi me preocupa.

Como diría Petinatto "baila la avenida Santa Fe..."

Nerds eran los de antes... la foto del creador de VALA me exime de mayores comentarios ;-)

*CHISTE* *CHISTE* lo único que me falta es que alguien se ofenda. :-P

FC

19 comentarios:

eduardo dijo...

Maestro: Sos el Felipe Pigna, un poco homofóbico (ojo con la Lubertino), de la informática.Te olvidaste del COBOL o fue exprofeso?

Saludos

Fernando Cassia dijo...

Cómo que no está el COBOL? ahí está!. Y demás está decir que va todo en tono jocoso. Si alguno se ofende problema de el.

Si quieren venir que veng.... eeee... no mejor no.

FC

PD: For the record, durante la decada del 90 desarrollé una afinidad notable con el REXX de IBM. Y su versión open source (para Linux, Windows) Regina/Rexx.

Ahora sólo hago scripts BASH de vez en cuando.

Mi lenguaje favorito sería un CA-Realizer (que bueno era ese producto...) que pudiera compilar alternativamente código nativo o Java bytecode multi-plataforma...
Voy a ver si me pongo las pilas y miro JavaFX...

chacall dijo...

Hablando de la historia de los lenguajes de programación... http://www.levenez.com/lang/lang.pdf...


Ahí tenés nombres para hacer dulce... y ni te digo si te ponés a ver como se programa en algunos como scheme o prolog...

Y también faltan ahí todas las mezclas que hay hoy día, con jython, groovy, etc etc...

Pero es cierto que si te metés sobre todo en sourceforge, vas a encontrar nombres de proyectos desopilantes... (una vez pensé en escribir un par de parrafos de alguna historia usando los nombres de proyectos de sourceforge...)

saludos!

Fernando Cassia dijo...

Gracias Edu y Chacall por comentar.

Chacall: tenes razón y el soft propietario tampoco se salva. Hace un año y medio descubrí que el software de análisis de discos rígidos Hitachi se llama "O.G.T." (ojete).

Y después hay un software de backup en red que se llama MEMEO (mimi-oh en inglés)

En cuanto al relato te gané de mano ;-) hice uno a fines de 2007 sobre el experto de apellido Porro, junto al soft Memeo y el O.G.T.

Casting de Nombres en la industria IT
http://nerdgaucho.blogspot.com/2007/09/casting-de-nombres-en-la-industria-ti.html

FC

wornaki dijo...

Como dice un cierto álter ego de un gnusero de la primera época, "ya van para 500 lenguajes de programación que no manejo".
Los nombres últimamente tienen cada vez más un tono jocoso, por lo que se ve. O quizás lo hacen sólo para llamar la atención. En cualquier caso, da para flor de conversación de sobremesa.
Ah, y no me hablen de C, Java, C# y todas las cosas surgidas de ese tronco común. No hay belleza en esos códigos, hay quichicientos memory leaks, punteros que quedan flotando en la conchinchina y máquinas virtuales menos optimizadas que firefox 3 en un pentium I.
Si, está bien, tienen cierto rendimiento los lenguajes basados en C, incluyendo el vala éste, pero desafío a la gente a seguir programando GUIs en estos lenguajes. La verdad es que hay que ser masoca para insistir con C a toda costa o con Java y su máquina de morfar recursos. De Perl no quiero ni hablar, es un lenguaje encriptado, se escribe y no se lee más, la piedra de rosetta es un poroto al lado de semejante engendro.
En fin, que siga el baile. Total, es probable que si Vala tiene popularidad en cualquier momento se vean anuncios como el que sigue:

"Se busca programador senior para trabajo en importante empresa del sector. Se requiere conocimientos de bases de datos relacionales, optimización y lenguaje vala. Conocimientos en Java Fx altamente valorados."

Surito dijo...

¿Comparando posiciones de memoria? ¿No estará crackeando algo Ud. no?
Un saludo.

Lic. Baleno dijo...

En una epoca hasta yo hice un programita en Clipper... cuando ya lo tenia cocinado empezo el Visual Basic... y ahi tire la toalla... si habre gastado plata en manuales de visual... todo era de 50 dolares para arriba...

Fernando Cassia dijo...

Así me gusta están empezando a aparecer los nerds!. Gracias Lic. Baleno!

FC

Fernando Cassia dijo...

Surito: soy agnóstico, pero eso no me impide decir ***Dios Bendiga la instruccion "NOP"***(NO OPERATOR)... que no hace nada y sirve para rellenar bytes... por ejemplo para hacer que un salto condicional no salte. :)

En las Commodore 64 todo se hacía con PEEK y POKES o desde assembler mirando registros y modificandolos de los chips de video.

Por ejemplo, para cambiar el color de fondo hacias POKE 53280,0 es decir la posicion de memoria 53280 (decimal, en hexa es $D020) contenia 1 byte que le indicaba al chip de video el color de fondo de la pantalla.

Hoy en dia en una PC ningun programa tiene acceso directo al chip de la placa de video, hay que pasar por Microsoft DirectXp*ronga.
Pero bueno todo sea por la ¨compatibilidad¨ y la ¨estandarizacion¨. El precio del progreso... Eso si después termina todo en engendros como Vista o Windows 7 que necesitan 1 giga de memoria ram... :)

FC

eduardo dijo...

Maestro: Perdón por lo de COBOL. Las lágrimas de la emoción por el post me impdieron ver que lo mencionaba.
Por caualidad, el CLIPPER no estaba escrito en C?

Fernando Cassia dijo...

Eduardo: ni siquera instale Clipper una vez... así que ni idea pero supongo que sí.

La mayoría de los compiladores están escritos en C por una cuestión de performance.

Aparte muchos lenguajes (ej: Visual Basic) requieren un runtime que está escrito en C y es lo que les da la buena performance.

De todas formas hay compiladores nativos de Basic que generan código nativo (ejecutables) que no requieren runtime. Ej: Powerbasic.

Otros generan pseudocódigo que si bien tienen una extensión EXE necesitan de las DLLs/librerías del "runtime" porque sino no funcionan.

....no hay caso, soy un dinosaurio...
FC

Fernando Cassia dijo...

"Ah, y no me hablen de C, Java, C# y todas las cosas surgidas de ese tronco común."

Eh? Lo que? C y Java tronco común que?? :-)

Un manto de piedad a la derecha... :)


"No hay belleza en esos códigos, hay quichicientos memory leaks, punteros que quedan flotando en la conchinchina y máquinas virtuales menos optimizadas que firefox 3 en un pentium I."

Bueh, estamos en la pavada. El mito de "Java se come los recursos" tenia razón en las Pentium 1 de 133Mhz con 64MB de ram (lo sé porque tuve una y corría OS/2 Warp 4.0 con Java 1.0.2.

Hoy en día, con CPUs de 1Ghz+ y entre 512MB y 1GB de RAM ese mito ya no existe.

"De Perl no quiero ni hablar, es un lenguaje encriptado, se escribe y no se lee más, la piedra de rosetta es un poroto al lado de semejante engendro."

TOTALMENTE DE ACUERDO.

"Si, está bien, tienen cierto rendimiento los lenguajes basados en C, incluyendo el vala éste, pero desafío a la gente a seguir programando GUIs en estos lenguajes."

Con Java es facilisimo hacer interfaces gráficas (GUIs) usando Netbeans.

"La verdad es que hay que ser masoca para insistir con C a toda costa o con Java y su máquina de morfar recursos."

Repito lo anterior. Punto-Not, digo, .Net es muchisimo mas pesada que Java y limitada (Microsoft predeciblemente solo soporta Windows) (51MB!) y no veo a la gente rasgandose las vestiduras... la unica razón por la que Microsoft se puede seguir saliendo con la suya es porque:

a) Son los dueños del sistema operativo
b) Tienen un monopolio, y donde no abusan de su posición dominante
c) Meten el runtime de .Net en las nuevas versiones de Windows (Vista y Win7).

DESEARIA que todas las aplicaciones fueran Java y bien programadas (una buena aplicacion java se distribuye como un archivo .JAR, que se ejecuta al hacer doble click (al menos en Windows) o "java -jar appname.jar" en cualquier otra.

Un ejemplo de una aplicacion Java bien hecha es el programa Peer2Peer "Azureus" o el viejo y querido PhotoMesa for Java (antes de que se los comprara Microsoft e hicieran una version .Net), el Java Image Editor -una especie de Paint Shop Pro basico para editar bitmaps, o el jEdit.

ahhh listo, creo que ya cumpli con la cuota anual de publicidad de Java. (CHISTE! :).

Es lo malo de ser creyente en las cosas... no paga... a ver muchachos de Sun un banner de publicidad por aca... GRRR. ;)

FC
PD: Si van a usar alguno de los softs mencionados arriba asegurense de tener la ultima version de Java instalada (al momento de escribir esto es Java 6 Update 12), que se consigue en Java.com

PD2: tengo un sintonizador de radio y player de MP3 en red que usa Linux embebido y tiene Java preinstalado. Quise ponerle un server FTP para que corra en la maquinola (para poder subir y bajar archivos y toquetear el soft interno) y era un parto... CPU RISC, compilar cualquier cosa para esa plataforma era un parto...

En un momento digo "momento! esto tene Java!, tengo que buscar un ftp server escrito en java y listo, no tengo que compilar nada!".

Y lo encontré. UNA BELLEEEZA! 41 kbytes y tenes un server ftp multi-plataforma, cuyo "ejecutable" .jar anda desde Linux hasta Windows pasando por MacOS-X, una PDA o cualquier sistema embebido que tenga Java.

Trata de hacer eso en CUALQUIER otro lenguaje... JA!

[A los lectores de este blog que visitan por su contenido politico, mis mas sinceras disculpas, en breve regresaremos a nuestra programación habitual]

Fernando Cassia dijo...

PD3: De todas formas entiendo tu punto Wornaki... y para ciertas cosas ni Java ni hasta siquiera Basic se justifican.

Por eso para algunos scripts de instalacion, cosas que necesiten una interfaz grafica simple y por sobre todas las cosas hacer el programa RAPIDO no hay mejor que un script Bash y la interfaz gráfica con ZENITY

Lo mejor de zenity es que viene pre-instalado en la mayoria de las distros "modernas" (por lo menos Fedora y supongo que Ubuntu también).

La desventaja? no se pueden hacer scripts Bash con Zenity para Windows... :-)

Bueno hoy estoy muy nerd me voy a caminar al parque a ver si se me pasa...

FC

wornaki dijo...

Me alegra que entienda al menos el espíritu de mi mensaje en referencia a JAVA. La implementación de JAVA, a mi juicio, todavía deja mucho que desear, aunque la idea no es mala (la portabilidad de la jvm suma). Igual, no me convence para nada. Considero que es un engendro que añade capas y capas en vez de ofrecer una solución más coherente para las GUIs como es el caso de WxWidgets para PCs, por dar un ejemplo. En fin, no le resto utilidad, pero no es lo mío; demasiado mastodonte.

PD: Siempre es bueno tener un post nerd en un blog "político". En la variedad está el gusto.

Fernando Cassia dijo...

wornaki: wxwidgets (yo lo conocia cuando el proyecto se llamaba wxwindows :) esta bien, es un toolkit grafico para hacer la misma aplicacion con el mismo look and feel y poder compilar esa aplicacion en el sistema operativo que querramos (siempre y cuando hayan portado wxwidgets al sistema operativo x).

Pero eso es ver la cosa desde el punto de vista del programador.

POR SUPUESTO que si es MI CODIGO y tengo todo el codigo fuente (porque es mio :) uso wxwidgets y listo.

Ahora que pasa si:

a) Mi aplicacion usa soft de terceros
b) Lo miramos no del lado del programador sino del USUARIO.

La idea de Java es que el usuario pueda el elegir el S.O. que se le cante (siempre que tenga Java, pero ahora que Java es Software Libre (GNU GPL) eso ya no es problema).

Lo que me jode del approach de "compilar para windows, compilar para Mac, compilar para Linux, compilar para Unix x, compilar para PDA y" es que ES UNA PERDIDA ENORME DE TIEMPO.

En muchas plataformas hay que "reinventar la rueda" y terminan haciendo de nuevo la aplicacion.

Ejemplos? Miles: Google Earth (tardaron mas de un año en hacer la versión Linux, la tuvieron que reescribir de cero).

Otra: hace una aplicacion como PICASA para Windows. Los usuarios reclaman una version Linux. Entonces que hacen? Reempaquetan la version Windows con WINE... claro, como la version windows usa un monton de DLLs para grabar CDs, llamar a Internet Explorer etc y todas esas cosas no estan en Linux queda una aplicacion RENGA que ANDA LENTO y se ve como un alienigena en Linux.

http://www.theinquirer.net/inquirer/review/762/1033762/picasa-for-linux-is-a-good-windows-application

Cuando si hubieran hecho DESDE EL INCIO una aplicacion en Java, la escriben bien una vez, y listo, instantaneamente anda en Mac, Linux, Windows...

Hoy en día usando APIs como JDIC (Java Desktop Integration components)
http://javadesktop.org/jdic/presentations/BOF-9871_JDIC_JavaOne05.pdf

...vos podes decir "llamar al browser con este URL" y el JDIC llamara al IE en Windows, o al browser que este configurado como browser en Linux, o en Mac OS-X.

Lo mismo con la impresión desde aplicaciones Java, otra area que antes era problematica.

Hasta podes hacer que la aplicacion se minimize a un iconito en el systray en Windows, o en la barra de Gnome si corre en Linux, o en la barra esa de MacOS-X que no se como se llama ni me interesa. ;)

Fijate el FTP server en Java de 40k que linkie arriba, o el Photomesa en un folder lleno de JPGs...

Si tenes desconfianza desenchufa la maquina de la red. Juro que no es un troyano que te manda los datos a un servidor fantasma en Ukrania...

Sun tenia un Instant Messenger en Java, con encripcion de los datos, una maravilla... no le pusieron la plata suficiente ni el marketing push necesario... hoy podria ser el "MSN pero seguro" de Google.

Desgraciadamente Google tiene una postura muy anti-Java (lo unico que hicieron en Java es el Google Video Uploader para plataformas no-windows), con su dogma de AJAX... todo en Javascript y HTML

Odio Javascript.

"Javascript is not JAVA." :)

Veremos si con JavaFX se hace mas facil aun meterse a programar.

Veremos dijo el ciego. Cuando se invente el dia de 48 horas me avisan si...

FC

Eduardo Real dijo...

Cagamos... se le humedecieron los SIMM a Cassia y empezó a chispotear bytes para todos lados...

Pero estaba viendo que alguien mencionó prolog! Coño! Si habré perdido el tiempo haciendo los programejos de ejemplo para que prolog me dedujera que el hijo del hijo se llama nieto!

Las épocas de la Inteligencia Artificial... y yo que pensaba que con éso podía suplantar la ausencia (mía) de inteligencia natural.

De vez en cuando aún me mando algún programejo o codiguito en Clipper 5.2 y/o en Pov-Ray. Command line.

ayjblog dijo...

me tome el tiempo de leer todo, ya que al fin este es un post casi solo para nerds
se me humedecio la boca leyendo PEEK y POKE
solo faltaron dos cosas para ser completo
a) los PEEK y POKE para escribir en interfaces serie y comunicar al mundo real lo que sale de la maquina
b) y esto lo que mas demuestra mi edad, usar los nop para sincronizar timings y generar demoras contando ciclos de maquina, je, yo programe en 8080 y 6800 y ud?

PS tb en fortran y encima estudie con un librito de fortran 2, casi califico para el titulo patriarca, por la edad

Fernando Cassia dijo...

Sigo aprendiendo todos los dias...

IBM con su "Project Zero" que es ni mas ni menos que PHP en Java...

http://www.projectzero.org/

Ay! ;)

FC

Fernando Cassia dijo...

Para el "casting de nombres" de la industria informatica llega un software imprescindible... VINAGRE

http://projects.gnome.org/vinagre/

FC