¿Cómo elegir el lenguaje deprogramación y el framework de tu     próxima aplicación web?           Antonio Ognio        an...
¿Qué tipo de aplicación web?
¿Qué tipo de aplicación web?•  Concepto nuevo / innovador•  Expectativa de vida de varios años•  Exploración / cambio de c...
ejemplo típico…
…aplicación web que esproducto principal de una         startup
si quieres un blog típico     listo mañana...
¿Cuáles son los criterios deselección para un lenguaje de        programación?
Criterios para elegir el lenguaje•  Expresividad•  Rendimiento•  Soporte para hacer metaprogramación•  Calidad de librería...
¿Cuáles son los criterios deselección para un framework            web?
Criterios para elegir el framework•  Expresividad•  Rendimiento•  Nivel de uso de metaprogramación•  Calidad de componente...
Expresividad
Hello World en Javapublic	  class	  HelloWorld	  {	  	  	  	  	  	  public	  static	  void	  main(String[]	  args)	  {	  	...
Hello World en Rubyputs	  "Hello,	  World”	  
Hello World usando un Servletpackage	  test;	  	  import	  java.io.*;	  	  import	  javax.servlet.http.*;	  import	  javax...
Hello World usando Sinatrarequire	  sinatra	  	  get	  /hi	  do	  	  	  "Hello	  World!"	  end	  
Hello World usando Sinatrarequire	  sinatra	  	  get	  /hi	  do	  	  	  "Hello	  World!"	  end	  
¿Todos los lenguajes de    programación soncomparables y equivalentes?
¿Porqué existen tantoslenguajes de programación?
¿Porqué se siguen creando    nuevos lenguajes?
http://oreilly.com/news/graphics/prog_lang_poster.pdf
LISP (1958)Smalltalk (1971)   C (1972)
John McCarthy (MIT / Stanford)
Inteligencia artificial
Kernighan & Ritchie (Bell Labs)
Sistema operativosimple y eficiente
Alan Kay (XEROX PARC)
Escritorio modernoIngeniería de softwareComputación personal
LISP (LISt Procesor)•  Bases matemáticas (Cálculo de Lambda)•  Extensible (se va construyendo a si mismo)•  Programación f...
Lenguage C•  Imperativo y estructurado•  Bajo nivel (cerca del hardware)•  Gestión manual de la memoria•  Orientado a maxi...
Smalltalk•  Orientado a objetos (bases en biología)•  Altamente reflexivo (todo es un objeto)•  Gestión automática de la me...
UNIXC   SH    commands    AWK
C   SH     AWK    Perl
C         Smalltalk    C++
C             Smalltalk    Objective-C
C++          Smalltalk      Java
Java   C++   Object Pascal       C#
C   Perl   Java    PHP
Smalltalk    ABC     LISP            Python
Ejemplo de código de “ABC” (Holandés)HOW	  TO	  RETURN	  words	  document:	  	  	  	  PUT	  {}	  IN	  collection	  	  	  	...
Smalltalk   Perl   LISP            Ruby
Ejemplo de código de Smalltalk1	  to:	  10	  do:	  	  	  	  [:n	  |	  	  	  	  	  	  	  n	  isOdd	  	  	  	  	  	  	  	  i...
Scheme     Self                      Java (LISP) (Smalltalk)        Javascript
Prolog            LISP         Erlang
ERICSSON AXD 301 MULTI SERVICE ATM SWITCH
99.9999999% de uptime ERICSSON AXD 301 MULTI SERVICE ATM SWITCH
LISP    Java     Erlang       Clojure
Java   LISP    Erlang       Scala
Si insisten en usar PHP…
Conclusiones•  Conviene usar un lenguaje moderno que   se actualice frecuentemente•  Lenguaje dinámico o estático pero con...
¿Cómo elegir el lenguaje deprogramación y el framework de tu     próxima aplicación web?           Antonio Ognio        an...
¿Cómo elegir el languaje y el framework de tu próxima aplicación web?
¿Cómo elegir el languaje y el framework de tu próxima aplicación web?
¿Cómo elegir el languaje y el framework de tu próxima aplicación web?
¿Cómo elegir el languaje y el framework de tu próxima aplicación web?
¿Cómo elegir el languaje y el framework de tu próxima aplicación web?
¿Cómo elegir el languaje y el framework de tu próxima aplicación web?
¿Cómo elegir el languaje y el framework de tu próxima aplicación web?
¿Cómo elegir el languaje y el framework de tu próxima aplicación web?
¿Cómo elegir el languaje y el framework de tu próxima aplicación web?
¿Cómo elegir el languaje y el framework de tu próxima aplicación web?
¿Cómo elegir el languaje y el framework de tu próxima aplicación web?
¿Cómo elegir el languaje y el framework de tu próxima aplicación web?
¿Cómo elegir el languaje y el framework de tu próxima aplicación web?
¿Cómo elegir el languaje y el framework de tu próxima aplicación web?
¿Cómo elegir el languaje y el framework de tu próxima aplicación web?
¿Cómo elegir el languaje y el framework de tu próxima aplicación web?
¿Cómo elegir el languaje y el framework de tu próxima aplicación web?
Upcoming SlideShare
Loading in …5
×

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

2,930 views

Published on

Published in: Technology
2 Comments
4 Likes
Statistics
Notes
No Downloads
Views
Total views
2,930
On SlideShare
0
From Embeds
0
Number of Embeds
30
Actions
Shares
0
Downloads
50
Comments
2
Likes
4
Embeds 0
No embeds

No notes for slide

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

  1. 1. ¿Cómo elegir el lenguaje deprogramación y el framework de tu próxima aplicación web? Antonio Ognio antonio@bitzeppelin.com h"p://www.bitzeppelin.com  
  2. 2. ¿Qué tipo de aplicación web?
  3. 3. ¿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
  4. 4. ejemplo típico…
  5. 5. …aplicación web que esproducto principal de una startup
  6. 6. si quieres un blog típico listo mañana...
  7. 7. ¿Cuáles son los criterios deselección para un lenguaje de programación?
  8. 8. Criterios para elegir el lenguaje•  Expresividad•  Rendimiento•  Soporte para hacer metaprogramación•  Calidad de librerías disponibles•  Nivel de la comunidad
  9. 9. ¿Cuáles son los criterios deselección para un framework web?
  10. 10. Criterios para elegir el framework•  Expresividad•  Rendimiento•  Nivel de uso de metaprogramación•  Calidad de componentes disponibles•  Nivel de la comunidad
  11. 11. Expresividad
  12. 12. Hello World en Javapublic  class  HelloWorld  {            public  static  void  main(String[]  args)  {                  System.out.println("Hello,  World");          }    }  
  13. 13. Hello World en Rubyputs  "Hello,  World”  
  14. 14. Hello World usando un Servletpackage  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();      }  }  
  15. 15. Hello World usando Sinatrarequire  sinatra    get  /hi  do      "Hello  World!"  end  
  16. 16. Hello World usando Sinatrarequire  sinatra    get  /hi  do      "Hello  World!"  end  
  17. 17. ¿Todos los lenguajes de programación soncomparables y equivalentes?
  18. 18. ¿Porqué existen tantoslenguajes de programación?
  19. 19. ¿Porqué se siguen creando nuevos lenguajes?
  20. 20. http://oreilly.com/news/graphics/prog_lang_poster.pdf
  21. 21. LISP (1958)Smalltalk (1971) C (1972)
  22. 22. John McCarthy (MIT / Stanford)
  23. 23. Inteligencia artificial
  24. 24. Kernighan & Ritchie (Bell Labs)
  25. 25. Sistema operativosimple y eficiente
  26. 26. Alan Kay (XEROX PARC)
  27. 27. Escritorio modernoIngeniería de softwareComputación personal
  28. 28. 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
  29. 29. Lenguage C•  Imperativo y estructurado•  Bajo nivel (cerca del hardware)•  Gestión manual de la memoria•  Orientado a maximizar el rendimiento
  30. 30. 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
  31. 31. UNIXC SH commands AWK
  32. 32. C SH AWK Perl
  33. 33. C Smalltalk C++
  34. 34. C Smalltalk Objective-C
  35. 35. C++ Smalltalk Java
  36. 36. Java C++ Object Pascal C#
  37. 37. C Perl Java PHP
  38. 38. Smalltalk ABC LISP Python
  39. 39. Ejemplo de código de “ABC” (Holandés)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  
  40. 40. Smalltalk Perl LISP Ruby
  41. 41. Ejemplo de código de Smalltalk1  to:  10  do:        [:n  |              n  isOdd                ifTrue:  [n  toStdout]                ifFalse:  [n  toStderr]        ]  
  42. 42. Scheme Self Java (LISP) (Smalltalk) Javascript
  43. 43. Prolog LISP Erlang
  44. 44. ERICSSON AXD 301 MULTI SERVICE ATM SWITCH
  45. 45. 99.9999999% de uptime ERICSSON AXD 301 MULTI SERVICE ATM SWITCH
  46. 46. LISP Java Erlang Clojure
  47. 47. Java LISP Erlang Scala
  48. 48. Si insisten en usar PHP…
  49. 49. 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)
  50. 50. ¿Cómo elegir el lenguaje deprogramación y el framework de tu próxima aplicación web? Antonio Ognio antonio@bitzeppelin.com h"p://www.bitzeppelin.com  

×