¿Cuáles son las últimas tecnologías para el desarrollo más rápido en el campo del software?

En mi opinión, cuatro tecnologías han revolucionado el desarrollo de software en la última década.

JUnit

El movimiento ágil abogó por prácticas que son contra intuitivas en el mejor de los casos y extrañas en el peor. Los más notables entre estos fueron las pruebas unitarias y el desarrollo basado en pruebas. La idea de que los desarrolladores deberían tener la disciplina para probar su código poco a poco, e incluso dejar que las pruebas impulsen su diseño, era una fantasía. Para tener alguna posibilidad de éxito, las pruebas unitarias debían ser simples y automatizadas, o los desarrolladores nunca lo harían.

Kent Beck, signatario del Manifiesto Ágil, escribió JUnit, una herramienta de prueba unitaria para Java. Era fácil de usar y pronto se integró en las herramientas de desarrollo. Para mí, lo que hizo que JUnit fuera tan popular fue su atractiva interfaz, una barra de progreso que gradualmente se ilumina en verde de izquierda a derecha a medida que pasan las pruebas, o tristemente se vuelve roja cuando una prueba falla.

Lo más importante, JUnit mejoró la calidad y, en consecuencia, otros lenguajes desarrollaron equivalentes JUnit. Las bibliotecas ahora tienen instalaciones de prueba integradas y las funciones de prueba de unidad ocupan un lugar destacado en las ofertas de trabajo. Incluso el protagonista de la comedia de HBO, Silicon Valley, realizó una serie de pruebas unitarias después de un accidente. Una vez poco ortodoxo, las pruebas unitarias ahora son una práctica estándar, y eso se debe a JUnit.

Rieles

Si bien las aplicaciones web varían ampliamente, en un nivel alto todas hacen prácticamente lo mismo: proporcionar una interfaz que permita a los desarrolladores crear, consultar, actualizar y eliminar datos; Las interacciones dictan el siguiente paso en el flujo de trabajo. Sin embargo, a pesar de todos estos aspectos comunes, una vez tomó un tiempo innecesariamente largo para ejecutar una aplicación web.

Rails cambió eso.

Si bien los marcos web heredados requerían una configuración y configuración manual, Rails utilizaba valores predeterminados inteligentes y convenciones para ofrecer una funcionalidad común de inmediato. Los rieles también provocaron una revolución en la productividad. Un desarrollador podría tener fácilmente una aplicación web básica conectada a una base de datos que se ejecuta en un día.

Lucene

Darle sentido al texto no estructurado es un problema muy difícil, pero es crítico para análisis sofisticados como el análisis de sentimientos o la recopilación de inteligencia. Lucene ha estado durante mucho tiempo en el centro de estos esfuerzos.

Escrito en Java, Lucene analiza y analiza el texto libre con profunda eficacia. Todas las capacidades comunes de búsqueda de texto que damos por sentado, por ejemplo, comodines y N-gramsearches, facetado, resaltado de texto, son parte de Lucene. De una forma u otra, Lucene se ha convertido en la herramienta de minería de texto para todos los idiomas y plataformas.

Mientras tanto, cada proyecto de análisis de texto líder se basa en Lucene. Apache Solr proporciona una interfaz web para análisis de texto con agrupamiento, búsqueda geoespacial y muchas otras capacidades. Elasticsearch extiende Lucene a entornos distribuidos. Con el análisis de texto tan crítico para tantas misiones, incluso si se usa algo como Solr o Elasticsearch que Lucene, la influencia de Lucene no puede ser exagerada.

Node.js

La difusión de más datos a más usuarios conectados de más maneras exige un cambio en la forma en que se diseñan las aplicaciones web. El viejo paradigma de aprovechar más máquinas y subprocesos para compensar la necesidad de esperar a que finalicen operaciones como las lecturas de bases de datos ya no es viable. Las arquitecturas de subproceso único y controladas por eventos son más ágiles y escalables, y Node.js fue pionero en este enfoque.

Si bien pensamos en JavaScript en el navegador, Node.js opera en el servidor para realizar acciones de forma asincrónica y sin bloqueo, lo que básicamente significa que no hay que esperar. Una aplicación Node.js siempre está lista para atender nuevas solicitudes a medida que se entregan operaciones de alta latencia, como consultas de bases de datos, y se notifica a los usuarios cuando terminan para que puedan procesar los resultados. El resultado es una aplicación altamente escalable y extremadamente rápida.

Node.js fue la primera tecnología en hacer realidad las llamadas aplicaciones “reactivas” con implementaciones del mundo real en Walmart y en otros lugares, y las alternativas reactivas como Play Framework y vert.x han seguido su ejemplo.

Para toda su celebridad, la ausencia de Hadoop de mi lista puede ser decepcionante, pero creo que muy pocos tienen problemas reales de big data para que Hadoop sea tan influyente como los demás.