I’ve recently tried to pick up Meteor, but just as with many of the similar technologies I’m having trouble understanding the concept behind it.
First a bit of background info: I’m a developer, but not a web developer. However, I learnt the basics of the LAMP stack a few years ago, and found it to be very intuitive and, well, logical. I’ve since had a few smaller web development projects (Using LAMP), but nothing too big.
Now, one of the most often cited reasons I read for switching from LAMP to something like MEAN, Meteor, … is easier and faster prototyping; And I’d have to agree, coding something from scratch in LAMP (Or even when using a framework such as CodeIgniter or CakePHP) takes an absolute eternity.
However, there are some basics behind this, I guess old-school way of thinking, that I like - Namely, the structure behind everything.
You have a client requesting something from the server through a well-designed (or not) API, some logic runs on the server, updates the state of the database (or not), sends back a result, which could either be plain data or fully fleshed out HTML. Boom, simple.
Recently I have tried to start understanding all this new, more trendy stuff - Node, Mongo, React, Angular, etc etc.
I do get a very small part of it - For example, I enjoyed using Angular/React on the frontend to do all the templating etc, and then just request data from the server and replace it somewhere in the app.
But I have to admit: With everything else, ESPECIALLY the (js-in-the-)backend-part I’m utterly lost. I just… don’t get it. It feels… like it has no structure, somehow. You write some code, and suddenly that code is… on the server? the client? both? Then update some databases… But wait, it looks like the client just updated the database by itself (And also has access to the db in general)? What? And while I get the part where you’d want to put more of the work on the client than the server, how comes the client seems to suddenly be executing logic, instead of simple rest requests? And what even is Mongo, why I would I want to not have a structure in my database, and why would I not want the relational cross-referencing part?
As you can probably see, I am very confused. But reading articles or example projects online did not help a lot - Because especially most of the example projects are literally completely client-driven, which is exactly the part confusing me the most.
Would anyone mind trying to explain some of the above to me? I’d really appreciate it.
Thanks a lot!