¿Cómo elegir el languaje y el framework de tu próxima aplicación web?

67
¿Cómo elegir el lenguaje de programación y el framework de tu próxima aplicación web? Antonio Ognio [email protected] h"p://www.bitzeppelin.com

Transcript of ¿Cómo elegir el languaje y el framework de tu próxima aplicación web?

Page 1: ¿Cómo elegir el languaje y el framework de tu próxima aplicación web?

¿Cómo elegir el lenguaje de programación y el framework de tu

próxima aplicación web? Antonio Ognio

[email protected]

h"p://www.bitzeppelin.com  

Page 2: ¿Cómo elegir el languaje y el framework de tu próxima aplicación web?

¿Qué tipo de aplicación web?

Page 3: ¿Cómo elegir el languaje y el framework de tu próxima aplicación web?

¿Qué tipo de aplicación web?

•  Concepto nuevo / innovador

•  Expectativa de vida de varios años

•  Exploración / cambio de características

•  Reto técnico / incertidumbre

Page 4: ¿Cómo elegir el languaje y el framework de tu próxima aplicación web?

ejemplo típico…

Page 5: ¿Cómo elegir el languaje y el framework de tu próxima aplicación web?

…aplicación web que es producto principal de una

startup

Page 6: ¿Cómo elegir el languaje y el framework de tu próxima aplicación web?

si quieres un blog típico listo mañana...

Page 7: ¿Cómo elegir el languaje y el framework de tu próxima aplicación web?
Page 8: ¿Cómo elegir el languaje y el framework de tu próxima aplicación web?

¿Cuáles son los criterios de selección para un lenguaje de

programación?

Page 9: ¿Cómo elegir el languaje y el framework de tu próxima aplicación web?

Criterios para elegir el lenguaje

•  Expresividad

•  Rendimiento

•  Soporte para hacer metaprogramación

•  Calidad de librerías disponibles

•  Nivel de la comunidad

Page 10: ¿Cómo elegir el languaje y el framework de tu próxima aplicación web?

¿Cuáles son los criterios de selección para un framework

web?

Page 11: ¿Cómo elegir el languaje y el framework de tu próxima aplicación web?

Criterios para elegir el framework

•  Expresividad

•  Rendimiento

•  Nivel de uso de metaprogramación

•  Calidad de componentes disponibles

•  Nivel de la comunidad

Page 12: ¿Cómo elegir el languaje y el framework de tu próxima aplicación web?

Expresividad

Page 13: ¿Cómo elegir el languaje y el framework de tu próxima aplicación web?

public  class  HelloWorld  {            public  static  void  main(String[]  args)  {                  System.out.println("Hello,  World");          }    }  

Hello World en Java

Page 14: ¿Cómo elegir el languaje y el framework de tu próxima aplicación web?

puts  "Hello,  World”  

Hello World en Ruby

Page 15: ¿Cómo elegir el languaje y el framework de tu próxima aplicación web?

package  test;    import  java.io.*;    import  javax.servlet.http.*;  import  javax.servlet.*;    public  class  HelloServlet  extends  HttpServlet  {      public  void  doGet  (HttpServletRequest  req,                                            HttpServletResponse  res)          throws  ServletException,  IOException      {          PrintWriter  out  =  res.getWriter();            out.println("Hello,  world!");          out.close();      }  }  

Hello World usando un Servlet

Page 16: ¿Cómo elegir el languaje y el framework de tu próxima aplicación web?

require  'sinatra'    get  '/hi'  do      "Hello  World!"  end  

Hello World usando Sinatra

Page 17: ¿Cómo elegir el languaje y el framework de tu próxima aplicación web?

require  'sinatra'    get  '/hi'  do      "Hello  World!"  end  

Hello World usando Sinatra

Page 18: ¿Cómo elegir el languaje y el framework de tu próxima aplicación web?

¿Todos los lenguajes de programación son

comparables y equivalentes?

Page 19: ¿Cómo elegir el languaje y el framework de tu próxima aplicación web?

¿Porqué existen tantos lenguajes de programación?

Page 20: ¿Cómo elegir el languaje y el framework de tu próxima aplicación web?

¿Porqué se siguen creando nuevos lenguajes?

Page 21: ¿Cómo elegir el languaje y el framework de tu próxima aplicación web?
Page 22: ¿Cómo elegir el languaje y el framework de tu próxima aplicación web?
Page 23: ¿Cómo elegir el languaje y el framework de tu próxima aplicación web?
Page 24: ¿Cómo elegir el languaje y el framework de tu próxima aplicación web?
Page 25: ¿Cómo elegir el languaje y el framework de tu próxima aplicación web?

http://oreilly.com/news/graphics/prog_lang_poster.pdf

Page 26: ¿Cómo elegir el languaje y el framework de tu próxima aplicación web?

LISP (1958)

Smalltalk (1971)

C (1972)

Page 27: ¿Cómo elegir el languaje y el framework de tu próxima aplicación web?

John McCarthy (MIT / Stanford)

Page 28: ¿Cómo elegir el languaje y el framework de tu próxima aplicación web?

Inteligencia artificial

Page 29: ¿Cómo elegir el languaje y el framework de tu próxima aplicación web?

Kernighan & Ritchie (Bell Labs)

Page 30: ¿Cómo elegir el languaje y el framework de tu próxima aplicación web?

Sistema operativo simple y eficiente

Page 31: ¿Cómo elegir el languaje y el framework de tu próxima aplicación web?

Alan Kay (XEROX PARC)

Page 32: ¿Cómo elegir el languaje y el framework de tu próxima aplicación web?

Escritorio moderno

Ingeniería de software

Computación personal

Page 33: ¿Cómo elegir el languaje y el framework de tu próxima aplicación web?

LISP (LISt Procesor)

•  Bases matemáticas (Cálculo de Lambda)

•  Extensible (se va construyendo a si mismo)

•  Programación funcional

•  Late binding / Metaprogramación

•  Gestión automática de la memoria

Page 34: ¿Cómo elegir el languaje y el framework de tu próxima aplicación web?

Lenguage C

•  Imperativo y estructurado

•  Bajo nivel (cerca del hardware)

•  Gestión manual de la memoria

•  Orientado a maximizar el rendimiento

Page 35: ¿Cómo elegir el languaje y el framework de tu próxima aplicación web?

Smalltalk

•  Orientado a objetos (bases en biología)

•  Altamente reflexivo (todo es un objeto)

•  Gestión automática de la memoria

•  Orientado a maximizar productividad

Page 36: ¿Cómo elegir el languaje y el framework de tu próxima aplicación web?
Page 37: ¿Cómo elegir el languaje y el framework de tu próxima aplicación web?
Page 38: ¿Cómo elegir el languaje y el framework de tu próxima aplicación web?
Page 39: ¿Cómo elegir el languaje y el framework de tu próxima aplicación web?
Page 40: ¿Cómo elegir el languaje y el framework de tu próxima aplicación web?
Page 41: ¿Cómo elegir el languaje y el framework de tu próxima aplicación web?
Page 42: ¿Cómo elegir el languaje y el framework de tu próxima aplicación web?
Page 43: ¿Cómo elegir el languaje y el framework de tu próxima aplicación web?
Page 44: ¿Cómo elegir el languaje y el framework de tu próxima aplicación web?
Page 45: ¿Cómo elegir el languaje y el framework de tu próxima aplicación web?

AWK

C SH UNIX

commands

Page 46: ¿Cómo elegir el languaje y el framework de tu próxima aplicación web?

Perl

C SH AWK

Page 47: ¿Cómo elegir el languaje y el framework de tu próxima aplicación web?

C++

C Smalltalk

Page 48: ¿Cómo elegir el languaje y el framework de tu próxima aplicación web?

Objective-C

C Smalltalk

Page 49: ¿Cómo elegir el languaje y el framework de tu próxima aplicación web?

Java

C++ Smalltalk

Page 50: ¿Cómo elegir el languaje y el framework de tu próxima aplicación web?

C#

Java C++ Object Pascal

Page 51: ¿Cómo elegir el languaje y el framework de tu próxima aplicación web?

PHP

C Perl Java

Page 52: ¿Cómo elegir el languaje y el framework de tu próxima aplicación web?

Python

Smalltalk ABC LISP

Page 53: ¿Cómo elegir el languaje y el framework de tu próxima aplicación web?

HOW  TO  RETURN  words  document:        PUT  {}  IN  collection        FOR  line  IN  document:              FOR  word  IN  split  line:                    IF  word  not.in  collection:                          INSERT  word  IN  collection        RETURN  collection  

Ejemplo de código de “ABC” (Holandés)

Page 54: ¿Cómo elegir el languaje y el framework de tu próxima aplicación web?

Ruby

Smalltalk Perl LISP

Page 55: ¿Cómo elegir el languaje y el framework de tu próxima aplicación web?

1  to:  10  do:        [:n  |              n  isOdd                ifTrue:  [n  toStdout]                ifFalse:  [n  toStderr]        ]  

Ejemplo de código de Smalltalk

Page 56: ¿Cómo elegir el languaje y el framework de tu próxima aplicación web?

Javascript

Scheme (LISP)

Self (Smalltalk) Java

Page 57: ¿Cómo elegir el languaje y el framework de tu próxima aplicación web?

Erlang

Prolog LISP

Page 58: ¿Cómo elegir el languaje y el framework de tu próxima aplicación web?
Page 59: ¿Cómo elegir el languaje y el framework de tu próxima aplicación web?

ERICSSON AXD 301 MULTI SERVICE ATM SWITCH

Page 60: ¿Cómo elegir el languaje y el framework de tu próxima aplicación web?

ERICSSON AXD 301 MULTI SERVICE ATM SWITCH

99.9999999% de uptime

Page 61: ¿Cómo elegir el languaje y el framework de tu próxima aplicación web?

Clojure

LISP Java Erlang

Page 62: ¿Cómo elegir el languaje y el framework de tu próxima aplicación web?

Scala

Java LISP Erlang

Page 63: ¿Cómo elegir el languaje y el framework de tu próxima aplicación web?
Page 64: ¿Cómo elegir el languaje y el framework de tu próxima aplicación web?
Page 65: ¿Cómo elegir el languaje y el framework de tu próxima aplicación web?

Si insisten en usar PHP…

Page 66: ¿Cómo elegir el languaje y el framework de tu próxima aplicación web?

Conclusiones

•  Conviene usar un lenguaje moderno que se actualice frecuentemente

•  Lenguaje dinámico o estático pero con sintaxis flexible y expresiva

•  Soporte multiparadigma: OOP y funcional •  Comunidad muy activa / opensource •  Orientación a la concurrencia (modelo de

actor)

Page 67: ¿Cómo elegir el languaje y el framework de tu próxima aplicación web?

¿Cómo elegir el lenguaje de programación y el framework de tu

próxima aplicación web? Antonio Ognio

[email protected]

h"p://www.bitzeppelin.com