¿Cuál es la última tecnología en software?

Aprende y usa un lenguaje de script moderno

Puede ser Ruby, Python, Groovy o TheNextBigShot, en realidad no importa. Lo que importa es tener una herramienta rápida y fácil para todo lo que tenga a mano para que no tengamos que encender nuestro IDE de Java para un script simple. Además (la mayoría de) estos lenguajes fomentan buenas prácticas y métodos, cambiando nuestra actitud hacia la programación y el diseño del programa. Adoptar estas soluciones “¡guau, mira qué elegante y simple es eso!” También se convierten en expectativas con el tiempo (porque nos acostumbraremos a la facilidad y conveniencia), por lo tanto, nos esforzaremos por la elegancia y la calidad, ayudando a mejorar todos nuestros esfuerzos. diseños y códigos.

Aprenda a fondo y abrace la filosofía de un sistema moderno de control de versiones

Ya sea Git o Mercurial, pero comienza a usarlos. Ahora mismo. Abrace el cambio de paradigma que dio origen a estas herramientas. Si no está en el trabajo, pruebe cualquiera de estos en un proyecto personal. Estas herramientas se ajustan mejor a un ciclo natural de desarrollo que nuestras herramientas antiguas svn o cvs. Ser distribuido no significa que no se puedan usar como una solución de repositorio central de la compañía. Ambos fomentan el concepto de ramificación local barata, manteniéndote seguro al poder revertir en cualquier momento (como VCS tradicionales) y también manteniendo el repositorio principal central limpio de detalles esenciales.

Familiarícese con las soluciones NoSQL como MongoDB, CouchDB.

Estas bestias pueden ser un verdadero salvavidas cuando las bases de datos relacionales tradicionales alcanzan sus límites en escala y rendimiento. Tanto MongoDB como CouchDB son lo que se llama una ‘base de datos orientada a documentos’, lo que significa que, en lugar de esquemas rígidos, se tiene en cuenta la estructura de cada fila: ni siquiera tienen que tener los mismos campos, etc. El concepto de ‘fila ‘se convierte en el concepto de’ documento ‘. Las estructuras de datos tipo JSON, las consultas dinámicas, el almacenamiento eficiente de datos binarios (como videos, imágenes), el soporte de mapreduce explican sus casos de uso robustos y fáciles.

Aprenda un lenguaje funcional, o más de uno.

Se trata del cambio de paradigma y la filosofía nuevamente. Cuantas más cosas vea y use, más completo será su repertorio. El diseño orientado a objetos / imperativo no es el único que existe. Echa un vistazo a Erlang para empezar, es fácil de aprender y con él puedes sumergir tu dedo del pie en el agua, pero para cosas más serias, Haskell u OCamlis son imprescindibles (aunque voto por Haskell). Yo diría que aprender un lenguaje funcional ya no es una opción, es una necesidad. Algunos problemas pueden resolverse de una manera increíblemente fácil con un enfoque funcional y, por ejemplo, Haskell puede implementar fácilmente cualquier definición matemática o problema que tenga que describir en cualquier lenguaje imperativo. También GHC (The Glasgow Haskell Compiler) es un compilador de optimización de última generación, uno de los mejores compiladores disponibles ahora. Por supuesto, Haskell no es solo para científicos, muchas buenas bibliotecas están saliendo escritas en haskell. También vea Haskell del mundo real para una buena introducción. Erlang es bien conocido por su tolerancia a fallas, paradigmas de concurrencia, código intercambiable en caliente y soporte de red excepcional. Tener una herramienta a mano es siempre una ventaja.

Estudiar métodos y conceptos ágiles.

La gestión ágil no es solo para gerentes. Es necesario que todo el equipo comprenda bien su propio proceso de desarrollo y gestión. Agile ayuda a estandarizar la gestión y el trabajo diario del programador, imponiendo un ciclo de desarrollo / liberación / prueba pequeño y controlable y también fomentando una buena comunicación en todo el equipo (¡en realidad ágil no puede funcionar sin una buena comunicación!). Solo mira el manifiesto ágil. Algunos derivados importantes y partes de métodos ágiles:

  • TDD – Desarrollo guiado por pruebas
  • Desarrollo basado en iteraciones: entregue menos pero con mayor frecuencia en ráfagas cortas bien definidas
  • BDD – Desarrollo impulsado por el comportamiento
  • XP – Programación extrema
  • CI – Integración continua
  • Melé

Al igual que InfoWorld, los Premios a la Tecnología del Año de InfoWorld siempre han tenido que ver con el cambio. Estamos atentos a las plataformas y herramientas que superan las barreras en el desarrollo de aplicaciones, dispositivos móviles, computación en la nube y en otros rincones de la tecnología de la información, y las presentamos para su revisión. Al final del año, nos reunimos y decidimos cuáles son los mejores.

El Dell PowerEdge R730xd, reúne tanta memoria flash, disco y elegancia, es una plataforma ideal para soluciones de almacenamiento definidas por software, como la notable SAN virtual de VMware (también un ganador). El R730xd muestra que la innovación aún vive en servidores 2U de dos sockets. Es fascinante lo que algunos vendedores pueden hacer con las piezas de productos básicos. La magia, por supuesto, está en el software. En Tintri VMstore, por ejemplo, el sistema operativo Tintri utiliza deduplicación en línea, compresión y otros trucos para convertir una parte de flash MLC y 10 partes de disco SATA en algo similar a una matriz totalmente flash para máquinas virtuales. El flash ultrarrápido ofrece el IO, mientras que el disco proporciona la capacidad.

La gestión ágil no es solo para gerentes. Hay un requisito para que todo el equipo tenga una comprensión decente sobre su propio proceso de avance y gestión. Agile institucionaliza la gestión y el trabajo diario del programador, implementando un pequeño ciclo de prueba controlable y, además, promete una gran correspondencia en todo el equipo.

Hay muchas nuevas tecnologías que vienen día a día, actualmente las siguientes tecnologías están jugando roles clave

ERP:
SAP hana con s4
Firiori

Bigdata
Hadoop
Colmena
Cerdo
Cassandra
Esencial
Tableu