Lenguajes y frameworks para desarrollo web
-
Upload
antonio-ognio -
Category
Technology
-
view
4.940 -
download
0
description
Transcript of Lenguajes y frameworks para desarrollo web
¿Cuántos lenguajes y frameworks debo
conocer para desarrollar aplicaciones web?
...al menos 3:
HTML, CSS y Javascript
...pero idealmente
TODOS LOS QUE PUEDAS
...al principio de los tiempos
EN LOS AÑOS 90's
Principales aportes:
● CGI al alcance de las masas● Navaja suiza para procesar texto● Scripts para gestionar infraestructura● CPAN, enorme librería de módulos
Principales aportes:
● Muy baja barrera de entrada● Ha hecho posible un gran número de sitios web● Disponible en casi todas las plataformas● Rendimiento aceptable en general● Gran cantidad de proyectos opensource
...en plena burbuja de Internet
ALREDEDOR DEL 2000
Principales aportes:
● Una plataforma unificada: JVM independiente el HW y el sistema operativo● Herramientas de corte corporativo con enfoque en la escabalabilidad y la mantenibilidad de la infraestructura ● Gran laboratorio de frameworks usando distintos patrones de diseño● Gran ecosistema de productos y herramientas tanto comerciales como opensource
Principales aportes:
● Hizo popular el uso de web services (SOAP)● Simplificó la librería de clases de un framework corporativo significativamente● Popularizó el concepto de poder usar distintos lenguajes y librerías de clase sobre una sola máquina virtual● Pionero en soportar lenguajes dinámicos y lenguajes funcionales a nivel de la máquina virtual
...un poco después
ALREDEDOR DEL 2005
Principales aportes:
● Demostró que se puede tener alta productividad escribiendo poco código y conservando la cordura● Demostró que el código de las aplicaciones web puede ser fácil de leer y mantener ● Revalorizó y popularizó el concepto de DSL o lenguajes de dominio específico● Posiblemente la herramienta más integrada con la corriente “Web 2.0” a todo nivel● Ayudó a popularizar temas como testing, control de código, RESTful webservices, etc
Principales aportes:
● Popularizó el concepto de “aplicaciones reutilizables” fáciles de “enchufar” en cualquier proyecto● Alternativa a Ruby/Rails para los que prefieren un enfoque de programación dinámica pero menos “magia”● Ayudó a popularizar el uso de Python en aplicaciones web ya que anteriormente el espacio estaba demasiado fraccionado
...en la actualidad
DESDE EL 2008 EN ADELANTE
Principales aportes:
● Está ayudando a popularizar la programación de servicios de red orientados a eventos● Un solo lenguaje de programación en el lado del cliente y del servidor● No solo web: también correo, DNS, proxy, balanceo de carga, protocolos a la medida● Construcción de componentes de red especializados hechos a la medida de la aplicación
Compojure
Principales aportes:
● Lenguajes diseñados para escalar hacia arriba y hacia abajo sobre plataformas populares: JVM y CLR● Excelente rendimiento ahora que las máquinas virtuales tiene casi 20 años de optimizaciones● Permiten capitalizar herramientas del presente (OOP) e ir construyendo herramientas del futuro (Programación Funcional)● Diseñados para facilitar enormemente el diseño e implementación de aplicaciones distribuídas que saquen provecho del procesamiento paralelo
¿Porqué no seguircon PHP ó Java?
¿Porqué no seguir con PHP ó Java?
● Ambos son lenguajes menos expresivos que otras alternativas como Python, Ruby ó Scala● Contienen un gran número de pequeños errores de diseño e implementación que se van sumando● La cantidad y la calidad de las librerías modernas y bien mantenidos para ambos lenguajes ha venido decayendo en los últimos años● El mercado de programadores de ambos lenguajes lamentablemente está plagado de gente con poca experiencia o que no está dispuesta a estar actualizando conocimientos permanentemente
..no solo frameworks
HERRAMIENTAS INDISPENSABLES
Principales aportes:
● Control del código fuente de las aplicaciones y de la infraestructura● Servicios de almacenamiento de datos no-relacionales y altamente escalables● Integración contínua para la detección temprana y automática de fallos● Gestión de la infraestructura virtual como si se tratara de software (Chef)● Procesamiento de enormes volúmenes de datos
Gracias!
Antonio [email protected]