This post is intended for those who, like me, have doubts, questions, or
wish to understand few things about meteor that are written nowhere.
This is just a sincere testimonial, which I hope will help to get
doubts out of minds.
I met meteor at v1.0.
I had never build any web app at this time.
So I started picking up tutos here and there, but what really got me off the ground
was the fabulous Discovermeteor (@sacha/@tmeasday) book:
- Just the right level of information.
I mean, when you’re a beginner, the first thing that kills you is
the huge mountain of information that comes at you, and, as a beginner,
you don’t have the perspective to sort out what is important from what is
Discovermeteor literally takes you by the hand to get you building web app,
So I build 3 applications that ran for few years, for tens of thousands
of users, without any problems.
At that time, my only big problem, not sufficiently covered by discovermeteor,
was deployment. I had a bit of trouble with mup and mupX, but I managed that.
After several years without coding, I’m back to work on some new projects.
Naturally, I turn to meteor.
At the time of this writing, the current version is v1.10.
The first thing I did is deploy simple-todos, the default application in meteor.
Indeed, the deployment is what caused me problems when I first used meteor
several years ago.
Unbelievable: thanks to meteor forum, and especially with the help of @cloudspider,
I succeed to deploy application in less than 30min, on Heroku + Atlas
(understanding Heroku and Atlas included in this 30min ).
Simple and magical… just like meteor !
So I was very confident for the further building of my application… Error !!!
Starting with meteor doc, I discovered a lot of new features that completely
- React, Vue, Angular, Svelte where I only knew Blaze in v1.0
- Imports folder to manually manage the files load,
where everything was magical in v1.0
- Import/export, let etc… where you were just coding in v1.0
- npm modules where Atmosphere was just too cool in v1.0
- Appolo, etc…
All these things froze my minds. I was in the dark.
Understanding nothing. Full of doubt.
- Why all this, when it worked so well with v1.0?
- Why so many different elements, for the same purpose: simply build a web app!
I already have to solve several questions for my application
(which design, UI, UX? Which datas? Which functions?..),
but now, I also have to be interested in questions like:
- Is it better to use React or Vue or Angular…Or stay on Blaze?
- How to use this new imports folder
(and surcharging my attention with hundreds of import lines) ?
- Should I be interested in Appolo or stay with DDP
and what comes by default in meteor ?
Not to mention flow-router-extra which replaces flow-router…which itself replaces iron-router.
In short, hundreds of new questions (that have nothing to do with my application),
for which I didn’t have time nor want to face. That’s why I choose/trust a framework :
to delegate these unwanted questions.
So I put my application aside and I studied these different tracks:
- I read everything that was available on React, Vue, Svelte and Angular…
And comparisons between them!
- I made a few tutos with each of them
- I played with import and imports directory.
- I played with flow-router-extra
- I used npm modules
- I discovered Appolo (theoretically, no tuto realized)
In short, it tooks me 15 days to pull out my hair understanding “the why”
of each new element, when meteor’s v1.0 was just magic to me.
My understanding is as follow:
Apart from political and commercial considerations,
it is mainly a question of NEEDS and RESOURCES (time, people, money…).
These needs and resources evolve according to application life cycle.
AT THE BEGINNING, “birth of the application” :
I have few time and resources for the application, and my needs are just to
put my app online for few users, as soon as possible !
So I need simplicity and all users know that my app is in its “infancy”:
==> they are ready to wait 10 seconds until ALL files/datas are loaded.
==> I don’t have to bother with imports or with questions about
optimizing the rendering of my UI.
AT THE EXTREME OPPOSITE, when my application is consumed
by millions/billions of users,
I have huge resources (employee, money, etc…) like facebook for example,
and I can go out and get more complex tools, to save me load time at startup, for example.
So, all this comes down to the application’s life stage:
- At each stage, needs evolve and resources to implement must evolve too.
That’s why, at the beginning of my projects, I choose to keep Blaze + DDP,
without shooting my head with imports, because I need simplicity and efficiency
to quickly launch my application.
And when my application will succeed, as Facebook for example, well I’ll use
React because I’ll probably have the same problems as Facebook…but also the
same resources (financial, human, etc…).
Because for me, using react for a “small” application is like building a rocket,
when one kite is enough.
So, what is meteor ?
For me, meteor is a scalable framework that allows to meet the needs of
an application, depending on its life’s stage.
But much more than a framework, meteor is a community.
A community that has gone through highs and lows,
that has been under tremendous strain, but that is still here and moving forward.
Realizing that, I am much more confident in my choices and in the community.
So for all this confidence, I have only one word to say to the meteor community:
THANK YOU - MERCI - GRACIAS - DANKE - OBRIGADO - GRAZIE - СПАСИБО - ありがとうございます - 谢谢你啊 - شكرا