Archive for the ‘Noticias del Software’ Category

Articles

Swift, aplicaciones para iPhone y iPad

In Desarrollo Software,iOS,Noticias del Software,OS X,swift on noviembre 3, 2014 por racar

wwdc14

En la conferencia anual de Desarrolladores de Apple (WWDC 2014) se anunció la llegada de Swift, un nuevo lenguaje de programación para las plataformas OS X (mac) e iOS (iphone, ipad, ipod). Más allá del entusiasmo que nos causa querer utilizar lo más novedoso de la plataforma para crear nuestras aplicaciones, ¿Por qué usar otro lenguaje de programación? ¿Por qué cambiar si con objetive-c podemos construir de antemano grandiosas aplicaciones?

El Hardware y las exigencias del mercado de apps

Cada año fabricantes de hardware como Intel y AMD salen al mercado con procesadores  más potentes. En medio de la batalla por mejorar el rendimiento, en la última década han lanzado al mercado procesadores multinúcleo capaces de realizar ejecución de instrucciones de manera simultánea, lo que se traduce en multiplicar la velocidad de ejecución de las aplicaciones. Los dispositivos móviles de última generación como el iphone y ipad, ya vienen equipados con procesadores multinúcleo que los hacen realmente rápidos.

Para obtener el máximo provecho de estos avances del hardware, el software que se ejecuta en procesadores multinúcleo debe ser construido de forma especial. Los lenguajes tradicionales como objetive-c, si bien permiten construir aplicaciones que manejen este tipo de procesadores, no son ideales para hacerlo.

Swift, un lenguaje funcional

Para suplir ese “vacío” que llega con el procesamiento en paralelo, Apple apeló a Swift como lenguaje alternativo de desarrollo. En este sentido, Swift sigue la filosofía de los lenguajes funcionales.

Pero más que un lenguaje funcional, Swift reúne varias características que lo hacen muy conveniente, a la hora de crear apps para nuestros iphone/ipad:

  • Sintaxis moderna, incorpora características que lo hacen atractivo para el programador.
  • Mantiene las características de un lenguaje orientado a objetos y añade las características de un lenguaje funcional.
  • Mejora el manejo de colecciones e inicialización de variables, asignación de valores, etc.
  • Maneja concurrencia de procesos.
  • Minimiza el código repetitivo, mejora el manejo de colecciones y funciones.
  • Es modular: permite definir funciones simples que pueden ser combinadas en varias formas.
  • Es escalable: puede ser usado en pequeños o grandes proyectos, o en proyectos multiplataforma.

Más opciones para crear iOS/OS X apps

Contar con otro lenguaje de programación en el ecosistema nos beneficia porque tenemos alternativas para construir aplicaciones. Con una herramienta más para experimentar y crear, podemos imaginar formas eficientes de hacer los programas o descubrir formas más productivas de hacerlos.

Desde el punto de vista de un cliente que contrate el desarrollo de una app o de un usuario de la misma, las ventajas no están a simple vista. Pero indudablemente se benefician directamente al contar con aplicaciones rápidas, más estables, mejor blindadas contra fallos y entregadas en menor tiempo.

Para iniciar con Swift, es necesario descargar la versión 6 de Xcode.

Nota: Este articulo fue publicado originalmente en Nubelo.

 

Referencias:

– Libro oficial de swift en itunes (gratuito)

Presentación oficial:

Anuncios

Articles

Java vive y dará la pelea.

In Desarrollo Software,Java,Noticias del Software,Rails,Software Process Improvement on noviembre 4, 2011 por racar

Duke, the Java Mascot, in the waving pose. Duk...

Image via Wikipedia

El mes que pasó, en la Java One, se dio el lanzamiento de la version 7 de java y se anunció la 8, animándome un poco a presentar el early upgrade de la recién salida versión 7, encuentro  dos cosas que me llaman la atención: que los cambios son significativos (de hecho java 8 esta proclamada como una revolución), y que dichos cambios están influenciados por el extraordinario éxito de los lenguajes dinámicos con que disponemos para programar actualmente en la plataforma. Hoy por hoy sobre la plataforma java es posible construir programas escritos en una variada gama de lenguajes funcionales y dinámicos: groovy, jruby, scala, jphyton. ¿En que momento llegaron a competirle a java en su propia VM? ¿Que causó esta disrupción? Bueno, he aquí un análisis resumido de la posible respuesta:

En el principio de los tiempos (en la JVM) solo se compilaba java…. los lenguajes de programación dinámicos, de alto nivel y orientados a objetos ya sea Python o Ruby, no tenían la influencia actual porque eran considerados “peligrosos” por el Status Quo corporativo. Debido a su característica dinámica resulta más difícil detectar bugs  y los errores se detectaban “in run time”; también son débilmente tipados y los todo poderosos IDES no pueden realizar sugerencias de autocompletado precisas y no pueden hilar eficientemente los trazos del stack de ejecución, sobretodo en las closures. Estas propiedades de los lenguajes dinámicos no permiten hacer debuggers eficientes.

Pero algo cambio:

Primera singularidad: Agile manifesto y extreme programming.  A finales de los 90’s, un grupo de revolucionarios llegó con ideas nuevas; hastiados de la burocracia corporativa que impuso la separación entre los managers/arquitectos y los “mortales” (desarrolladores), se fueron lanza en mano contra la metodología en cascada. El manifiesto ágil fue una proclama de mejores formas de construir software y trajo consigo las practicas que revolucionarían la profesión: el extreme programming. XP trajo varias practicas, entre ellas destaco dos: Test-Driven Development y Continuous integration. El primer golpe a la burocracia corporativa en torno al desarrollo de software se había dado.

Segunda singularidad: La filosofía “Getting Real” y el nacimiento de Rails. Casi 5 años después, en el 2005 aparece la máxima expresión de la metodología de desarrollo ágil de software, evitando la metodología predicativa formal esta se enfoca en crear aplicaciones útiles, innovadores (con alto valor creativo) y sencillas a partir de entregas pequeñas y continuas. Rails había nacido y trajo consigo totalmente integradas las practicas de XP y varias practicas mas: estructura robusta de testing, estructura fija de configuración sin XML, filosofía DRY o favorecer el re uso evitando las tareas repetitivas, estructura MVC y toda una serie de herramientas (ActiveRecord p. e.). Con esto, los desarrolladores se enfocan en crear la lógica del negocio y la parte creativa/innovadora de las aplicaciones. Con TDD y C.I. ya no se necesita el debugger y la fase de compilación. El segundo golpe, aun más fuerte.

La filosofía agile, va en contra del status quo corporativo y revoluciona o resiste la tendencia burocrática que favoreció los lenguajes estáticos como Java, también fomenta las practicas como TDD y continuos integration que derriban la teoría de la necesidad de un compilador y un debugger para detectar errores. Además de todo esto, añaden alta productividad al fomentar la automatización de tareas de desarrollo.

Cualquier desarrollador encuentra atractivas las ideas (y frameworks) detrás de los lenguajes dinámicos. Sin embargo Java ha respondido al cambio y después de un letargo, esta adaptándose al futuro en su versión 7 (coin) y sobretodo en la 8 (lambda). Java vive y dará la pelea!!.

Articles

La administración publica de Los Angeles apuesta al Cloud Computing

In Noticias del Software on octubre 28, 2009 por racar

Los Ángeles, la segunda ciudad más grande de los Estados Unidos, anuncio ayer que utilizara los servicios de outsoursing de Google para gestionar su sistema de correo. Esta decisión es una noticia importante para la computación en nube, y para Google (y su AppEngine) que se anota una victoria frente a sus competidores más fuertes (o por lo menos más beligerantes): Microsoft Azure Platform y Amazon Web Services (AWS), quienes no están muy contentos según la noticia.

Se esta marcando una tendencia en el negocio del software. Las compañías, o en este caso la administración pública, se benefician al reducir los costos de mantener sistemas legados internos y reducen el riesgo de obsolescencia al comprar tecnología y software. Acá esta el enlace a la noticia:

http://latimesblogs.latimes.com/technology/2009/10/city-council-votes-to-adopt-google-email-system-for-30000-city-employees.html