9 ms·
What is Meteor.js?
- forrestthewoods 12y agoAs 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.
- rezistik 12y agoThat's honestly just how the Meteor.js blog posts are. Google around a bit and you'll find two dozen articles stating Meteor.js is the best thing since sliced bread, beer, marijuana or Ruby on Rails. It will completely revolutionize your face, twice over! But they'll never explain what it is, or how it's solving hard problems for them. But hey look how easy it is to add social auth!
- MrBuddyCasino 12y agoI know a guy who hooked up a Nunchuck to an Arduino, blasted the x/y/z data into MongoDB and used Meteor.js just to show the coordinates on a website, in realtime. He is also the kind of guy who likes to use Node.js and thinks MongoDB "is a database for when you need scalability". Though I must say he hacked it together rather quickly.
- rezistik 12y agoI like to use NodeJS too, JavaScript is a great misunderstood language that will handle the vast majority of use cases in the world of CRUD. Honestly, there is something to be said for hacking something together quickly. Prototyping is a great way to explore ideas and find the interesting problems nested in the problem you're trying to solve. I just don't like the evangelism of Meteor because I've never seen anything really explaining it's value.
- MrBuddyCasino 12y agoSure it will handle CRUD just fine, like PHP did for all those years, but thats a low standard to measure yourself against. ECMAScript 6 does look kinda decent, but thats the future, not the present. Also, why use it (Node.js) on the server? Its not even that fast, 21th on the techempower Json benchmark, which should be its strongest discipline (all I/O, no computation, emitting Json).
- kaoD 12y ago> Also, why use it (Node.js) on the server? Its not even that fast Not only it's still reasonably fast (21st is great, it's mostly surpassed only by C and Java), but it also has a much better ecosystem than most platforms (especially C and Java), it's faster to develop in (especially C and Java) and shares language with client side. Sharing a common codebase is very important for me. I found in most of my web projects I'm reusing code between server and client. Ever worked with code that does (or should do) the same thing in different codebases? It's just a nightmare. Having the same React code be rendered in the server (fast, SEO-friendly) and in the client (offloads resources off the server) is just too good. NodeJS looks like a decent compromise to me, isn't it?
- MrBuddyCasino 12y agoI agree it is reasonably fast. I don't agree its ecosystem is better than Javas, neither in size nor in quality. Same language is an advantage, so is development speed, I agree. But: C++, Java, Lua, Ur, Go, Ruby and Erlang are all faster than JS, and especially Ruby is a much nicer language. I don't hate Node.js, it has its sweet spots and the tooling feels nice and lightweight, but its not (yet) a very good general purpose tool. Its just not yet on the sane part of the hype curve, and I don't want to be the guy who has to maintain that callback hell 5 years from now. But ECMAScript 6 is definitely moving into the right direction.
- kaoD 12y ago> C++, Java, Lua, Ur, Go, Ruby and Erlang are all faster than JS Wrong column. You're looking at languages, but a language does not affect performance: its platform does. E.g., the only Ruby benchmark which is faster than Node is actually JRuby, i.e. Java. > and especially Ruby is a much nicer language That's a matter of preference. I don't like Ruby myself (nor most languages encouraging classes as their primary constructs). You shouldn't evaluate languages, but platforms. > but its not (yet) a very good general purpose tool Why? I mean, no tool is a very good general purpose tool, but what makes NodeJS worse as a tool than, say, Ruby? > I don't want to be the guy who has to maintain that callback hell 5 years from now. Neither do I. That's why I don't use JavaScript for anything else than a target language. You seem to like ES6, why don't you use it and transpile it to plain JS? Platforms, not languages.
- joshowens 12y agoWe are lucky to have you around to correct us all in the HackerNews comments! Where would life be without this generic comment?!?
- delluminatus 12y agoMeteor.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 12y agoThat doesn't answer the question.
- JeremyMorgan 12y agoI thought it was answered pretty succinctly.
- delluminatus 12y agoNot if you're unfamiliar with Ruby on Rails, I guess. It's a little tricky to characterize because of how much stuff it contains. Basically it has a number of different components, that work together to make a structured environment for developing Web applications. Some of the prominent features include: * Web server that runs on Node.js * MongoDB integration * Custom build tools * Package manager (supports installing JS packages for either client-side code, server-side code, or both). * SignalR-style remote function execution (call functions on the server from the client, and vice versa) * JS client-side database caching * Data binding in Javascript templates using Handlebars (or something similar, I don't remember exactly). etc.
- alanning 12y ago> Meteor.js is basically Ruby on Rails for Node.js and MongoDB... As a long-time user of Meteor in production I have to say this is just about the exact opposite of how I think of Meteor. I'd encourage anyone interested to try out the simple tutorial [1] and glance over the principles behind meteor [2]. For my take on it, Meteor is great for "real-time" apps where user actions should be disseminated across a broad network quickly. It has helpful things like built-in latency compensation which make the end-user experience much nicer and the "database-on-the-client" is just glorious. The most beautiful part of Meteor is that these features are provided for developers without us needing to make sacrifices or in most cases even change our way of coding. Latency compensation is purely controlled by whether a method is made available on both the client and server or just on the server. The client-side DB is automatically kept in sync with the actual back-end DB via a familiar pub/sub mechanism. To me, these features (and the many others not mentioned) make Meteor much different than simply a "Ruby on Rails for Node.js". [1] https://www.meteor.com/install https://www.meteor.com/install [2] http://docs.meteor.com/#/basic/sevenprinciples http://docs.meteor.com/#/basic/sevenprinciples
- KhalPanda 12y agoIn a few words: It's a full-stack javascript framework.
- joshowens 12y agoI guess I would love to hear what you are missing. I think there is a gap between your unknowing and my knowing and I tried to bring that gap a little. I am still trying to figure out how to explain Meteor to someone brand new to web dev and would love for something more constructive from you here :)
- rezistik 12y agoA 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 12y agoIs 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 12y agoUsually 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.
- towelguy 12y agoRecently someone posted a fast alternative to Atmosphere to the user mailing list: http://fastosphere.meteor.com/ http://fastosphere.meteor.com/ I think it uses Atmosphere's DDP connection so it should be up to date.
- alexivanovs 12y agoIt'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!
- sarciszewski 12y ago"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 12y agoCould you expand on what piping into your shell is and why it's bad?
- sarciszewski 12y agohttps://news.ycombinator.com/item?id=6650987 https://news.ycombinator.com/item?id=6650987
- justinsb 12y ago(Developer @ Meteor). The install script is wrapped in a function, which avoids the problem in the article you linked to.
- sarciszewski 12y agoYou're still piping untrusted code to sh. Please implement asymmetric cryptographic signature verification (i.e. PGP).
- justinsb 12y agoI'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!)
- applecore 12y agoIt'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.
- dayvid 12y agoMeteor.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.
- zigo3 12y agoAn 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 12y agoMeteor.com is a horrible hosting platform, try http://modulus.io http://modulus.io
- rags_123 12y agoyay for including cordova.
- TimJRobinson 12y agoHas 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.
- robotic 12y agoI think Meteor will need the big app to get mindshare like RoR got with Twitter.
- matthewmacleod 12y agoPlease 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 12y agoI 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 12y ago"..or information based site.." The entire internet is information :P but I know what you're trying to say
- myrryr 12y agoIt is production ready. We use it a lot. Mongo? Well, yes, you are stuck with Mongo - there isn't good database support outside of that, and as for Cordova? I have no idea why they baked that in either :) It IS good though, the ability to out put really good applications quickly, with simple code shouldn't be overlooked.
- tonyjstark 12y agoI 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...
- methehack 12y agoHaters 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 12y agoI 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 12y agoScaling 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 12y ago
- marknow 12y agoI'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 12y agoWhat you've described is a lot of what Differential[0] does. 0: http://differential.com/ http://differential.com/
- pluma 12y agotl;dr: buzzwords
- Rezo 12y agoI'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!
- deleted 12y ago[deleted]
- curiously 12y agodo you think Meteor.js will ever use PostgreSQL 9.4?
- joshowens 12y agoYes. It is being worked on by the core team.
- curiously 12y agowow. 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.
- z3t4 12y agoThe web page looks like a marketing scam ... At least show me a presentation or developing video.
- joe_momma 12y agoWhy 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 12y agoNope, 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.
- rglover 12y agoIf 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/.
- upside 12y agoThere'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 12y agoThe 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.
- marbemac 12y agoI'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.