Llegamos a ustedes gracias a:



Reportajes y análisis

15 tendencias de programación populares y 15 que se enfrían

[18/02/2014] A los programadores les encanta burlarse del mundo de la moda, donde las tendencias pasan como la brisa. Las longitudes de la falda suben y bajan, los pigmentos van y vienen, las corbatas son más gruesas y luego adelgazan. Pero en el mundo de la tecnología, el rigor, la ciencia, las matemáticas, y la precisión se encuentran por sobre la novedad.
 
Eso no quiere decir que la programación sea una profesión carente de tendencias. La diferencia es que las tendencias de programación son impulsadas por una mayor eficiencia, una mayor personalización y la facilidad de uso. Las nuevas tecnologías que proporcionan una o más de estas características eclipsan a la generación anterior. Es una meritocracia, no una caprichocracia.
 
A continuación encontrará una lista de lo que está de moda -y lo que no está de moda- entre los programadores de hoy. No todo el mundo estará de acuerdo con lo que se encuentra en cada lista y lo que ha quedado, fuera pero eso es lo que hace que la programación sea una profesión infinitamente fascinante: el rápido cambio, el debate apasionado y las reapariciones repentinas.
De moda: Procesadores
No de moda: Stacks de numerosos lenguajes
No fue hace mucho tiempo que las personas que creaban lenguajes nuevos tenían que construir todo aquello que fuera necesario para que el código se transformara en los bits que iban a parar al procesador. Luego alguien descubrió que podían aprovechar los trabajos anteriores. Ahora las personas simplemente escriben un preprocesador que traduce el código nuevo en algo antiguo con un amplio conjunto de bibliotecas y APIs.
 
La gente que amaba el tipeo dinámico creó Groovy, una versión más simple de Java, sin la excesiva puntuación. Los que querían arreglar JavaScript crearon CoffeeScript, un pre-procesador que les permite codificar, de nuevo, sin la fastidiosa puntuación. Parece que hay docenas de lenguajes como Scala o Clojure que se ejecutan en la JVM, pero solo hay una JVM. ¿Por qué reinventar la rueda?
De moda: frameworks de JavaScript MV
No de moda: los archivos JavaScript
Hace mucho tiempo, todos aprendieron a escribir JavaScript con lo cual podían hacer que aparezca un cuadro de alerta, o comprobar que la dirección de correo electrónico realmente contiene un signo @. Ahora las aplicaciones HTML AJAX son tan sofisticadas que son pocas las personas que comienzan de cero. Además, para implementar la lógica empresarial, es más fácil adoptar un framework elaborado y escribir un poco de código que una las partes. En la actualidad, hay decenas de frameworks como Kendo, Sencha, jQuery Mobile, AngularJS, Ember, Backbone, Meteor JS, y muchos más, todos listos para manejar los eventos y contenidos para sus aplicaciones y páginas web.
 
De moda: Frameworks CSS
No de moda: CSS genéricos
Hace tiempo, añadir un poco de dinamismo a una página web significaba abrir el archivo CSS e incluir un nuevo comando como font-style: italic. Luego se guardaba el archivo y nos íbamos a comer después de una mañana de trabajo duro. Ahora las páginas web son tan sofisticadas que es imposible llenar un archivo con dichas órdenes sencillas. Un ajuste de color y todo se sale de control. Es como lo que dicen de las conspiraciones y la ecología: Todo está conectado.
Ahí es donde los frameworks CSS como SASS y sus primos Compass han encontrado una base sólida. Impulsan la codificación experta y estable ofreciendo constructos de programación como las variables reales, los bloques de anidación y los mix-ins. Puede que no parezca mucha novedad en la capa de programación, pero es un gran salto adelante para la capa de diseño.
De moda: SVG + JavaScript en Canvas
No de moda: Flash
Flash ha estado volviendo loca a la gente durante años, pero a los artistas siempre les han gustado los resultados. El suavizado rendering se ve muy bien y muchos talentosos artistas han construido una gran stack de código Flash para ofrecer transiciones y animaciones sofisticadas.
 
Ahora que la capa de JavaScript tiene la capacidad de hacer más de lo mismo, los fabricantes de navegadores y los desarrolladores se están animando a eliminar flash. Ellos ven una mejor integración con la capa DOM procedente de nuevos formatos como el SVG (Scalable Vector Graphics). El SVG y el HTML están compuestos por un enorme stack de etiquetas, y eso es a menudo más fácil de usar para los desarrolladores web. Además, existen grandes APIs que ofrecen dibujos elaborados sobre un objeto Canvas, a menudo con la ayuda de tarjetas de video. Póngalos juntos y hay pocas razones para seguir utilizando Flash.
De moda: Casi Big Data (análisis sin Hadoop)
No de moda: Big Data (con Hadoop)
A todo el mundo le gusta sentirse como el más grande del campus, y si no lo son, están buscando un campus del tamaño adecuado en el que puedan destacar. Así que no es de extrañar que cuando las palabras Big Data comenzaron a fluir entre los ejecutivos, éstos empezaron a pedir los sistemas de big data más grandes y poderosos como si estuvieran comprando un yate o un rascacielos.
 
Lo gracioso es que muchos de los problemas no son lo suficientemente grandes como para utilizar las soluciones de big data más sofisticadas. Claro, compañías como Google o Yahoo rastrean toda nuestra navegación por la web; tienen archivos de datos medidos en petabytes o yottabytes. Pero la mayoría de las empresas cuentan con conjuntos de datos que pueden caber fácilmente en la memoria RAM de una PC básica. Estoy escribiendo esto en una PC con 16GB de RAM -suficiente para un mil millones de eventos de unos cuantos bytes. En la mayoría de los algoritmos, los datos no necesitan ser leídos en la memoria porque basta el streaming desde un SSD.
 
Habrá instancias que exijan tiempos de respuesta rápidos de docenas de máquinas en una nube de Hadoop que corre en paralelo, pero muchos no tendrán ningún problema con trabajar con una sola máquina, sin las molestias que implican la coordinación o la comunicación.
De moda: Framewoks para juegos
No está de moda: Desarrollo nativo de juegos
Érase una vez que desarrollar un juego significaba la contratación de muchos desarrolladores que escribieran todo en C, desde cero. Claro que costaba muchos millones de dólares, pero se veía muy bien. Ahora, nadie puede permitirse el lujo del código personalizado. La mayoría de los desarrolladores de juegos se rindieron hace años y utilizan bibliotecas como Unity, Corona o LibGDX para construir sus sistemas. No escriben código C ni instrucciones para las bibliotecas. ¿Es una vergüenza que nuestros juegos no sean hechos a mano con orgullo, sino desarrollados utilizando el mismo motor? La mayoría de los desarrolladores se sienten aliviados de no tener que lidiar con los detalles, y de poder concentrarse en el juego, la narración, los personajes, y el arte.
 
De moda: Aplicaciones web de una sola página
No de moda: Sitios web
¿Recuerda cuando las URL iban a páginas web llenas de texto estático e imágenes? ¡Qué sencillo y evocador es poner toda la información en una red de páginas web independientes llamadas Sitio Web! Las nuevas aplicaciones web son la cara visible de grandes bases de datos llenas de contenido. Cuando la aplicación web desea información, la saca de la base de datos y la vierte en el molde local. No hay necesidad de marcar los datos con todas las cosas extras necesarias para construir una página web. La capa de datos está completamente separada de la capa de presentación y del formato. Aquí, el auge de la informática móvil es otro factor: una página web sencilla y sensible a los formatos de pantalla que funciona como una aplicación —todo lo necesario para evitar la confusión de las tiendas de aplicaciones.
De moda: Aplicaciones web móviles
No de moda: Aplicaciones móviles nativas
Digamos que tiene una gran idea para cierto contenido móvil. Podría salir corriendo y escribir versiones separadas para iOS, Android, Windows 8, y tal vez incluso BlackBerry u otro sistema. Cada uno de ellos requiere de un equipo independiente que hable un lenguaje de programación diferente. Entonces la tienda de aplicaciones de cada plataforma ejerce su propia influencia antes de que la aplicación sea entregada a los usuarios. Por otro lado, también tiene la opción de construir una aplicación HTML y ponerla en un sitio web para que se ejecute en todas las plataformas. Si hay un cambio, no tiene que volver a la tienda de aplicaciones pidiendo una revisión rápida o una corrección de errores. Ahora que la capa de HTML es cada vez más rápida y puede correr en chips más rápidos, este enfoque puede competir mejor con las aplicaciones nativas, o incluso con las aplicaciones más complicadas e interactivas.
 
De moda: Android
No de moda: iOS
¿No fue hace solo unos años que la tienda de Apple rebozaba de alegría? Los tiempos cambian. Aunque el iPhone y la iPad siguen teniendo seguidores muy incondicionales que aman su rica y sofisticada interfase de usuario, las cifras de ventas favorecen a Android cada vez más. Algunos informes incluso dicen que más del 70% de los teléfonos vendidos fueron de Android.
 
La razón puede ser muy simple: el precio. Mientras que los dispositivos iOS mantienen un precio alto, el mundo Android está inundado con mucha competencia que está produciendo tabletas por un precio que puede llegar a ser la quinta parte del precio de las anteriores. Ahorrar dinero es siempre una tentación.
 
Sin embargo, otro factor puede ser el efecto del código abierto. Todo el mundo puede competir en el mercado -y lo hacen. Hay tabletas Android grandes y pequeñas. Hay cámaras de Android e incluso refrigeradoras Android. Nadie tiene que decirle a Google: Mamá, ¿puedo? para innovar. Si tienen una idea, la desarrollarán.
 
De moda: GPU
No de moda: CPU
Cuando el software era sencillo y las instrucciones se disponían en una agradable línea, la CPU era la reina del equipo, ya que hacía todo el trabajo pesado. Ahora que los videojuegos están llenos de extensas rutinas gráficas que se pueden ejecutar en paralelo, la tarjeta de video es la que gobierna. Es fácil gastar 500, 600 o más dólares en una tarjeta de video de lujo, y algunos jugadores usan más de una. Eso es más del doble del precio de muchos equipos de escritorio básicos. Los gamers no son los únicos en fanfarronear acerca de sus tarjetas GPU. Los informáticos están convirtiendo muchas aplicaciones paralelas para que se ejecuten cientos de veces más rápido en la GPU.
 
De moda: GitHub
No de moda: Los curriculums vitae
Claro, podría aprender algo al leer una abultada lista de logros que incluyen ser vicepresidente del club de ajedrez de la secundaria. Pero leer el código de alguien es mucho más rico y constructivo. ¿Se escriben buenos comentarios? ¿Pierden demasiado tiempo rompiendo cosas en clases pequeñas que hacen poco? ¿Existe una arquitectura real con espacio para la expansión? Todas estas preguntas pueden ser respondidas con una mirada a una parte del código.
 
Esta es la razón por la que participar en proyectos de código abierto es cada vez más importante para encontrar un empleo. Compartir el código de un proyecto propietario es difícil, pero el código fuente abierto puede ir a todas partes.
De moda: El alquiler
No de moda: La compra
Cuando Amazon lanzó sus ventas de computadoras y otros aparatos electrónicos en el Viernes Negro, la compañía se olvidó de incluir ofertas llamativas de su nube. Dele tiempo. No hace mucho, las empresas han abierto sus propios centros de datos y contrataron a su propio personal para correr las computadoras que habían comprado directamente. Ahora alquilan las computadoras, el centro de datos, el personal e incluso el software por hora. Nadie quiere las molestias de ser dueño de algo. Es una buena idea, por lo menos hasta que el sitio se vuelve viral y se da cuenta que está pagando por los clics. Ahora bien, si sólo Amazon encontrara una manera de entregar la nube con drones, las tendencias convergerían.
 
De moda: Interfaces web
No de moda: Los IDE
Hace mucho tiempo, la gente utilizaba un compilador de línea de comandos. Entonces alguien lo integró con un editor y otras herramientas para crear los IDE. Pero ha llegado el momento de que el IDE quede eclipsado por las herramientas basadas en navegador que le permiten a uno editar código, a menudo de un sistema en funcionamiento. Si no le gusta cómo funciona WordPress, éste viene con un editor incorporado que le permite cambiar el código en ese mismo momento. Azure de Microsoft le permite escribir código JavaScript en su portal. Estos sistemas no ofrecen los mejores entornos de depuración y hay algo peligroso en la edición de código de producción, pero la idea camina.
De moda: Node.js
No de moda: JavaEE, Ruby on Rails, PHP
El mundo de los servidores siempre ha prosperado en el modelo de hilos que permite que el sistema operativo tenga cualquier comportamiento díscolo, ineficiente o disoluto causado por los programadores. Sin importar lo que hayan codificado, el sistema operativo podrá equilibrar el rendimiento cambiando entre los hilos.
 
Entonces llegó Node.js junto con el modelo de programación callback de JavaScript y el código corrió muy rápido, más rápido de lo que nadie esperaba a partir de un lenguaje de juguete que alguna vez fue utilizado solo para las cajas de notificación. De repente, la sobrecarga de crear nuevos hilos se hizo evidente y Node.js despegó. Los problemas surgen cuando los programadores no se comportan bien, pero la responsabilidad ha sido en gran parte buena para ellos. Cuando las limitaciones de recursos son obvias para los programadores usualmente se puede producir un código más rápido.
 
El mundo Node.js también se beneficia de ofrecer armonía entre el navegador y el servidor. El mismo código se ejecuta en ambos para hacer que los desarrolladores se muevan de una forma más fácil entre las características y la funcionalidad duplicada. Como resultado, las capas Node.js se han convertido en los stacks más de moda en Internet.
Peter Wayner, InfoWorld (EE.UU.)