7 ms·
Ask HN: Is Meteor.js mature to enough to use it for building big applications?
By big applications i mean applications with large code base that should be able to scale and with high performance on both client and server side .
- pc86 12y agoDo you ask because you are rewriting an existing large scale application (if so, why are you rewriting and why are you considering a different stack altogether?), or because you are starting a new application (there is a 95-99% chance it will never need to scale so the question is not terribly important unless it's between this and one similar technology for some reason)?
- dandv 12y agoExactly. And by the time you do need to scale, Meteor Development Group will have released Galaxy, the enterprise-grade Meteor hosting platform, which is their money maker.
- pluma 12y agoYes. Whether it's a good idea? Who knows. Depends on how the ecosystem will develop. Currently it's impossible to judge its health and growth reliably because of the massive hype surrounding it. But the question isn't really whether it's mature enough. The question is whether you can / want to support a meteor application for the lifetime of the application you're planning to develop. And if you don't, how easy it will to replace you.
- jasonlotito 12y agoThis is a poor question. You are asking a for a lot but providing little. The answer, at the same time, can be yes and no. You leave out critical information, such as what the scaling is for. Is it to support lots of users or lots of computation? Lots of concurrent connections? Are you talking about meteor.js alone, or are you looking at other technologies? And what is high performance to you? What is a large code base? Why do you presume it will require a large code base? You provide no requirements, and the question is purely subjective. But pc86 makes a good point: it probably doesn't matter at this point. With the information you provided, that's the best answer anyone can give. tl;dr: Yes and no.
- dalacv 12y agoYes
- collyw 12y agoYou needed an exclamation mark. The "Yes!" above your post didn't get down voted.
- some_furry 12y agoAs long as you don't get trojan'd when you first install it, I don't see why not. http://curlpipesh.tumblr.com/post/107681088292/https-www-meteor-com-install-thanks-to http://curlpipesh.tumblr.com/post/107681088292/https-www-met...
- dandv 12y agoPlease stop spreading FUD and go read the source of https://install.meteor.com/ https://install.meteor.com/
- some_furry 12y agoIt's not FUD, but I don't want to expose myself to criminal liability by PoCing the issue (it would require hacking the server and trojaning the shell script).
- alexandernst 12y agoNo, meteor is still missing quite some, basic I'd say, things. Have a look at https://trello.com/b/hjBDflxp/meteor-roadmap https://trello.com/b/hjBDflxp/meteor-roadmap , but I can make a quick resume for you: * There is no easy/official way for doing joins in subscriptions (you can't join "Posts" and "Comments" in a typical blog example). I'm aware of several plugins that try to implement that, but they all lack official support and quite of them just fail at doing it properly. * No server-side rendering. Say goodbye to SEO, unless you're willing to follow the prerender.io way. * No i18n. Should I say anything at all about this one? * Not even basic forms support. This is the abc of any framework, and yet Meteor doesn't have it. * Bad routing support * Not-that-good documentation and examples So, no, MeteorJS is just not there yet. But the idea is cool and I'm sure if those things get fixed/implemented, it will get quite a big user-base.
- charif 12y agoYou missed that the MeteorJS ecosystem has a lot of packages that take care of i18n, routing support (iron router), SEO (spiderable), basic forms support (autoform). I agree that there is room for improvement, but I am confident that the team behind MeteorJS will make MeteorJS a success.
- alexandernst 12y agoNo, I didn't. I'm aware of the existance of those. But those , as you say, external packages are lacking any type of official support. And that is just no acceptable for any serious/big project. A project manager will be rofl-ing hearing those words, I'd say.
- subpixel 12y agoThere has been some unofficial recent discussion on certain Slack channels about MDG introducing their own versions of key packages. I hope that happens - I think it would go a long way towards addressing concerns like yours, which I share.
- kowdermeister 12y ago
- daxfohl 12y agoNo. Even pagination still requires 3rd-party plugins. Last time I tried (granted about a year ago) none of the existing plugins were very good (the only reactive one added the new page's items to the table before removing the existing page's items maybe .5 sec later--horrible user experience). Perhaps the plugins are better now, but still it seems like something so fundamental it should be in the core distro; the meteor team is punting if it isn't. I won't try it again until that is integrated into core, which at least as of a month or so ago, it's not.
- philippnagel 12y agoI am actually quite a friend of the modular structure (Unix fan here). The package manager is good and the packages itself are getting better and more usable all the time. But one could definitely argue that things like routing should be part of the core. On the other hand Meteor could be getting pretty monolithic over time.
- rgoomar 12y agoI personally don't see why pagination should be in core. That's not a necessary thing to have. I would rather have the core developers work on more important things like SQL support or performance optimizations rather than having to worry about a dynamic way to do pagination. There are 3rd party plugins for that reason, so you can still accomplish what you need to without needing everything in core. Also... you may want to look at it again. A LOT has changed since last year.
- tomelders 12y agoI don't know about meteor in particular - but my advice would be to eschew frameworks in favour of libraries, I'm not the first person to suggest this and it's worth using some google-fu to read the differing opinions. Essentially, Common JS + NPM lets people/teams create their own "frameworks" with very little effort whilst also freeing them from the bulk and cruft of a framework that has a limited future; if it has any future at all. The tools and technologies we use to create websites/apps are changing at break neck speeds. Frameworks are in it for the long haul and they hope the decisions they make today will be relevant in two+ years time - but devs have to cope with demands in real time. We don't have the luxury of hope. Here's some good reading http://tom.lokhorst.eu/2010/09/why-libraries-are-better-than-frameworks http://tom.lokhorst.eu/2010/09/why-libraries-are-better-than...
- sgdesign 12y agoWhile I agree in principle, I think it's fair to point out that glueing various libraries together takes a lot more work than using an all-in-one solution like Meteor. If you can do it, more power to you, but I'm pretty sure there's a large population of developers who just want something that works out of the box (I know I'm one of them).
- collyw 12y agoI think that depends on exactly what you are doing. If your application doesn't diverge much from a "standard application" in your framework, then you are probably better off using one. If its going to need a lot of customization then probably libraries are a better way to go.
- shubhamjain 12y agoExcept that you underestimate the effort in incorporating the "framework" in your new project. Sure it isn't hard per se, but the steps involved in learning every bit of a process that surrounds the framework kills the excitement at some point or other. Like in rails, learning all the routing, code generators, forms, asset pipelines just makes you quit at some point. I think things would be much easier if I had "grown" with rails as its features grew, but now, it being a behemoth, I would be pretty much disinterested in going in the effort of learning it just so I can make my shiny new project. The learning would be much easier, if I get to work on existing codebase but then again, it is a chicken-and-egg problem.
- aikah 12y ago> that should be able to scale and with high performance on both client and server side No plateform "scales" magically. You are asking for something that doesn't exist. Or you don't know what the hell you are talking about and just throwing random words to make your question look sophisticated. Sorry but I'm a bit sick these kind of questions.
- joshowens 12y agoYes, I know of tons of applications that have a large code base and use Meteor. Go look at places like ClassCraft, WorkPop, MixMax, FantasyHub, etc. Plenty of teams are scaling both the code base and the app servers to handle thousands of concurrent connections. What is stopping you from trying Meteor, really? Your questions are more focused on the culture of building an app, not about the framework itself.
- rgoomar 12y agoYou forgot one big one: lookback.io ;)
- benstr 12y agoKadira?
- dandv 12y agoVery few know this, but probably the largest Meteor app in existence is Knotable, http://challengepost.com/software/knotable http://challengepost.com/software/knotable
- amolsarva 12y agoHey! Very true. Give a shout and say hello over at Knotable.com or to me a at knote dot com
- maxharris 12y agoYes!
- picsoung 12y agoI would say Yes, the framework provides a great core of tools to start building your applications. Then they are plenty of packages, some officials, some supported by the community, to answer most of the common issues you will face. It's very modular, and could fit many different needs. From a small hack, to an MVP, to a bigger project that scales. There is a growing number of dev shops who are working with Meteor. Personally I am using it to maintain http://apis.io http://apis.io as well as http://speedhack.io http://speedhack.io.
- roarkjs 12y agoITT: People complaining that a technology isn't mature because some features rely on 3rd party plugins. Please -- name one technology that doesn't.
- chucksmart 12y agoMeteor is like Unix; some people want Windows!
- jonlachlan 12y agoI don't understand this comparison. Meteor makes things simpler and removes a lot of low-level complexity. It makes software development simpler. By "some people want Windows", it sounds like you're suggesting that there's a better platform/framework for web development that's "plug-and-play" ready -- so easy that a non-developer could use it. I actually think that Meteor is the closest thing to this, and is the very best starting point for new developers. To this thread's question, it's also great for large applications. But at the end of the day, it's still web development -- you need to learn JavaScript, Mongo, html, CSS.
- dandv 12y agoThere are such monolithic plug&play frameworks, targeted at line-of-business apps: Wakanda and Servoy.
- jonlachlan 12y agoBeen using Meteor for 4 months, and I'm an junior ops guy turned developer. So if I say something that sounds like I don't know what I'm talking about, it's probably because I don't, so take it easy. Having said that, here's my two cents: First and foremost, Meteor is a complete platform for building modern web applications. You get so much out-of-the box functionality that you'll be productive in no time. Also, you will find that your codebase is several times smaller than with other frameworks, because the isomorphic javascript saves you from needing to do a lot of boilerplate and configuration. You also have very convenient ways to organize code, whether through packages or in a /client or /server or /cordova folder, so you'll have an easier time managing your code. So a "big" application is smaller than it would be, and makes for more understandable code. There are many, many examples of functionality that you get for "free" without further set-up, and in my experience it empowers you, the developer, to build richer, better applications. I think that the fact that the platform is stable and past 1.0, and the package ecosystem at atmospherejs.com is vibrant and high-quality, the answer is yes you can absolutely build an application with a large code-base. (And, I might add, you may wonder why you ever did it another way.) As for scaling, you're on a non-blocking node architecture, and so you're already doing pretty well. If you can't figure out how to scale it through the community, my understanding is that the folks at Meteor are working on a paid product that will make it dead-simple to scale to your heart's content. I am guessing that by the time you launch your Meteor-built product, there will be ample resources to hold your hand through it.
- dandv 12y agoHa. Your writeup basically summarizes my extensive "Why Meteor" article. Curious if you've read it before, or if Meteor just makes developers become great minds ;) http://wiki.dandascalescu.com/essays/Why_Meteor http://wiki.dandascalescu.com/essays/Why_Meteor
- jonlachlan 12y agoI read it about a month ago, but these are thoughts that have been ruminating in my head for the past few weeks. I have struggled to explain the benefits of Meteor to others, they always try to compare it to React, Angular, Knockout, Node, Express. It's hard to get people to understand that it's a full-stack platform whose purpose is to make programming easier and faster. http://meteor.com/about http://meteor.com/about
- josephschmoe 12y agoThe answer to this question will always be "Not until X is available" where X is something needed by the company of the person answering your question. By the time everyone agrees, it'll be 10 years down the road and we'll have a new framework.
- indymike 12y agoThings have gotten a lot better over the past few months: * Meteor has added quite a bit of functionality * The cluster package has simplified scaling a lot * Template level subscriptions are making it easier to build reusable reactive components * The quality of third party packages is improving as more developers are contributing and reaching a level of proficiency As far as "high performance", it's a node app... so you have all the plusses and minuses of node. I think Meteor is way ahead of the curve compared to other platforms (think Zope, Rails, Django, Drupal) for it's age. I'm building several apps with it now including a WebGL CAD app and a mobile job search app. Performance is actually surprisingly good for the CAD app and the job search app runs as fast as the apis it sources data from will let it.
- metaculus 12y agoWhat I like about Meteor is its community, which is very active and diverse. Most people who use Meteor tend to have a deep fondness and attachment to the framework as opposed to other Javascript frameworks in which IMO are used for the sake of their performant, simplicity, scalability, etc. all the functionalities. One thing is for sure--Meteor makes Javascript less ugly by letting us write synchronous code. And the "place the code whereever you like" approach really simplifies the coding experience and make it very enjoyable.