Stack MEAN vs Stack LAMP

Urien

Parece evidente que el stack MEAN va a ser el nuevo estandar de la programación web (si no lo es ya). Yo soy programador full stack LAMP. Ahora mismo no lo uso mucho porque mis labores se centran en dar soluciones informáticas en entornos de postproducción audiovisual. Eso implica muchas cosas y eventualmente alguna web donde uso LAMP.

En mi departamento se están poniendo las pilas con el stack MEAN a pesar de que nadie lo entienda y que todos se queden a mitad de la curva de aprendizaje tan costosa que tiene. Yo incluido.

Es evidente que para el tipo de trabajo que hacemos aquí de webs internas o alguna que sale fuera... con lo que conocemos de LAMP nos vale pero mi jefe quiere avanzar y que vayamos usando MEAN en futuros proyectos.

No me voy a enfrentar a él porque lo veo ridículo y al final tendré que echar 10 veces más horas de las que estoy echando para aprenderlo y punto pero necesito medio entender como es posible que algo tan complejo se haya hecho con un hueco tan grande. Lo veo ahí delante con todo su npm, su package.json, su typescript, su mongo, su mongoose, su gulp, su watch, su modelo-vista-controlador... y lo comparo con mi php + jquery y pienso "pero que cojones?"
Apenas tardé en aprender LAMP y he hecho varios tutos de angular2 y sigue sin entrarme de una forma fluida. Tiene bemoles que para webs que son unipágina se utilicen tantos ficheros por detrás entre templates, ficheros fuente y compilados.

Y a todo esto, cuando me iba a empezar otro tuto de angular2 a ver si se me quedaban los malditos decoradores y tal... me encuentro con la noticia la publicación de Angular 3 en Marzo y de una nueva versión diferente cada 6 meses. Parece ser que en este caso Angular 3 no es un rewrite como si lo fue Angular 2 sobre Angular 1.1 y promete entre un 25 y un 35% menos de código y que sacarlo solo unos meses después de Angular 2 "no es el fin del mundo" según su desarrollador jefe. La gente apunta a que es un Angular 2.1 pero a mi me parece un pitorreo ya el hecho de aprender algo que no te va a durar ni 6 meses (se prevee que Angular 4 si sea una "major release").

Así que no se. Estoy un poco asqueado y creo que es esencialmente porque sigo sin entender como funciona esto. Supongo que si la curva fuese facil no me habría costado nada darle caña (como lo fue para php o jquery) pero al verme en estas me quemo mucho.

Cuando intento defender el LAMP sobre el MEAN por su sencillez me atacan con que PHP es la muerte y jQuery muy lento en operaciones asíncronas, por no hablar de que mongodb barre cualquier rastro de mysql en cuanto a rendimiento...

Así pues os pregunto a los que habeis dado el salto.
¿De verdad es tan brutal y se gana tanto con angular como para comerte el cambiar la percepción de como hemos hecho las webs hasta ahora? ¿tan mal estábamos? ¿tantisimo vamos a ganar? ¿y el mercado realmente va a respaldar tanta versión?

Gracias por leer el cry.

robb

Me uno a tu misma pregunta, tengo exactamente las mismas dudas

Merkury

Lo unico bueno de MEAN es MongoDB.

Lo demas, veremos como aguanta.

Y si me apuras Node.

1 respuesta
NickNack

Como todo, depende el uso y la escalabilidad de las cosas. Pero a simple vista me la juego a decir que tienes un jefe que tiene un problema de jefitis aguda: Piensan que todo será mucho mejor si usas tecnologías punteras preparadas para escalar por que claro, y si el proyecto explota y se hace super famoso y todos quieren entrar, entonces !¿Qué?!.

Lo malo de esto es que nunca se plantean si la idea de verdad es buena. Gastar recursos en estar siempre en lo último, en lo más "popular" y no vale de nada si eso no lo acompañas de una base previa. Me faltan dedos en el cuerpo para contar las veces que he visto proyectos ridículamente complejos internamente en los que se tiran la virgen de tiempo desarrollándolos y perfeccionandolos cuando se ve claramente desde el minuto 1 que no van a ninguna parte.

1 1 respuesta
Gantorys

Los que atacan con "PHP es la muerte" o se quedaron estancados en PHP 4 o son unos ignorantes.

En cuanto a lo de MEAN en vuestra empresa pues dependerá del proyecto como dice #4, aunque leyendo lo que dices tiene pinta de que vais a implantar esa tecnología por cojones sin tener en cuenta pros/contras, simplemente por estar a la última. Me ha recordado a este artículo que leí hace no mucho: https://webcache.googleusercontent.com/search?q=cache:qRIohdny28YJ:https://hackernoon.com/how-it-feels-to-learn-javascript-in-2016-d3a717dd577f+&cd=1&hl=es&ct=clnk&gl=es (de la cache de google porque el enlace original parece estar caído)

1
s4suk3

en mi opinión la forma de hacer las webs a lo 'php' esta muriendo, es decir, un php mezclado con llamadas a la bd y pintando html y js todo en un fichero etc..
Puedes usar php,js,go o lo que quieras, con una api rest, y luego elegir un front end.
Y mongo es un gustazo comparado con mysql

1 respuesta
Merkury

#6 Y en mi opinion, no tienes ni idea de como se hace una web con PHP hoy en dia.

Las web tal como las describes en el ambito profesional, ya no se encuentran.

En lo referente a mongo, toda la razon, siempre que usar NoSQL sea lo adecuado, porque tambien usar una tecnologia porque es la mas moderna sin mas motivo, bueno...

1 respuesta
Maldercito

MEAN es cremita pura. Por experiencia propia, a la larga los tiempos de desarrollo se acortan bastante bastante. Échale paciencia y ve poco a poco. Es un stack muy amplio como tu has dicho, entre npm, gulp, mongoose, y luego toda la parte frontend, tela.

Ve centrándote en pequeñas batallas. Primero node, después npm, luego mongodb con mongoose y así sucesivamente, si no te volverás medio loco intentando abarcar demasiado. Y si, es posible que os lleve unos cuantos meses dominarlo a la perfección, así que paciencia amigo.

Troyer

A mi se me esta haciendo muy duro adaptarme a MEAN porque todo me parece muy inestable o parches sobre parches, pero en mi empresa me estoy viendo forzado a ello. Hablo desde la inexperiencia ya que llevo un par de meses y que no tengo nadie que me enseñe a hacerlo más que la documentación e información que hay por el ciberespacio.

s4suk3

#7 cierto, nadie vende wordpress

soek

Discrepo bastante con lo de "MEAN" Stack va a ser la tendencia.

Si que durante mucho tiempo LAMP era practicamente el "standard" de los proyectos web, pero IMO fué por la fuerza que tenia PHP: la comunidad y la curva de aprendizaje.

Como yo lo he vivido fue que en ese momento no se hablaba de separation of concenrs, front y back estaban tristemente separados, modelos de la base de datos estaban atados a ORMs de cualquier framework que usases (querido Doctrine) y se tiraba de MySQL porque no se conocía otra cosa ni cual funcionaba mejor en cada caso de uso.

Entre todo esas compañias pequeñas que creaban Software sin mucho conocimiento, habia gente que tenia 5/10 años de experiencia en el mundo del Software que trajeron conceptos como SOLID, Arquitectura, blablaba y se empezó a hablar de SOA en web y me atrevo a decir que ahora se habla de micro-servicios (todos los conceptos son super questionables y nada faciles de definir).

Dicho esto, no veo un Stack "standard" nunca más. Si que puede tener tendencias ciertas partes de la Applicación que estes creando, pero un Stack completo? Para mi sería una mala practica hoy en dia.

Y todo esto, sin comentar el posible hate a Angular 1 y MongoDB.

Espero ser de ayuda #1

1 1 respuesta
Troyer

#11 Tienes toda la razón.

Nosotros seguiremos con MEAN y si se hace muy dura la curva de aprendizaje saltaremos a MERN, y en el caso ya de que nos siga dando sida pues seguiremos en LAMP.

1 respuesta
soek

#12 Veo usar React o cualquier component-base libreria para Front muy adecuado para algunas Applicaciones.

Aunq no estoy tan seguro de MongoDB, mas que nada por el no-SQL, algunas veces he visto una BD tipo Pouch o Redis sobre una Applicacion muy "relacional" y no encaja por ningún lado.

B

Supongo que la gente que ahora entra en el mundo laboral, al usarse más MEAN... No tocará más remedio que aprender MEAN...

El gran problema que veo en el stack MEAN (que vale que escala súper bien y para el big data es el pene) es que javascript es el lenguaje menos robusto del planeta... Es una pena que esté tan de moda JS...

1 respuesta
HeXaN
#14Metainferno:

que vale que escala súper bien y para el big data es el pene

Hombre, para Big Data no se usa MEAN, por suerte.

r2d2rigo

MEAN = ultima moda que veremos lo que dura cuando la gente se aburra y salte al barco nuevo.
LAMP = intento de reproducir las stack enterprise (JSP/ASP) pero quedandose a medias por las limitaciones de PHP.

Entre MEAN y LAMP me quedo con LAMP, por lo menos con esa puedes transferir conocimientos a desarrollos de verdad si el barco se hunde.

1 respuesta
s4suk3

Mean murió, si hay tanto hate es por la A de Angular, pero nodejs y mongo han llegado para quedarse, ni modas ni leches

liebgott

Angular esta mas deprecated que el fusil de anima lisa. Lo suyo seria mirarse MEAN y sustituir Angular por React y su ecosistema.

B

#16 Cuales son las limitaciones que tiene PHP con respecto a ASP?.

1 respuesta
MisKo

Cada día desaparece un framework...

Porque pensáis que Angular está de capa caída? O por que se debería de tirar por React? No se, lo ideal sería argumentar algo creo yo xD

1 respuesta
HeXaN

#20 Porque React es la moda de este año, la del año pasado fue Angular2.

2 respuestas
MisKo

#21 Pero si se anunció la beta4 de Angular antes de que acabara el año!!! Deberia ser este la moda!

spoiler
liebgott

La moda de este año es Vue, no React.
IMO Angular 2 esta teniendo relativamente poca aceptacion, el cambio es muy brusco y "obliga" a la peña a tragar con TypeScript. Ademas hay a saco de empresas que usan Angular 1.x, una branch que quieren abandonar y la migracion es bastante costosa.
A nivel de recursos (documentacion, tutos, componentes ya hechos, etc) React esta en plena forma. Es un fw facil de entender y muy productivo, y calza bien con varios paradigmas para el data flow. Si quieres un approach funcional usas Redux , si quieres un approach reactive Mobx, etc, etc, algo mas dificil de conseguir con Angular.
Si quieres performance tienes hasta alternativas que son mas rapidas manteniendo practicamente la misma API (Inferno o Preact) y gracias a NextJS o Create React App empezar un proyecto, especialmente en la config de Webpack (autentico caballo de batalla para el desarrollo diario, builds de produccion, etc, etc), que te la dan ya hecha.
A nivel de dedicacion de la comunidad React es lo mejor, ultimamente Vue esta pegando fuerte, pero veremos que pasa cuando acaben React Fiber.
Para acabar tienes React Native, partiendo de la misma idea cubres mobiles sin despeinarte y con un perfomance mas que bueno, algo que NativeScript no consigue (Angular).

PD: El mejor fw sigue siendo Ember, pero la peña no le hace mucho caso :(

1 1 respuesta
MisKo

Así si son argumentos, algo que a la gente q aun no haya tirado por ninguno de ellos le valga para poder buscar o comparar.

Solo por el esfuerzo de hacerlo me miraré la documentación proximamente de reactjs :)

r2d2rigo

#19 a nivel funcional/de features pocas, pero que sea de tipado debil/dinamico e interpretado en tiempo de ejecucion es de juzgado de guardia.

1 respuesta
B

#25 Si, tipado dinámico es un defecto de base, pero cuales son las limitaciones con respecto a ASP puesto que los has diferenciado con diferencia?

babri

me encantan los comentarios de mongo es mejor que mysql, os veo analizando un desarrollo dando ese gran criterio... dependiendo el desarrollo uno es mejor que otro... de hecho nosotros trabajamos con los dos a la vez y va como un tiro.

G

Estáis comparando ASP .NET con Php?

s4suk3

#21 yo no encuentro la moda ahí, si tienes que hacer un proyecto web con mucha interfaz de usuario, o tiras por librerías jQuery o vas a algo más moderno, angular fue moda? yo creo que la tecnología avanza y madura, pero el cambio es doloroso para muchos...

JuAn4k4

De ese stack MEAN, no me quedo con ninguna de las 4.

Front:
Si es cierto que desarrollar un frontend en jquery hoy en dia, es algo muy poco defendible, sinceramente, ahi tu jefe algo de razón lleva.
En #23 tienes un buen resumen de las tecnologias de front, yo me quedaría con React por su comunidad.

DB:
Mongo tiene sus problemas de consistencia y escalabilidad, hay muchas otras DBs muy buenas por ahi.
Nunca se necesita un solo repositorio, a pesar de que sea muy común. Cada DB tiene su uso, sus pros y sus contras, para lo que esta diseñado y para lo que no.
Para BigData por suerte, se usa hadoop y muchas otras herramientas que existen alrededor.
Aquí hay un buen listado de nosql databases: http://nosql-database.org/
Sin embargo, un buen Mysql, tiene sus ventajas (ACID) que no te proporcionan otros stores.

Server:
Express y Node en el server, pues que quieres que te diga, esta pegando mucho Go, pero las de siempre seguiran ahi para bien o para mal.