

What is Meteor.js? - lolwhat
http://joshowens.me/what-is-meteor-js/

======
rezistik
A couple of things really bother me about Meteor.js.

One, the Atomosphere package manager site is insanely slow and buggy.
Everything feels like it takes forever to render or rerender. Opening the side
menu is a jaggy experience.

If performance is that terrible on a super simple list of packages how
terrible is it on an actually reactive site?

Two, I've never seen an article on meteor that wasn't also an advertisement.
They all list how easy it is to start a project or add a package as the main
draw. That and constant connectivity/"reactive" application structure.

It just feels too orchestrated.

~~~
m52go
Is it possible the site is just a little over-designed? I'm not sure it's fair
to judge an entire full-stack framework over the front-end of a single site.

I've visited Atmosphere from time to time and while performance wasn't as
optimal as it could be with a less sophisticated design, it was never what I
would call 'jaggy'.

~~~
rezistik
Usually I would agree, but this is a website built by the team behind the
framework. When you're making a tool for people to use you really need to put
your best foot forward.

~~~
m52go
Atmosphere is built by Percolate Studio. I know Tom Coleman works there, but
as far as I know, he's not a part of the MDG.

He should be given how good Iron Router is, but that's another issue :)

~~~
joshowens
You are correct, MDG has nothing to do with Atmosphere.

------
matthewmacleod
Please bear in mind while reading that this is the same author as the rather
controversial 'Why Meteor will kill Ruby on Rails' from last year (HN
discussion:
[https://news.ycombinator.com/item?id=6642893](https://news.ycombinator.com/item?id=6642893))

I'll repeat my thoughts from back then – Meteor is a great experiment that
tries out some interesting ideas for what web apps might look like in the
future.

I maintain that it's absolutely not production-ready, or even very good. I
don't want to store data in Mongo. I don't want Cordova baked-in (wtf is that
about anyway?). But we absolutely need people playing with this sort of
technology. I just wish the hype would die down a bit…

~~~
ryanSrich
I don't even see how one could compare Rails and Meteor. They are intended to
solve two very different web development problems.

Discover Meteor, the most popular book about Meteor, even uses Middleman for
their blog and website - because using Meteor for something like a blog or
information based site just makes no sense at all.

~~~
lolwhat
"..or information based site.."

The entire internet is information :P but I know what you're trying to say

------
Rezo
I'm surprised at all the negativity. Advocating C++/Java instead of
Meteor/Node.js makes about as much sense in my opinion as comparing 18-wheeler
trucks to Smart cars, and I wonder if the people who do so have really worked
with the latter or are just dismissing it out of hand. The right tool for the
job and all that, and you want your toolbox to be comprehensive, right? No
serious craftsman ever said "Wrenches? Oh, we're a strictly pliers-only shop".

At my company, we have critical API services with SLA's that will cost us $$$
if broken. We develop on the JVM with Scala, the number of currently open bugs
can be counted on one hand, with millions of daily users. But some of the
dashboards for monitoring the service are Node.js. Want a new fancy gauge on
that board that measures X by interacting with API Y? There's probably a NPM
module for that, so give me 30 minutes, OK? I see that the web frontend
serving is increasingly being done in Node as well, because it's a good fit
for that environment.

Don't get married to your platform! Try many things, and figure out where on
the spectrum the tools fit and use them where appropriate. I've done many
years of C++ server and embedded development, but working with Meteor just
gives me the biggest dumb grin. It's fun!

Node is the fastest growing ecosystem today, and it's not because everyone
using it are idiots. Meteor takes that energy and kicks the out-of-box
productivity up to 11. Java/Scala/Go/C++ are and will continue to be the
workhorses of the Internet when performance and stability are of the utmost
importance. So, no matter where on the platform spectrum you're currently on,
go check out what's happening at the other end!

------
zigo3
An example of a sophisticated meteor app I've built to test scalability
[http://www.qckt.me](http://www.qckt.me). I've noticed some performance issues
(to be fair it is running on meteor's free hosting service, however they don't
set resource limits or anything like that) maybe I'll share some stats I've
been collecting in the future.

Like every web framework, I've run into problems. The simplicity of the
server-client reactivity is keeping me in. Its a good idea and the got the
funding to keep it going.

~~~
joshowens
Meteor.com is a horrible hosting platform, try
[http://modulus.io](http://modulus.io)

------
forrestthewoods
As someone who doesn't know what Meteor.js is this doesn't actually tell me
what it is, what it can do, or what it can be used for. Now to be fair I'm not
a webdev so I don't much about most of these technologies nor am I really the
target audience. But still. I feel like if your article is literally called
"What is X" it should do a better job telling you what X is.

~~~
delluminatus
Meteor.js is basically Ruby on Rails for Node.js and MongoDB, plus a
Javascript library for view-model binding. It's a monolithic framework for
building database-backed single-page applications in 100% Javascript.

~~~
gaius
That doesn't answer the question.

~~~
JeremyMorgan
I thought it was answered pretty succinctly.

~~~
gaius
Really? Alanning says the opposite. So it's not clear at all.

------
TimJRobinson
Has anyone here built a large, production grade app with meteor? Something
that makes money and is more than just a tech demo?

I see a lot of people playing around with it and building tech demo's but very
few examples of it being used for anything more than that.

------
applecore
It's actually quite pleasant to compose your application out lots of small
modules, libraries, and frameworks. It's not akin to building your own
platform, since all the pieces are there.

------
alexivanovs
It's really, really good. Even if you're a web designer, building stuff is
really quick and effective. I recommend checking out Differntial's GitHub page
[0] as they provide a nice boilerplate and also a cute blog that you can setup
in two minutes, gives you an idea of the very basics.

Either way, Atmosphere [1] has thousands of packages to choose from, just use
the search function. Good alternative is Fastosphere. [2] Many people have
said that if you write a lot of code with Meteor, you're doing something
wrong.

0\. [https://github.com/Differential](https://github.com/Differential)

1\. [https://atmospherejs.com/](https://atmospherejs.com/)

2\. [http://fastosphere.meteor.com/](http://fastosphere.meteor.com/)

 _I 'm very new to this myself, and I know that it gets tougher (duh, it's
JavaScript!) after a while, but I feel right about giving it some praise!_

------
methehack
Haters gotta hate.

The framework is brilliant from a productivity and sheer enjoyment
perspective. I don't know if it will scale; you don't either. My estimation,
though, is that the team building it is very clever and super-aware of what
they need to do to make the framework succeed from a scaling perspective.

A lot of the comments here are spitballs from the back row of the classroom.
They are willfully uninformed and unfair. It is hard to imagine these
commenters are paying much attention during the learning portion of class.

So go forth, meteor team. You're fighting a great fight here. Ignore the
naysayers and do the great work you know you can do. Your best way forward is
to prove the haters wrong. Maybe a few will even become lovers, though I
wouldn't count on it. If you build it, they may come. [update to spell
'perspective' correctly. Ugh]

~~~
joshowens
I love this comment, great job!

Also, people are scaling it, we just aren't hearing about it much. I am
working to correct that, these trials of scaling need to be more public right
now.

~~~
niallobrien
Scaling Meteor is my biggest concern right now as I contemplate diving any
deeper with it. I'm well aware of Mongo's oplog but the lack of Mongo
sharding, the sticky session requirement, server resource consumption (RAM
required per client), lack of proper offline support (last write wins) and
sheer devops work required to scale is off-putting. Hopefully tomorrow's
release of the remaining Bulletproof Meteor content will ease my worries. But
I cannot shake the feeling that in terms of cost, something like Firebase
would work out to be much more cost efficient. Also, the whole ecosystem of
wrappers is plain silly. It feels like the MDG & the community are just
reinventing the wheel time & time again. Oh we got Cordova support? What's
that exactly other than some CLI tools? Of course any web tech should support
Cordova, that's what it's built for. The Ionic Framewoek are light years ahead
in this regard.

~~~
joshowens
Niall,

I sense that you don't really want an answer to this, you have already made up
your mind...

Why is the sticky session requirement a huge devops concern?

From what I understand Mongo sharding shouldn't be hard to implement, but I
haven't tried it myself. I spoke to Abigail Watson about it, and she said her
first tests with it were promising.

RAM is always a precious resource, so I understand being concerned about it.
Are you seeing some absurd usage per client? I am seeing about 350mb processes
to handle around 75 connected clients.

Is there a framework or platform that gets the 'last write wins' correct? I
seriously doubt that because I doubt you can apply a blanket set of rules for
offline support.

I don't think scaling is off-putting, you just need a mongo cluster and then
you can add oplog enabled Meteor processes to your pool. I don't see how this
is any different than something like Java or Ruby...

The idea of adding Cordova may seem simple or small, but MDG putting it in led
me to building my very first mobile app. Prior to trying Cordova and Meteor
integration, I usually advised clients it would be easier to just build a
responsive design instead of trying to build a native app.

I am sure if you looked at the commits around adding Cordova, it was a little
more then just glueing together some CLI tools.

That being said, if Ionic floats your boat, go enjoy it :)

------
robotic
I think Meteor will need the big app to get mindshare like RoR got with
Twitter.

------
tonyjstark
I programmed 2 small apps now with Meteor and my learning is that if you want
to prototype something fast you can use it but if you want to have something
polished afterwards then don't expect to save time by using it instead of
other tools. It has its quirks...

~~~
joshowens
What would you suggested or advocate instead then?

I have helped publish a ton of polished Meteor apps.

~~~
lolwhat
could you link a few? i'm somewhat interested :)

------
rglover
If anyone is curious about what it looks like to build with Meteor, I've been
working on a site that shows off building day-to-day features with the
platform: [http://themeteorchef.com/](http://themeteorchef.com/).

------
dayvid
Meteor.js is great, but the instant you try to do something complicated (or
simple and not covered in the often repetitive documentation), you need to be
a JS expert or spend a frustrating amount of time looking for a solution.

It's worth trying before you dive too deep in.

------
sarciszewski
"What is Meteor.js?" Yet another framework that encourages developers to pipe
into their shell. Until this changes, I will never give it a second look.

[http://curlpipesh.tumblr.com/](http://curlpipesh.tumblr.com/)

~~~
aharris88
Could you expand on what piping into your shell is and why it's bad?

~~~
sarciszewski
[https://news.ycombinator.com/item?id=6650987](https://news.ycombinator.com/item?id=6650987)

~~~
justinsb
(Developer @ Meteor). The install script is wrapped in a function, which
avoids the problem in the article you linked to.

~~~
sarciszewski
You're still piping untrusted code to sh. Please implement asymmetric
cryptographic signature verification (i.e. PGP).

~~~
justinsb
I'm not sure what PGP would buy us over everything going over https from sites
under Meteor's control? Cryptographic verification is great when you want to
deliver the bulk of the content over http, or via untrusted mirrors, but we're
not doing that.

However, if you want greater assurance, Meteor is open source, and easy to run
from a git checkout. That seems to solve even more problems than PGP would,
though then you should worry about whether you should compile nodejs yourself,
and eventually you start eyeing your CPU suspiciously... :-)

(BTW, I think this is why just linking to a HN thread is tricky... it's
difficult to know which of the many viewpoints on any thread you share!)

~~~
FooBarWidget
It buys you almost nothing. The only thing it buys you is avoidance of knee-
jerk reactions from certain people, who most likely never were interested in
Meteor in the first place.

~~~
sarciszewski
Instead of taking the troll bait here, I'll just link to this excellent blog
post by Anthony Ferrara that sums up my position well.

[http://blog.ircmaxell.com/2014/10/fud-and-flames-and-
trolls-...](http://blog.ircmaxell.com/2014/10/fud-and-flames-and-trolls-oh-
my.html)

> Those That Have Passion

------
marbemac
I've built several apps with Meteor, and so far it's been fantastic.
Development is lightning fast, the interface is snappy enough, and it's easy
to maintain. My latest Meteor app is online at
[http://stoplight.io](http://stoplight.io).

------
marknow
I'm a webdev at an agency, and Meteor looks great from a prototyping
perspective. Javascript is already a key component of much of our work, so
this framework could help us roll out concepts much faster than we're doing
now... looking forward to learning more about Meteor!

~~~
tedmiston
What you've described is a lot of what Differential[0] does.

0: [http://differential.com/](http://differential.com/)

------
upside
There's a problem I have with frameworks in general. They tend to streamline
your thinking too, which is fine if you don't care about making something
original or can't see how developing with new approaches can impact the
outcome of your product.

~~~
lolwhat
The motivation people have for creating frameworks to begin with is because of
bad practices by developers. By not 'making something original' you probably
also avoid doing things incorrectly.

------
joe_momma
Why do they keep announcing Meteor.js as if it's something new. It came out 2
years ago.

Oh I know why, because it has major funding and they have some marketing blitz
going on right now beating into people's mind that Meteor is great/grand.

~~~
myrryr
Nope, it is because they have announced the 1.0 release. You can build stuff
in it without having the platform change from under you now.

2 years ago it was all alpha / betas.

------
z3t4
The web page looks like a marketing scam ... At least show me a presentation
or developing video.

------
rags_123
yay for including cordova.

------
pluma
tl;dr: buzzwords

------
curiously
do you think Meteor.js will ever use PostgreSQL 9.4?

~~~
joshowens
Yes. It is being worked on by the core team.

~~~
curiously
wow. where can I find this information?

This would be a huge selling feature for me to jump on meteor.js again. Would
love to have SQL in meteor.js but again the mysterious "DDP" and it's
reliability and ability to scale still remains doubtful.

