
Ask HN: Moving off PHP with Meteor?  What are the issues? - robomartin
Reading-up on Meteor and related technologies I have been wondering if this concept of JavaScript everywhere might be the right way to move away from PHP.  I personally like the idea of a single language owning both sides of the conversation.  With frameworks like Backbone.js this seems even more interesting.<p>I have not done a lot of JavaScript other than the requisite level of UI stuff with JS and JQuery.  I've been interested in Node.js for a while.  Meteor is inspiring me to want to dive deeper into that pool and see what it can do.  I have an upcoming project that was going to go the route of PHP + MySQL + JQuery.  Now I am considering Meteor + MongoDB.<p>I'd like to hear form those with more experience and insight on the realities of making such a switch.  How scalable is something like Meteor?  Let's say you start hitting millions of users.  What happens then?  Does Meteor place a greater load on your servers in order to support all of its flexibility and "slickness"?  Could something really large, like a Facebook, rely on the Meteor approach or is it better suited for small to medium projects?<p>I love the idea of ditching PHP.  I just want to do it for the right reasons.
======
manuscreationis
Let Meteor mature until you just ship. At the very least, until the security
issues are addressed.

But in the meantime, learn Node, learn Ruby, learn something else.

Don't just sit and spin because the shiniest new thing isn't perfect yet.
Experiment.

------
tgriesser
If you've not done a lot of javascript, then your first priority before
considering doing a framework like node.js should be to learn javascript,
correctly.

Read "Javascript: The Good Parts" and then continue on to any of the
recommended books/readings from there (Javascript Patterns, High Performance
Javascript).

jQuery is great for DOM manipulation and XHR, but it hides a lot of the
implementation details from the developer, and it'll be frustrating if you try
to do anything advanced in javascript without fully appreciating the language.

So, you should be able to explain and fully comprehend:

    
    
      - Variable Scope
      - Object.prototype
      - .call, .apply, and .bind
      - Closures/Lexical Scope
      - Anonymous functions
      - Function Hoisting
    

Once you get down most of that, then you can consider using javascript as a
primary language. Otherwise you'll be very frustrated. I'd personally
recommend getting comfortable with something like jQuery + backbone.js with
your current stack before diving into 100% javascript.

Also, don't worry much about scale, worry more about building something and
then identifying the bottlenecks later to scale.

~~~
robomartin
I probably have dozens of languages under my belt (not keeping count) so
learning a new language isn't a problem. As they say: "'been there, 'done
that".

In other words, I am not the kind that will stay away from a product just
because the language is new to me or I don't have a ton of experience using
it. In the end, if you've been around programming for a while there really
aren't very many new concepts that one couldn't pick-up quickly enough.

The first time I had to implement a genetic solver in Objective-C I was new to
the language. Sure, it took a little longer to optimize it, but I knew what I
had to do and it was just a matter of fitting it to the language. No big deal.
At least that's how I think, valid or not.

Good books are the key. I've had "Javascript: The Good Parts" on my list for a
while. Pulling the trigger today. I did go through the Sitepoint books about a
year ago.

In thinking about it it seems like the most sensible bit of advice is to let
Meteor mature before jumping in. I think I am going to stick with the existing
game-plan until then. There will be plenty of front-end
Javascript/JQuery/Backbone to write. This should pave the way to considering
Meteor later on.

------
joshontheweb
Meteor is not ready for prime time as said by the creators themselves. In the
mean time learn Node.js / Backone.js. Then you will be in a good place to
embrace something like Meteor once it's feasible.

