Successfully reported this slideshow.

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

4

Share

1 of 67
1 of 67

More Related Content

Related Books

Free with a 14 day trial from Scribd

See all

Related Audiobooks

Free with a 14 day trial from Scribd

See all

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

  1. 1. ¿Cómo elegir el lenguaje de programació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 es producto principal de una startup
  6. 6. si quieres un blog típico listo mañana...
  7. 7. ¿Cuáles son los criterios de selecció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 de selecció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 Java public  class  HelloWorld  {            public  static  void  main(String[]  args)  {                  System.out.println("Hello,  World");          }     }  
  13. 13. Hello World en Ruby puts  "Hello,  World”  
  14. 14. Hello World usando un Servlet 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();      }   }  
  15. 15. Hello World usando Sinatra require  'sinatra'     get  '/hi'  do      "Hello  World!"   end  
  16. 16. Hello World usando Sinatra require  'sinatra'     get  '/hi'  do      "Hello  World!"   end  
  17. 17. ¿Todos los lenguajes de programación son comparables y equivalentes?
  18. 18. ¿Porqué existen tantos lenguajes 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 operativo simple y eficiente
  26. 26. Alan Kay (XEROX PARC)
  27. 27. Escritorio moderno Ingeniería de software Computació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. UNIX C 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 Smalltalk 1  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 de programación y el framework de tu próxima aplicación web? Antonio Ognio antonio@bitzeppelin.com h"p://www.bitzeppelin.com  

×