¿Puedo crear aplicaciones web con Bootstrap y Ruby on Rails? Si es así, ¿por qué las personas usan frameworks Javascript?

Los marcos de JavaScript como Ember.js, AngularJS y Backbone son adecuados para aplicaciones complejas en el navegador (del lado del cliente). Por lo general, los datos se manipulan en la aplicación y se guardan en una aplicación del lado del servidor (a menudo escrita en Rails) a través de una API. Imagine una aplicación con interactividad compleja como arrastrar y soltar imágenes o manipular un gráfico de cotizaciones.

En contraste, Bootstrap es un marco front-end que se utiliza con Rails para facilitar el trabajo de CSS y agregar interactividad JavaScript simple, como barras de navegación y carruseles de imágenes. Bootstrap ofrece a los desarrolladores la comodidad de un diseño receptivo (escritorio, tableta o dispositivo móvil) listo para usar y una biblioteca de características comúnmente requeridas, como menús desplegables.

Para explicar cómo integrar Bootstrap con Rails, he escrito Bootstrap y Rails, un libro y un breve tutorial.

¿Puedo crear aplicaciones web con Bootstrap y Ruby on Rails?

Sí y no. Puedo pensar en algunos ejemplos de aplicaciones web que solo dependen de formas básicas y en las que puede salirse con una mínima cantidad de Javascript y hacer la mayoría de la lógica en el lado del servidor. De lo contrario, si tiene una interactividad personalizada o necesita una lógica del lado del cliente, querrá agregar un marco a su pila.

Si es así, ¿por qué las personas usan frameworks Javascript?

Agregar un framework javascript ofrece dos ventajas principales.

  1. Por lo general, tienen características como enlaces, plantillas, conversión de tiempo o ayudantes de solicitud asíncrona, que son confiables y ayudan a ahorrar tiempo a los desarrolladores.
  2. La mayoría de los marcos introducen convenciones para permitir que un desarrollador cree código reutilizable y modular que otros familiarizados con el marco pueden ejecutar a medida que se expande un equipo / base de código.

Larga historia corta: no son mutuamente excluyentes. Puede escribir aplicaciones web sin ningún código del lado del servidor utilizando una herramienta como Firebase o Parse, pero en la mayoría de las situaciones “normales” tendrá algo de código tanto de front-end como de back-end. Rails es popular para crear API de back-end y Angular / Ember / Backbone / React, etc. son populares para su front-end. Ahí tienes.

Hay algunas personas con más experiencia en javascript que rails, por lo que prefieren js.
Además, en muchos casos, las aplicaciones web individuales (aplicaciones web que usan marcos javascript) son más rápidas porque minimiza el peso y la cantidad de solicitudes al servidor que las usa.
Tener todo lo que pueda en el cliente (el navegador) es algo bueno porque es como almacenar en caché todas las vistas de su sitio en su computadora y probablemente en su memoria, y eso es mucho más rápido que pedir cada vista.
También es bueno para el servidor, ya que está minimizando el trabajo del servidor => más barato y fácilmente escalable.

la representación en el servidor de rails puede ser agradable, pero si desea tener efectos ui, a menudo es más fácil usar frameworks javascript (muchas cosas tampoco son posibles sin javascript). Además, todo este código se ejecuta en el cliente, por lo que hay menos tráfico en el lado del servidor. frameworks como backbone / marionettejs, emberjs o angularjs ofrecen características realmente geniales para configurar grandes ui, lo cual es difícil de hacer sin algunos javascript. Y por cierto. Use Coffeescript en lugar de javascript nativo. Es un código mucho más agradable.

Primero aclaremos esto muy simple:

Una aplicación web es tan buena como se ve en el navegador y qué tan rápido aparece la página web completa.

Muy basico. Ahora hay tres cosas, digamos tres tecnologías diferentes en el trabajo aquí.

Primero , el marcado y el estilo, es decir, HTML y CSS, que es responsable de la vista real de su aplicación web en el navegador.

Segundo , es el javascript que puede, entre otras cosas,

  • modifique la salida HTML y CSS, del lado del cliente, es decir, en el navegador, para darle algunas animaciones agradables manipulando el CSS basado en eventos de mouse / tecla / desplazamiento, etc.
  • hable con el servidor para obtener datos de la base de datos back-end y renderizar HTML / CSS adicional / modificado con los datos que obtuvo del servidor. (Llamamos a esto ajax y se hace sin volver a cargar toda la página)

En tercer lugar , la capa entre la base de datos y su navegador es responsable de qué datos entregar según la solicitud de un navegador / javascript del lado del cliente para una página web.

Ahora, es en la tercera capa que se requiere Ruby on Rails (o PHP, el sitio oficial de Microsoft ASP.NET, Python, etc.).

Ahora, para responder la pregunta, Bootstrap cubre la primera parte. Y los rieles cubren la tercera parte.

Para la segunda parte, puedes usar javascript o jquery (integrado con rails) y omitir los frameworks por completo. ¡Es totalmente innecesario!

Sin embargo, resulta que a medida que su aplicación web se vuelve más compleja, su segunda parte en ausencia de un marco se vuelve totalmente inmanejable. También ayudaría a entender que Ruby on Rails también es un marco para la tercera parte. Puedes terminar la tercera parte sin Ruby on Rails.

Habiendo dicho todo eso, también debo mencionar que Node.js puede usarse muy bien ya que cubre las tres partes. Sin embargo, AngularJS / React JS son solo del lado del cliente y solo se pueden usar junto con otra tercera capa.

Algunas personas son masoquistas.