miércoles, 25 de junio de 2014

Lo nuevo… es viejo

Lo nuevo… es viejo


En días pasados asistí a la conferencia DevIntersection en la cual, expertos hablaron acerca de muchas tecnologías que se están usando actualmente para el desarrollo moderno de aplicaciones, mencionando la manera en que el mercado dirige el rumbo de las tecnologías y las preferencias de las personas, y lo que debemos hacer para seguir esta tendencia.

Uno de los aspectos que se destacó es la dificultad que tenemos hoy en día para elegir el tipo de tecnología a utilizar, ya que existen muchos frameworks que nos ayudan a solucionar problemas de nuestro diario vivir, pero cada uno de ellos de formas diferentes y con resultados increíbles. Se está hablando de cómo está tomando más mercado las soluciones móviles y cómo las personas demandan más y más recursos de este tipo de sistemas.

Lo bonito de cualquier rama de la disciplina tecnológica es que el cambio es lo único seguro…

Con la mentalidad de “Mobile first” tenemos que idear sistemas que puedan correr en muchos dispositivos móviles y diferentes sistemas operativos. Esto con el fin de brindar una gran flexibilidad a los usuarios de cambiar en cualquier momento su dispositivo. Complicando un poco más la vida del programador. 

Algunas de las tecnologías nuevas que pude ver en las charlas fueron Angular, javascript, Json, signal R, Breeze, Node.js, Mongo y etc. En las charlas se explico muy bien sobre algunas característica y como se puede utilizar para solucionar problemas en nuestros trabajos. Luego de estas charlas me fui a escuchar al padre de Json (Douglas Crockford) el cual toco un tema muy interesante sobre cómo estamos trabajando sobre lo mismo desde hace más de 40 años.

El menciona que estamos trabajando con sistemas basados en C y que parece que no pretendemos salir de esto. Tenemos más de 40 años de estar trabajando con la misma metodología. Tanto sistemas operativos, como lenguajes de programación.

Recuerdo cuando yo estaba en la universidad iniciamos un curso de aplicaciones web el cual parte de las herramientas que teníamos que usar era javascript. En aquel momento no estaba tan depurado los IDEs o no teníamos tanta experiencia con javascript, no se cuál de las dos seria la razon que nuestro codigo de javascript era tan complicado de escribir. Pero javascript siempre fue complicado sin herramientas tan poderosas como las que tenemos ahora para poder escribir y testear código. En aquel momento javascript fue un lenguaje que no quería volver a ver ya que era difícil para trabajar.  

Con el Paso de los años creo que las herramientas para trabajar con Javascript fueron creciendo tanto que hoy en día es muy popular y a mucha gente le gusta. Actualmente, amo javascript y escuchando la conferencia de Douglas me di cuenta que estaba aprendiendo lo aprendido…

Él decía que alguna persona debería cambiar esto y salir con una nueva idea que rompa la forma como nos estamos moviendo y crear algún nuevo lenguaje o sistema operativo que no esté basado en c y que además de esto elimine los errores de c para poder hacerlo mejor.

Realmente yo no comparto mucho la forma de pensar de Douglas. Creo que c sigue siendo un lenguaje muy exitoso y estamos en un punto donde la tecnología está creciendo muy rápido. Es verdad que continuamos usando c pero los nuevos frameworks están abriendo muchas nuevas posibilidades. Yo creo que todas las cosas que el ser humano hace en cualquier disciplina se base en mejorar lo anterior y no cambiar todo lo que sabemos para inventar todo desde cero (tenemos excepciones).

Muchas de las charlas que asiste hablan de programación moderna, programación para moviles, etc. Basadas en frameworks en JavaScript (tenemos JavaScript desde 1995) con los que podemos programar en este nuevo mundo de tecnología.

Actualmente Javascript nos permite hacer cosas más interesantes, más lindas, más simples. Creo que todo esto se ha logrado con los años de trabajo e investigación sobre el mismo lenguaje y tratando de corregir lo que se estabamos haciendo mal para hacerlo mejor después.

En mi muy humilde opinión creo que el camino que estamos tomando está bien. Mejorando todas las cosas que se están haciendo mal y creciendo rápidamente con las cosas que si estamos haciendo bien. Impulsando la tecnología fuera de los límites que conocemos. Creo que C nos va a dar para muchos años más y debemos de aprovechar este crecimiento en todas sus etapas.

Cada uno puede juzgar y tener su propia opinión de cómo será la nueva generación de sistemas de información. Pero por el momento podemos iniciar a estudiar Javascript...

Etiquetas:

domingo, 15 de junio de 2014

Listas en Java

Listas en Java

En Java vamos a utilizar la interfaz List para poder implementar las listas. Como esta funciona de manera polimorfa la podemos crear o inicializar utilizando LinkedList o ArrayList. Existe una pequeña diferencia entre estas dos implementaciones. Esta diferencia no es a la hora de implementarla como programador. La diferencia radica en cómo funciona internamente. ArrayList está busca directamente en la lista usando el índice lo que hace que esta sea más rápida que la implementación de LinkedList que debemos recorrer nodo por nodo buscando el índice que deseamos encontrar.

Tip: Java no permite implementar listas de tipo primitiva para hacer esto debemos usar las clases wrap

La forma de implementar esto es muy sencillo.

List miLista = new ArrayList();

Primero tenemos que declarar la variable la cual se va a llamar miLista y como toda variable debe tener un tipo el cual va hacer de tipo List para indicar de qué tipo de objeto es la lista debemos de asignar este tipo dentro de <> para poder utilizar la lista e indicar cómo la queremos implementar debemos igualarla a un nuevo objeto en este caso es de tipo ArrayList también vamos a necesitar <> y finalmente paréntesis.

Un dato importante es que en las versiones más recientes de Java ya no se le tiene que asignar el tipo de objeto cuando la inicializamos sin embargo se puede indicar el tipo de objeto.

Ahora para hacer una lista de tipo LinkedList tenemos que hacer lo mismo

List miLista = new ListLinked<>();

Con cualquiera de las dos implementación de miLista vamos a usar los mismos métodos ya que esta es polimórfica por tanto posee los mismos métodos.

Con las listas vamos a tener métodos como los siguientes:
  • get(): Este método nos permite obtener un objeto de la lista usando el índice podemos ver toda la información que este objeto tiene
  • add(): Este método nos permite agregar más objetos a la lista
  • size(): Este método nos permite ver el tamaño o la cantidad de objetos que posee la lista.
Esos son algunos de los métodos más comunes de las litas.

Las listas se pueden recorrer utilizando for o cualquier otro tipo de ciclo.

Etiquetas: