new home
de ahi podremos trabajar mucho mejor.
gracias por su visita, los espero alla!
jluis;
Este 27 de septiembre me toco formar parte (otra vez) del tour tecnologico de microsoft. Esta vez participe dando la conferencia acerca de las nuevas tecnologias de microsoft sobre Mobile y Visual Studio 2008...
La verdad este tipo de post no me gustan porque en todos lados muchos escriben asi... que podemos decir que sea diferente???
Ha que para empezar la verdad es que el conjunto de herramientas es mucho muy bueno, trae tecnologias que la verdad ya hacia falta mejorar de tiempo atras. Ademas incursionan las pruebas unitarias por fin en el desarrollo de dispositivos moviles. A su vez, por fin el emulador permite guardar configuraciones decentes y crear imagenes de ellas. tambien ya podemos configurar la bateria!!!!
Otra cosa que les quedo bastante bien es el manejo de los SMS, la red GPRS y las llamadas!! ya podemos emular una pequena terminal!!!
La verdad y para serle sinceros a todos, no soy muy adepto a tomar una tecnologia nueva recien sale... siempre es preferible dejar una etapa de estabilizacion en el mercado. Ver que la demas gente se queje de los bug y que ya para cuando salga el SP1, entonces si podamos adoptarlo...
Pero regresando al Tour.... fuera del relajo de la falta de material y de que solo me comi una bolsita de chetos, la verdad las conferencias estubieron muy bien. como siempre, Gabo expuso exelso. A su vez, el Remy, Morgan y dn Salvador hicieron su bienvenida en el mundo de las conferencias. Empezaron muy bien!!!!
Y gracias a Roman por el apoyo y por las maquinas virtuales jejeje
Proximamente habra mas platicas en la comunidad .Net Microsoft de Aguascalientes, entre ellas esta pendiente una de XNA... espero que me salga como tengo esperado!
jLuis;
PS: Tengo que pensar como escribir mi firma en F# :D
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!
Esa es una pregunta que me hé hecho muchas veces.
Y lo mas probable es que encuentre muchas respuestas en ella: Porque me gusta, porque me dá de comer, porque ademas es un hobby... Pero pues definitivamente no creo que sean respuestas adecuadas.
Todo eso se remonta al hecho de que yo tengo contacto con computadoras desde niño. Tendria alrededor de 9 años cuando mi papa compro su primera printaform con disco de 5 1/4 de baja densidad, 300 mhz de procesador 80x186 (si saben lo que significa eso??) y muchos discos con programas y juegos. Recuerdo que entre ellos estaba el Lotus 1-2-3 (Precursor de Excel), Wordstar (precursor de Word) y pues todas las maravillas que se podian hacer con MS-DOS. Poco despues se cambio esa maquina por una Lanix con disco duro, Windows 3.11, Paintbrush!!!, Mouse y monitor Policromatico a Escala de grises. Recuerdo que este ya traia floppy de 3 1/2. En esta maquina descubri que me gustaria ser capas de hacer aquello que todos quisimos en un momento dado: Hacer nuestros propios juegos.
Recuerdo que entre a cursos de computación y entre ellos, tube una muy leve introduccion a QBasic, la verdad no recuerdo que tanto aprendi de esa vez, pero hasta entrada la preparatoria volvi a retomarlo y esta vez fue muy natural, pues ya lo conocia. Programar ahi se me hizo algo mucho muy sencillo. A mi no me costaba nada Esquematizar los pensamientos y transformar los problemas en una serie de pasos logicos y formar un algoritmo para de ahi plasmarlo en codigo en ingles. El paso por Pascal fue mas brusco (se me hacia un lenguaje muy feo -y todavia lo es) y ya en la universidad descibri C.
Pero aqui sucede algo muy curioso, pues yo entre a estudiar la Ingenieria en Electronica cuando lo mas logico era estudias Sistemas Computacionales. Pero yo lo vi desde otro punto de vista: La programación se me facilitaba, y Sistemas solo me enseñaria a trabajar con SW, pero que mejor que poder trabajar con SW y HW, pues como sabemos, el SW es una implicacion lógica del HW, y pues ahi conoci cosas de la programacion que no aprenderia jamas en Sistemas.
Pero bueno, ya dibague del tema, el meollo era encontrar la razón de la cual programamos. Como mencione, todos empezamos queriendo hacer juegos para la computadora, y ese se convierte en la razon de dedicarse a este noble oficio. Otros, descubrieron que el trabajo con las computadoras no necesitaba interacción con otros seres humanos y que por lo tanto no tendrias que quedar bien con otras personas, ni siquiera con la computadora. Y algunos otros -entre los que me encuentro yo- estamos en esto por la capacidad de aprender cosas nuevas.
No se han puesto a pensar, que el programador -o desarrollador, que se me hace mas adecuado- no solo sabe codificar, si no que ademas, termina aprendiendo Contabilidad, Administracion, Procesos, Matematicas y mil y un cosas que necesitan ser plasmadas en una aplicacion. Un buen desarrollador se mete dentro de su aplicacion, entiende el contexto en el cual se esta desenvolviendo en ese momento; para que llegado la hora de plasmarlo en codigo, sepamos exactamente lo que se esta haciendo. Y todo ese involucrarse en el dominio del problema, es aprender. Yo he tenido la suerte de aprender de muchas cosas gracias a ello: He aprendido de oftalmologia, de contabilidad, de GPS y transporte publico, de manejo de procesos gubernamentales, de importaciones temporales y leyes arancelarias, en fin. Este oficio me ha dado la capacidad de cada dia aprender algo nuevo, y no necesariamente de cosas relacionadas a las IT.
A si que, tu porque programas???
Que no es lo mismo que la Xtreme Programming.
Esta es la capacidad del desarrollador para trabajar 24 horas seguidas, y producir sus mejores codigos a las 4:00 hrs y ver sus resultados alrededor de las 6:00 hrs...
La unica desventaja es que el desarrollador se agota muy pronto...
Y no duerme nada :(
Usenla -como dice el titulo- en casos extremos.
jluis;