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

  • 1,754 views
Uploaded on

 

More in: Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
No Downloads

Views

Total Views
1,754
On Slideshare
0
From Embeds
0
Number of Embeds
1

Actions

Shares
Downloads
31
Comments
2
Likes
3

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

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