Wednesday, November 21, 2007

Otro lenguaje mas???

Generalmente cuando entramos en el mundo del desarrollo, pues siempre empezamos por lo mas facil. Claro, al igual que todo en la vida, siempre tenemos que empezar por aquellas cosas que representan menor reto para que asi sean faciles de recordar, y despues, ir avanzando en la dificultad y en la profundidad de ese conocimiento.

Eso dice la teoria.

Pero almenos en el desarrollo, eso se da no muchas veces.

Negarlo seria enganarnos, pero la verdad es que la mayoria empezamos a programar con BASIC.  Y no es tan malo. Digo, es el lenguaje que ensenan principalmente en todas las instituciones de educacion donde se pretenda ensenar programacion…
Y despues de aprender el bonito y sencillo mundo de basic con sus if…then…else…end if, o sus loop… end loop y su super majestuoso on error, lo que sigue es pasar a algo mas avanzado. Algo que tenga que ver con puntos y comas.

Y ahi hay de dos sopas: delphi o c/c++.

Y ahi aprendemos lo que vendria siendo un lenguaje orientado a objetos de caracter general, estructurado y toda la cosa.

Pero el problema es que muchos se quedan ahi. No deciden avanzar y aprender lenguajes o cosas nuevas. Creemos que programar es solo saberse la sintaxis y las estructuras basicas y que con eso podremos desarrollar las aplicaciones que revolucionaran al mundo… pero no es asi…

Necesitamos conocer la raiz del lenguaje: Su porque, su forma de ejecutarse, su razon de ser. Debemos conocer porque fue creado y que problemas me ayudara a resolver. 

Entonces, basado en lo anterior y repasando los lenguajes que hemos aprendido a lo largo de nuestra vida de estudiantes:

BASIC: Fue desarrollado para estudiantes. i.e.: para aprender a programar. su sintaxis lo mas parecido al lenguaje llano y con estructuras sencillas para que el codificar sea casi como leer un libro.

Delphi: Orientado a datos. Basado en pascal (un deribado de C) con orientacion a objetos. Visual.

C: Un lenguaje minimalista, de mediano nivel, multiproposito y multiplataforma. Hecho de desarrolladores para desarrolladores.

C++ : Version actualizada de C (de hecho lo de ++ (plus plus para los doctos) es un chiste local acerca del nombre) que envuelve multiples paradigmas (la razon de ser del lenguaje): Orientacion a objetos, estructurado y generico.

Que conclusion sacamos de esto? No podemos resolver todos los problemas con un simple lenguaje… hay casos donde hacer una solucion se vuelve un problema, y uno muy grave. Se invierte mas en buscar la maneja de adecuar o adaptar el lenguaje al problema; Es como querer usar un bochito para transportar piedras! e intentar acondicionar el bocho para solucionar ese problema!!

Porque no entonces, elegir otro lenguaje?

Aqui nuestro obstinado y engreido desarrollador interno va a chistar, pues si algo nos duele es aprender un lenguaje nuevo: Para que si ya conosco uno??? (aunque siempre pregonamos en nuestros curriculums: Capacidad de aprender cualquier lenguaje rapidamente…) porque mejor no invertimos ese tiempo en aprender como convertir el bocho en un camion de carga en miniatura y damos muchas vueltas para acarrear esas piedras???…

Es aqui donde debemos sentarnos y pensar mas alla de la sintaxis. Donde debemos profundizar en la historia del lenguaje y averiguar que estaba pensando el disenador al momento de hacerlo. Que queria solucionar (y si realmente lo logro, pero esa es otra historia) y como lo logro.

Todo esto porque recientemente llego a mi un nuevo lenguaje. Yo tengo desarrollando en c# de manera profesional por casi 4 anios. Se me hace un lenguaje muy poderoso montado sobre una infraestructura igual de poderosa. Con multiples capacidades y una adaptabilidad y una flexibilidad que ya quisieran muchos lenguajes.

Pero en el momento que supe lo que era F# (desde el nombre me gusto: F, de functional) y hacia donde estaba encaminado, llamo mucho mi atencion.

F# es el nuevo lenguaje desarrollado sobre el .Net Framework con el cual se pretende abarcar areas que C# dejo fuera (como el paradigma de lenguaje funcional) y ofreciendo el mismo performance y poder de procesamiento. Ademas de que presta una sintaxis poderosa, flexible, elegante y sobre todo: 100% compatible con el .Net Framework!!

Creo que es un nuevo reto que iremos descubriendo en post subsecuentes.
Stay Tuned!

Posted by JLuis.Estrada at 05:53:53
Comments

Leave a Reply