Si fuera a comenzar hoy para aprender y construir un sitio web de comercio electrónico, ¿qué idiomas usaría para el front-end, el backend y la base de datos?

Para dar un poco de contrapunto aquí, me volvería un poco loco y diría que si lo construyo desde cero, en realidad usaría Meteor . Tiene todas las características necesarias para la implementación de producción ahora, y está obteniendo mucha tracción. Tendría que ser un poco inteligente para evitar la falta de soporte de transacciones en noSQL, pero no es como si fuera el fin del mundo, y Meteor ofrece muchas otras cualidades que superan la desventaja.

Si crees que Meteor es demasiado sangriento para ti, entonces te recomiendo Rails. No usaría ninguno de los marcos de comercio electrónico existentes, porque si bien el comercio electrónico parece un problema genérico para el que puede crear un marco, realmente no lo es. Las necesidades de una tienda siempre son muy diferentes a las de otra.

Por estas razones, me mantendría alejado de Magento. He trabajado con él, y es una pila horrible, horrible y apestosa de estiércol excesivamente diseñado. Han agregado todas las características posibles solicitadas bajo los nueve soles, por lo que es increíblemente lento y complicado trabajar con ellas. “Battleship” ni siquiera comienza a describir qué tan pesado es maniobrar Magento. Incluso con su increíble cantidad de características, aún tendrá que hacer un trabajo personalizado en algún momento, y ese trabajo será al menos diez veces más lento que si tuviera su propia solución porque está muy mal documentada y complicado en cuanto a arquitectura.

Mientras escribo esto, me doy cuenta de que realmente odio a Magento. En mi opinión, debe iniciar con una solución simple como Shopify y comenzar a desarrollar su propia solución personalizada. Es tan increíble trabajar con Magento que no tengo palabras para describirlo. Producto repugnante.

¿Mencioné que realmente odio a Magento?

Por razones prácticas, estoy de acuerdo con la respuesta del usuario de Quora a Si comenzaría hoy a aprender y construir un sitio web de comercio electrónico, ¿qué idiomas usaría para el front-end, el backend y la base de datos?

Ahora, si realmente quieres aprender cómo construir el tuyo, veo dos formas de hacerlo:

  • Use una pila completa como Meteor (plataforma Javascript) y cree algo más complejo.
  • Aprende las piezas individuales mencionadas. Pero, la experiencia común parece ser que MongoDB aún no está listo como base de datos de producción primaria, y se usa mejor como caché. Esto es más importante en el comercio electrónico.

El lenguaje de programación apropiado difiere de un desarrollador a otro. En Campus On Fire, la compañía en la que trabajo, codificamos en JavaScript, las principales razones por las que usamos Node.js y Angular:

1. JavaScript se puede usar tanto para el desarrollo de backend como de frontend.

2. Viene con una amplia variedad de bibliotecas y módulos para cada función, por lo que simplemente elegimos la mejor.

3. Una gran cantidad de profesionales de alto nivel codifican en JavaScript, por lo que un buen soporte comunitario y reduce el bloqueo de proveedores.

4. Los sitios web de JavaScript se lanzan extremadamente rápido, por lo que los usuarios tienen una mejor experiencia.

5. El principal desarrollador angular es Google.

Definitivamente, usar JavaScript es más trabajo, pero la recompensa está en un mejor producto y hoy en día los usuarios son sofisticados y exigen una buena experiencia o los pierdes rápidamente.

Para un sitio web estático, necesita saber, como mínimo, HTML, CSS y Javascript. Me mantendría alejado de las herramientas modernas como HAML / LESS / Coffescript, ya que requieren instalar y configurar un montón de dependencias y mucha sobrecarga mental cuando estás mirando tutoriales HTML / CSS / JS simples y tratando de convertirlos en los equivalentes HAML / LESS / Coffescript.

Para un sitio de comercio electrónico, probablemente comenzaría con PHP ya que es fácil de instalar y no requiere jugar con cosas como Cygwin (suponiendo que esté en Windows). Si está en una Mac, Python podría ser una buena opción, ya que está instalada de forma predeterminada. Ambos idiomas son fáciles de aprender y están bien documentados. Sin embargo, con PHP, es mucho más fácil despegar, ya que no necesariamente necesita elegir y aprender un marco web para ir más allá de un “hola mundo”.

También importante, realmente no desea reinventar la rueda cuando se trata de aceptar pagos. Es un trabajo muy arduo e implica mucho esfuerzo que no es de programación (por ejemplo, hablar con los bancos). Stripe, por ejemplo, proporciona API para PHP / Python / Ruby / NodeJS, así como ejemplos de cómo integrar su sistema usando esos lenguajes.

Para una base de datos, elegiría lo que sea compatible con el idioma del lado del servidor que elija. MySQL probablemente tiene el mejor soporte en términos de paquetes de instalación.

Me mantendría alejado de cualquier cosa que suene genial (NodeJS, MongoDB, Meteor, etc.). Estas tecnologías tienen características interesantes, pero no son necesarias para su objetivo final (crear un sitio de comercio electrónico), y no están tan bien documentadas como las herramientas más establecidas. Algunos también requieren dedicar un tiempo a aprender cosas que no necesariamente te interesan y distraerte de lo que te importa.

Ahora, una vez que haya experimentado realmente qué esfuerzo se requiere para construir un sitio de comercio electrónico y cuáles son los puntos débiles en este ciclo de desarrollo, ENTONCES está bien explorar tecnologías geniales, ya que tendrá una base más sólida para poder evaluar mejor sus características

¿No debería basarse la elección de idiomas en los planes para el sitio? No todos los sitios pretenden ser Amazon .com, así que me dices que una talla para todos, soy escéptico.

Probablemente elegiría un marco existente (Magento es el más conocido, pero ciertamente puede encontrar alternativas más fáciles o servicios directos en línea como shopify).

Las tecnologías que está citando son probablemente modernas, pero ciertamente no son necesarias para construir un sitio web de comercio electrónico.

Quiero decir, estas son excelentes tecnologías, pero no tiene sentido usarlas para ese tipo de uso.