Abr 28, 2015
alvaro
Comentarios desactivados en Tendencias del 2014 y 2015 (1)

Tendencias del 2014 y 2015 (1)

Movimientos en la programación Web/Móvil entre 2014 y 2015

En la actualidad estamos viendo que la velocidad y capacidad de la red crece sin aplicaciones que usen todo su potencial. La base de todas esas aplicaciones son los lenguajes de programación, siendo algunos más populares que otros, que suelen avanzar más lentamente.

La necesidad de nuevas opciones, frameworks, acceso a multimedia o aplicaciones interactivas, web o de escritorio, motivan a los profesionales a aprender nuevos lenguajes. Pese que suelen estar relacionados o tener estructuras similares, aparecen nuevos con filosofías o arquitecturas completamente diferentes.

En 2014 se observaba que los lenguajes se enfocarían más en el entorno web/móvil que en escritorio. Lo que significaba que se necesitarían nuevos lenguajes para las diferentes plataformas (tanto hardware como software).

Las ventajas del desarrollo en web benefician a los programadores al no tener que depender de las instalaciones o mantenimiento del hardware donde se van a usar, ya que los navegadores web interpretan el código independientemente (excepto Adobe Flash y sus problemas inherentes a las licencias).

Retrospectivamente vemos…

Desde el inicio de la informática se ha desplazado la carga del proceso entre los servidores y los clientes. Sistemas operativos centrales (mainframes) llevaban el proceso soportando numerosos equipos ligeros con la suficiente potencia para acceder y modificar dichos datos.

Más tarde, la facilidad para conseguir nuevos procesadores, más memoria y más almacenamiento y con la bajada de los precios, adquirimos equipos tan potentes como algunos servidores de años atrás.

El siguiente paso sería el uso de la virtualización de servidores y procesos en clústeres permitiendo una estabilidad, velocidad y potencia. Los procesos tendrían una carga continua y los clientes accederían al llamado Big Data o la nube sin muchos requerimientos a parte de la conectividad y la suficiente autonomía para mantener dichas aplicaciones.

Han aparecido nuevos lenguajes y frameworks, como Spring, Hybernate, Bootstrap, Lively Web, Go, que utilizan más sencilla y eficientemente las versiones de lenguajes de programación previos o implementan nuevos. Javascript, Html5, CSS3 permiten (sin la necesidad de applets o intérpretes de terceros) navegar con fluidez y el uso de procesos críticos.

Toda esta evolución además implica la necesidad y aparición de nuevos IDEs para implementarlos, véase Android Studio, Intellij Idea, Intel XDK, Xcode, como muchos otros.

La velocidad de dichas apariciones, la necesidad de las mismas y el uso por parte de las empresas es algo más relativo. Al igual que hay empresas que quieren usar las últimas tecnologías y usarlas como medio de promoción o publicidad, otras prefieren usar lenguajes de programación con mayor bagaje, proporcionando estabilidad y mayor conocimiento entre los profesionales.

Si analizamos algunos análisis, como el de Indiatimes.com en noviembre del 2014, vemos que el salario mejor pagado es de Ruby on Rails ($109,460), seguido por Objective C ($108,225) y Python ($100,717). Lenguajes más conocidos como Java o C++ ($94,908 y $93,502 respectivamente) sorprenden por su cuarta y quinta posición, posiblemente en relación por la ley de la oferta y la demanda, pero también en contraposición del bagaje mencionado.

Veamos las fases de aprendizaje…

Desde http://www.vikingcodeschool.com/posts/why-learning-to-code-is-so-damn-hard

Fases de aprendizaje de un lenguaje informático

Si tomamos en cuenta la dificultad de aprendizaje de un lenguaje de programación no es algo sencillo, tiene sus “capítulos” o fases para el “estudiante” difíciles de superar. Muchos profesionales apuestan por la certificación en cada uno de ellos, pese que supone un gasto adicional económico, el valor añadido merece la pena. Indican que hay cuatro fases en el aprendizaje, brevemente serían…

La llamada fase Hand Holding Honeymoon, inicial en el proceso, relaciona la confianza con la competencia. Inicialmente dicha relación puede ser perniciosa. Las guías o manuales pueden introducirte pero los retos o necesidades funcionales avanzadas son pasos necesarios para el aprendizaje, conocimiento y experiencia en dicho lenguaje. Estamos estudiando la sintaxis básica del lenguaje, la base, de una forma intensiva.

Llegamos a un pequeño punto de inflexión (Cliff of confusion) en dicho lenguaje en el que nos sentimos cada vez menos seguros mientras vamos adquiriendo nuevos conocimientos. Los pequeños inconvenientes en los primeros proyectos suponen un trabajo extra en el análisis y comprensión de nuestros errores. Es agobiante, requiere tiempo extra inesperado y un reto importante. Se podría decir que al ir viendo la cantidad de opciones y la necesidad de “especialización” requerida, tendemos a desmoralizarnos erróneamente provocando la tercera fase, Desert of Despair. Fase en la cual estaremos dando vueltas.

Hasta que llegamos al punto en que la asimilación, experiencia, feedback positivo y el cambio de nuestra actitud (incluida la auto-estima que también suele ser afectada) nos provoca un aprendizaje exponencial. Éste puede llevarnos al nivel de competencia y confianza para trabajar de forma independiente y segura (Upswing of Awesome). Los proyectos empezaran a fluir y ser estables con facilidad con una gratificación, estabilidad y mérito más que evidente.

 

 

 

Comments are closed.