Que pensez-vous de Meteor ?


#1

Bonjour à tous !

J’ai démarré une formation de développement web depuis le 20/02. Sur 5 mois, nous y apprenons principalement le JS (et plein d’autres trucs) avec AngularJS.

Pour notre prochain Hackathon, je voudrais prendre un risque et sortir un projet fait avec Meteor. Histoire d’être déjà familier avec le framework, je m’y suis donc mis et j’ai pu en quelques jours (à raison d’une heure par jour dessus, nos journées sont très prises) pondre une petite app rapidement, facilement et surtout en comprenant tout ce que je fais !

Lorsque nous travaillons sur avec AngularJS, nous utilisons la MEAN Stack Lineman. En comparaison avec Meteor, il y a énormément de fichiers et de lignes de code à taper pour un résultat identique. Du coup, j’ai un peu l’impression de “tricher”, tant le travail m’est facilité (mais n’est-ce pas là le but d’un framework ?).

Je voudrais donc avoir votre avis sur la question. De plus, est-ce que Meteor est utilisé en entreprise (je me doute bien que toutes ne l’utilisent pas, mais est-ce un framework répandu ?) ?

Merci d’avance à tous !


#2

Je vais tenter en quelques lignes de fournir quelques aces de réflexion.

Me concernant, MeteorJS j’ai eu beaucoup de mal à comprendre son fonctionnement, si pour ta part cela a été aisé et cela semble le cas étant donnée qu’en quelques heures tu es arrivé à pondre une app c’est tant mieux.

Néanmoins, il faut comprendre son positionnement, il est essentiellement (voire exclusivement car il prend tout son sens) lors de la réalisation d’application collaborative. L’idée qu’une ressource soit binder via une websocket jusqu’à la DB de façon transparente permet, en effet, un gain syntaxique énorme.

Du coup, pour répondre à la dernière question si on accepte ma théorie on se rend compte que finalement Meteor s’adresse à une niche certes pas minuscule car les applications collaboratives il y a de quoi faire!

Du coup, je dirais que c’est véritablement le meilleur dans son domaine et que si tu l’apprécies franchement fonce car c’est vraiment une valeur ajouté un framework très haut niveau à la pointe des derniers standards web.


#3

Tout comme @Echyzen
je pense que Meteor est puissant et adapté pour du temps réel, du collaboratif.
mais j’ai eu du mal a rentrer dedans. pas tant en backend,
mais surtout en frontend, où tout le HTML est compilé dans du JS.

J’ai mis un temps incroyable à essayer de modifier le thème visuel du template d’un package AtmosphereJS (from default to Material Design )
alors que je l’aurai fait en quelques heures avec du bon vieux source HTML. Quite à ce qu’il soit ensuite compilé dans la phase de build.

Bref, après avoir été échaudé,
pour mon prochain projet Meteor, je l’utiliserai uniquement en backend et utiliserai React ou Angular2 en front qui sont officiellement compatibles avec DDP.


#4

@Echyzen, @Joris, merci pour vos précieux retours !

Je vais donc continuer de creuser un peu avec Meteor et je verrai le rendu lors de notre Hackathon de fin avril ce que j’ai pu faire avec (groupe de 2, le second étant également en train de se former dessus).

Vous avez abordé React et Angular2 et ça tombe bien, je voudrais votre avis sur la question. De nombreux développeurs ex-collègues que je connais et qui bossent pour de grosses boîtes (Dailymotion, Bla Bla Car, etc) ne jurent que par React. Du coup, c’est lui que j’aurais voulu apprendre à la place d’Angular, bien que j’ai compris qu’ils ne jouent pas totalement dans la même cour. Avec la sortie d’Angular 2 en fin d’année dernière, AngularJS a-t-il encore de beaux jours devant lui où est-ce que je ferais mieux de me réorienter vers la version 2 ou React une fois sorti de ma formation (j’aurai un stage de 3 à 6 mois à effectuer ensuite, est-ce que choisir une boîte qui bosse avec Angular 2 ou React devrait me rebuter ?) ?


#5

Joker ! :D

J’ai moi aussi du mal a trancher un choix.
Mais clairement React prend le lead et Angular (v2) est devenu challenger.

La communauté React est très réactive (huhuhu), gros ecosystème de librairies.
Projet super-starred sur Github (mais bon les trends gonflent et dégonflent)
Facebook pratique la dogfood, contrairement à Google.
JSX pour React est très pratique mais faut dépasser le cap psyshco du "HTML in JS"
TypeScript dans Angular apporte au dev web les avantage du typage statique de Java / C#
(React est aussi codable en TypeScript)

React Native (pour le mobile) est très plébiscité et présente plus d’intéret que Cordova je trouve (pas de webview, que du JSCore)
NativeScript est l’équivalent React Native pour Angular. Son succès va dépendre de celui de Angular.

Angular est un framework intégré,

React une librairie et il faut le brancher a diverses libs pour un en faire un framework.
C’est la logique inverse à Angular.
mais vu que la nécessité d’assemblage en saoule plus d’un, je doute pas qu’il y ait des bons boilterplates tout prêt.

Voila sinon entre AngularJS (1.x) et Angular (2.x à 4.x), adopte direct Angular : repensé, moderne.
Après bon ya des tonnes de projet Legacy en AngularJS qui migreront pas sur la v2.

Mon avis reste à relativiser.
Un site intéressant qui affiche les trends des stacks web :
https://risingstars2016.js.org/#all


#6

Merci pour ton feedback a propos de Dailymotion, Blabla Car …
Netflix utilise aussi React et encore d’autres


#7

Bonjour,

En ce qui concerne Meteor, je ne peux guère donner mon avis. Quant à Angular vs React, j’ai plus d’expérience.

La principale différence entre les deux est le paradigme utilisé.

Angular est plus proche des logiques JEE et gros frameworks avec injection de dépendance « runtime », « magie » des retrospections, etc. Avec un paradigme très composant et un état local dans le composant.

React est plus proche du paradigme fonctionnel où le rendu est plus proche d’un ensemble de templates avec un état global (vérité ou source unique du modèle). Les composants et états locaux sont de moins en moins poussé par React, bien que ce soit possible de le faire.

Pour avoir tester les deux, je préfère React parce qu’il est plus proche de ma façon de penser, fonctionnel avec « une entrée et une sortie ». Cependant, Angular plait beaucoup, notamment aux développeurs venant de JEE car la logique est beaucoup plus proche. C’est un peu caricatural, mais c’est mon ressenti personnel et de ce que j’entends autour de moi.

Bon choix,
Gaëtan


#8

Pour ma part, j’ai trouvé que Meteor était le plus lourd des frameworks JavaScript Back-end que j’ai pu utiliser. Je pense également qu’il excelle pour la réalisation de grosses applications collaboratives et qu’il n’a pas de sens pour le développement de sites web réactifs ou de petite applications web.

Le site réalisé avec Meteor que je préfère est CodeFights.

Meteor est une stack à part de l’éco-système Node.js même s’il repose dessus. Il embarque une DB et tout un éco-système perso qu’il faut apprendre même si on connait déjà bien celui de Node.js et NPM.

En ce qui concerne la capacité et la philosophie de Meteor à faire de l’isomorphisme, on peut la retrouver sur des frameworks moins lourds et plus abordables pour une personne ou un petit groupe de développeurs comme par exemple Total.jsou Sails.js

En ce qui concerne Angular 2 vs React, ainsi que Angular 1 : bien entendu il ne joue pas dans la même cour.

Si tu es familier à Angular et que tu souhaites toute la puissance (plus de puissance même) qu’un React, je te conseil, sans hésiter, de te pencher sur Vue.js qui est un réel challenger pour React.

Il dispose également d’un DOM virtuel et permet dont tout comme React de créer des apps isomorphiques avec du SSR côté serveur.

Il a possède également du routage (Vue Router), un manager d’état (Vuex vs Redux), un environnement pour réalisation mobile (Weex vs React Native) et même un mini framework JS déjà pré-fait pour du SSR (Nuxt.js vs Next.js).

À titre personnel, au quotidien, j’utilise le framework JavaScript serveur NodeAtlas pour la réalisation de site vitrine, de blog, d’applications web ou même de sites statiques (doc hébergées sur GitHub), etc. Il est léger et évolutif, exactement comme Vue.js.

La philosophie c’est de partir petit et de grandir au fur et à mesure que le projet se complexifie et non pas d’installer un chantier naval pour construire une barque…

J’utilise pour mes webs/apps réactives isomorphiques le couple Vue / NodeAtlas avec du rendu côté serveur et de l’hydratation cliente pour prendre le relai. Concrètement quand tu demandes une URL, la page est générée côté serveur tel qu’elle le serait côté client, puis le client prend le relai à partir de cette page et te laisse naviguer sur tout le site avec l’API History (pas de rechargement, pas d’apel serveur). Cela permet au site d’être indexable par les moteurs de recherche et de naviger en « single web page ».

Le petit plus est que leur doc existe en FR.

Un exemple de projet Vue + NodeAtlas est d’ailleurs facilement accessible avec la commande node-atlas --create hello-vue.

Pressé d’avoir ton retour plus profond sur Meteor après ton Hackathon !


#9

Merci pour ta réponse très complète @Haeresis ! Un de nos formateurs ne nous dit également que du bien de Vue.js et j’en ai d’ailleurs reparlé avec lui aujourd’hui.

Je vais regarder tout ce que tu m’as envoyé, merci beaucoup !

Pour ce qui est de Meteor, nos formateurs ne sont pas trop pour qu’on l’utilise, mais ne nous l’interdisent pas. selon eux, c’est casse gueule, mais ça me permettrait de tester quelque chose que je ne verrai pas en formation.

Quoiqu’il en soit, je vous tiens au courant !

Merci encore à tous pour toutes vos réponses, on ne peut plus complètes !


#10

Du coup je reviens vers vous un peu tard !

Finalement, les groupes ont été choisis aléatoirement et il ne m’a donc pas été possible de bosser sur Meteor, puisque j’ai été en groupe avec quelqu’un qui n’avait pas préalablement bossé sur cette techno.

Mais c’est pas grave, on a quand même gagné un prix (meilleur design), le 2nd consécutif pour ma part :)

Merci à tous pour vos réponses !


#11

Pas que je sache mais l’idée est extrêmement innovante c’est eux qui ont initié le JavaScript isomorphique utilisé aujourd’hui pour construire des applications (notamment avec React) qui partagent du code entre le frontend et le backend et ceci complètement en JavaScript.

Pourquoi je n’utilise pas Meteor? Plusieurs raisons:

  1. C’est le plus point le plus important, meteor te fournis un framework full stack et présente des hook pour te cabler dans son moteur. Les développeurs ont fait des choix, il n’y a pas une infinité de hook et fatalement des contraintes issues de ses choix. Tu travailles avec du code existant qui en dehors des “hook” restent opaque. C’est la même problematique avec Angular (mais moins avec Vue et beaucoup mons avec React).

  2. Je n’ai pas le temps de creuser pour savoir si il a toute les features dont j’ai besoin pour un projet.

Pour comparer les logiciels entre eux, c’est plus facile de le faire entre les logiciels du même type. Comparer Meteor, React, Angular ou Vue c’est illégal sans expliquer ce qu’il sont. Donc Meteor est un framework full stack isomorphique. Il faut regarder ce qui se fait ailleurs et là on trouve des choses mais c’est beaucoup moins mature.

Pour conclure je dirait que si tu veux faire une startup que tu as une idée clair, vazy fonce utilise le Meteor pour présenter ton idée à tes investisseurs. Si tu veux pas faire de startup ou que tu as pas d’idée, je te conseil soit d’apprendre un autre framework full stack isomorphic ou creuser pour comprendre comment fonctionne Meteor dans l’objectif de contribuer au projet. Ça peux être hyper long, si tu as pas la méthode pour bien faire. Mais en gros le plus simple est de faire un recueil des besoins sur Meteor: de quoi se plaignent les utilisateurs sur StackOverflow? Quelles questions reviennent souvent sur la liste de diffusion? Ou tout simplement lire le bugtracker et la roadmap. Je pense que tu peux mieux apprécier ce que tu lis, si tu l’utilise. Fait toi un projet qui n’est pas forcement innovant (blog, forum, mediacenter, whatever) pour tester tes idées.


#12

Salut salut !

Je déterre un peu le post mais je souhaiterais partager mon expérience. J’ai utilisé météor pendant 4 mois (septembre à décembre 2017), en startup, pour la conception d’un back et d’un front.
J’ai beaucoup aimé travailler avec ce framework, rapide, relativement simple à maîtriser (d’autant plus qu’il y a de plus en plus de tutoriels/documentations).
De nombreux packages sont disponibles avec Atsmoshpere.

Il me semble également qu’il faille écrire moins de ligne avec meteor qu’avec Angular pour un résultat indentique.

Enfin bref, je recommande !
Je pense d’ailleurs l’utiliser pour la conception d’un site web, prochainement.

Bien à vous !


#13

C’est un excellent framework, très bien complété par des modules comme astronomy - j’ai quitté ce stack il y a deux ans et je n’ai pas trouvé mieux (plus simple et plus efficace). La limite c’est l’enfermement dans un framework. Je travaille avec Apollo aujourd’hui, produit par la même équipe : j’ai l’impression qu’ils sont entrain de réinventer un meteor mais plus ouvert, qui donne une plus grande sensation de contrôle (et qui est aussi plus difficile à maîtriser). Quand à apprendre Angular, j’avoue que…