frameworks - mejor - que es un lenguaje de programacion web
¿Necesita un marco para escribir el código de Ruby o Python para la web? (14)
Cada vez que veo a Ruby o Python debatir en el contexto del desarrollo web, siempre es con un marco (Rails for Ruby, Django for Python). ¿Son estos marcos necesarios? Si no, ¿hay alguna razón por la cual estos lenguajes se usan a menudo dentro de un marco, mientras que Perl y PHP no?
"Necesidad" es una palabra fuerte. Ciertamente puedes escribir Python sin uno, pero no me gustaría.
Python no fue diseñado (como PHP, por ejemplo) como un lenguaje de scripting web directo, por lo que las cosas comunes en la web como conectarse a bases de datos no son nativas, y los marcos son prácticos.
EDITAR : mod_python existe para Apache, por lo que si simplemente buscas escribir algunos scripts, entonces Python no necesita un framework. Si quieres construir un sitio completo, te recomendaría usar uno.
¿Marco de referencia? Diablos, ni siquiera necesitas un servidor web si estás usando Python, puedes hacer uno en alrededor de tres líneas de código.
Ciertamente puede escribir scripts CGI en cualquier idioma y hacer cosas "en bruto".
Los marcos (idealmente) ahorran el problema de escribir un montón de código para cosas que otras personas ya han manejado (manejo de sesión, etc.).
La decisión probablemente se reduce a lo que necesita hacer. Si el marco tiene las características que necesita, ¿por qué no usarlo? Si el marco va a requerir modificaciones extensas, podría ser más fácil rodar sus propias cosas. O mira un marco diferente.
La biblioteca de Python tiene numerosos módulos para hacer cgi, analizar html, cookies, WSGI, etc.
De ninguna manera son esos marcos de desarrollo requeridos. Pero al igual que con la mayoría de los entornos de desarrollo, su productividad aumentará exponencialmente si tiene un marco compatible para hacer referencia y crear sus aplicaciones. También disminuye la capacitación necesaria para que otros aprendan sobre sus aplicaciones si ya tienen una comprensión básica del marco que utiliza.
En cuanto al porqué :
Lo más plausible que puedo pensar es que Perl y PHP se desarrollaron antes de que la noción de utilizar marcos para aplicaciones web se hiciera popular. Por lo tanto, la "vieja" forma de hacer las cosas se ha quedado en esas culturas. Ruby y Python se hicieron populares después de que los frameworks se volvieron populares, por lo tanto se desarrollaron juntos. Si su idioma tiene un buen marco (o más de uno) bien respaldado por la comunidad, no hay muchas razones para intentar escribir una aplicación web sin uno.
Los marcos no son necesarios. Sin embargo, muchos desarrolladores piensan que los marcos facilitan el desarrollo automatizando muchas cosas. Por ejemplo, Django creará un backend listo para producción basado en la estructura de su base de datos. También le permite incorporar varios complementos si lo desea. No sé demasiado sobre los frameworks de Rails o Perl, pero los frameworks PHP como Zend, Symfony, Code Igniter, CakePHP, etc. se usan ampliamente.
Donde trabajo, robamos nuestro propio framework PHP.
Para Python, la respuesta es No, no es necesario. Puedes escribir Python directamente detrás de tu servidor web muy fácilmente, echa un vistazo a mod_python para saber cómo hacerlo.
A mucha gente le gustan los marcos porque suministran una gran cantidad del código repetitivo en una forma confiable para que no tenga que escribirlo usted mismo. Pero, como cualquier proyecto de código, debe elegir las herramientas y los marcos según sus méritos para su problema.
Solo puedo hablar con Ruby, pero no, no necesitas un marco para ejecutar páginas basadas en Ruby en la web. Necesita un servidor habilitado para ruby, como Apache ejecutando eruby / erb. Pero, una vez que lo haga, puede crear archivos .rhtml como RoR, donde procesa el código ruby en línea.
Desde el punto de vista de Python, definitivamente querrías usar uno de los marcos. Sí, es posible escribir una aplicación web sin ellos, pero no va a ser bonita. Aquí hay algunas cosas que (probablemente) terminarán escribiendo desde cero:
Templating: a menos que esté escribiendo un hack muy rápido, no quiere generar todo su HTML dentro de su código Python; este es un diseño realmente pobre que se convierte en una pesadilla de mantenimiento.
Procesamiento de URL: dividir una URL e identificar qué código ejecutar no es una tarea trivial. Django (por ejemplo) proporciona un fantástico mecanismo para mapear desde un conjunto de expresiones regulares a un conjunto de funciones de visualización.
Autenticación: rodar su propio código de inicio de sesión / cierre de sesión / sesión es un problema, especialmente cuando ya hay un código preescrito (y probado) disponible
Manejo de errores: los marcos ya tienen un buen mecanismo para a) ayudarlo a depurar su aplicación, yb) ayudar a redireccionar a las páginas 404 y 500 correctas.
Para agregar a esto, todas las bibliotecas de framework están todas fuertemente probadas (y probadas contra incendios). Además, hay comunidades de personas que se están desarrollando con la misma base de códigos, por lo que si tiene alguna pregunta, probablemente pueda encontrar ayuda.
En resumen, no es necesario, pero a menos que su proyecto sea "un nuevo marco web", probablemente sea mejor que utilice uno de los existentes.
PHP tiene muchos frameworks. Probablemente más que la mayoría. En Ruby, la mayoría usa Rails, así que eso es lo que escuchas, y Django para Python se menciona más que no. Pero con PHP tienes muchos para elegir.
¿Son estos marcos necesarios?
No. Ellos, como cualquier ''marco'', son simplemente para acelerar el tiempo de desarrollo y facilitar el trabajo del programador.
Si no, ¿hay alguna razón por la cual estos lenguajes se usan a menudo dentro de un marco, mientras que Perl y PHP no?
PHP y Perl fueron lenguajes populares para construir sitios web mucho antes de la idea de usar frameworks. Frameworks como Rails son los que le dieron a Ruby lo siguiente. No estoy seguro de que Python o Ruby fueran tan comunes como los lenguajes web antes de que estuvieran respaldados por frameworks.
En estos días, incluso el desarrollo web de PHP / Perl debe estar respaldado por un marco (del que ahora hay muchos).
Cualquier lenguaje que pueda "imprimir" se puede usar para generar páginas web, pero los marcos manejan una gran cantidad de la generación de HTML por usted. Le permiten concentrarse más en el contenido y menos en los detalles de la codificación del HTML sin formato.
La respuesta corta es no, no son necesarios . En ruby tienes plantillas .erb que se pueden usar de forma similar a como usas páginas PHP. Puedes escribir un sitio en Ruby o Python usando varias tecnologías (frameworks tipo Rails, Plantillas o incluso hablando directamente con la biblioteca HTTP y construyendo la página estilo CGI).
Los frameworks web como Django de Python o Ruby''s Rails (hay muchos) simplemente elevan el nivel de abstracción de los PHP o ASP, y automatizan varios procesos (como inicio de sesión, interacción con la base de datos, API REST) que siempre es algo bueno.