11 ms·
What's coming in Meteor 1.2, and beyond
- DeBraid 11y agotldr: ES6 = standard, SQL support is coming, faster builds and mobile toolchain development a priority. Reactive rendering with Blaze, Angular or React + Meteor is available.
- mrcwinn 11y agoSQL support has always been "coming." It's been on their Trello roadmap for more than a year. The specific messaging in this post is that the new version of Meteor is coming late this summer, will not include SQL support, but that SQL support is something on their radar for the future (late in the year? next year?) That bit is not news or anything new.
- djmashko2 11y agoI think the intention is to signal that SQL is likely to be one of the things we work on immediately after 1.2 is released.
- viach 11y agoI started to use meteor a month or so ago. For a person like me, from Java Enterprise land, this tool is refreshing. Glad to see new goodness is coming, especially SQL support.
- matthewbauer 11y agoWhen ES6 and web components come out, are we even going to need frameworks like Meteor? It seems like all of the advantages of MVC frameworks go away once you can create controllers and models in native Javascript and views in native HTML.
- bsbechtel 11y agoMeteor isn't MVC.
- davnicwil 11y agoI've not used Meteor, but I understand one of its big selling points is 'optimistic UI', i.e. it alters models locally when changes are made, and syncs those changes with the server in the background, only changing the local model back again on failure to sync with the server. I don't know if this can be (or has been) extracted to a separate library or if this is part of the web components spec, but its something that's pretty nice to have baked into the framework. In fact the only reason I'm not using Meteor now is that it's still got a hard dependency on Mongo. I was disappointed to see that SQL support has not begun to come in yet with this update. Once SQL support is there, I will definitely be looking at using Meteor, particularly now it's got first-class React support.
- sanderjd 11y agoYou ask a really good question. With all the myriad javascript libraries coming out weekly, you'd think we would all know of four different optimistic synch libraries off the tops of our heads, but I don't think I've seen any. Perhaps that's because in order to get it to work, Meteor has a bunch of code that (I think) watches Mongo's write-ahead-log, so you can't just make a front-end library for it. I think this is also why SQL support has been slow to come.
- davnicwil 11y agoI had a good look for a library that does this for the app I'm currently working on, before giving up and creating a custom solution myself. My implementation is very much custom-fitted to my particular backend api and the way I'm rendering the view layer with React. I think a large part of the reason such standalone libraries might not exist yet, is that it's really difficult to make a general, flexible, tech agnostic solution to this problem - as you've highlighted this is probably why Meteor's implementation is so tightly coupled with Mongo and why SQL integration is taking a while (assuming, surely, it must be a pretty high-priority feature on their roadmap). In other words such a library is likely to be so prescriptive on how the rest of the stack, particularly the backend, fits around it that it only really makes sense as part of a full-stack framework, or at the very least a prescriptive full-stack architecture.
- Siyfion 11y agoIt's completely different from ES6, it's a full-stack framework, so it does SO much more than just a front-end framework. Meteor's main selling point is the reactivity; you can call `Books.insert({ name: "test" });` on the client, in-browser and it then updates the UI optimistically, updates the DB on the server AND propagates the change to all other clients, which in turn updates their UIs. All with one line of code. Take a look at DDP, one of the core building-blocks of Meteor: https://www.meteor.com/ddp https://www.meteor.com/ddp
- joshburgess 11y agoIs DDP or Meteor really needed though? Couldn't you easily set this up with RethinkDB using its Changefeeds killer feature for real-time + socket.io along with whatever other library/frameworks you want to use without ever touching Meteor?
- xbryanx 11y agoYes, you totally can, but I found running one command: curl https://install.meteor.com/ https://install.meteor.com/ | sh so much quicker (in the short term and long term) than reading a myriad of tutorials and then bashing my head against this configuration of several products for multiple weeks to get what Meteor provides as part of a single maintained and updated system.
- btown 11y agoIf you're willing to wait for a client-server round trip to visibly see your changes, then sure. Otherwise, you'll need a way to temporarily (optimistically) change your in-browser data model with the updates while waiting for the server to commit your changes, then figure out a way to reconcile the server commit of v2 while you might have done v3 on the client in the meantime... Optimistic updates are not at all trivial. Meteor has a ton of code that basically runs an in-RAM version of MongoDB and keeps it in sync with the server.
- djmashko2 11y agoIt turns out to not be that simple. My coworker Slava has a talk about exactly this question: http://info.meteor.com/blog/what-does-it-mean-to-be-a-real-time-database http://info.meteor.com/blog/what-does-it-mean-to-be-a-real-t... (I work at Meteor)
- joshribakoff 11y agoSure. Meteor can be used to implement your backend, frontend, or both frontend & backend. Web components are a frontend concept only [from what I understand]. Meteor's frontend code can "bind" to your backend, and render real time data updates.... while web components have no concept of "backend" at all. There could also be a desire to wrap multiple web components into an Angular directive, or wrap multiple Angular directives into a meteor module, etc.
- tristanz 11y agoThe web components spec is starting to look like a huge mess in comparison with modern JS framework component models. I think it's unlikely web components will much traction as a first tier approach to application development.
- sarciszewski 11y agoAnd yet they still tell people to install Meteor by piping to their shell. Incredible. http://curlpipesh.tumblr.com/ http://curlpipesh.tumblr.com/ https://paragonie.com/files/blog/pipeshell.jpg https://paragonie.com/files/blog/pipeshell.jpg
- ruswick 11y agoThat's a pretty common thing. I don't see the problem.
- sarciszewski 11y agoHack their webserver, replace the contents of https://install.meteor.com/ https://install.meteor.com/ with malware, instantly pwn anyone who pipes that to their shell. Worse: the people who are most likely to curl|sh are DevOps folks with the keys to their company's kingdom.
- honest_joe 11y agoCommit a race condition to glibc,musl,uclibc and fuck up almost every software on the planet. It's convenient and that does not mean it's a good practice but i doubt using an other method would minimize a risk when the meteor.com would actually get owned.
- sarciszewski 11y ago> i doubt using an other method would minimize a risk when the meteor.com would actually get owned. GPG signing, keep the private key offline, publish the public key in the blockchain and have a lot of high profile technologists sign it so it can be independently verified. See also: PHPUnit. https://phpunit.de/manual/current/en/installation.html#installation.phar.verification https://phpunit.de/manual/current/en/installation.html#insta... (They provide an example shell script for quickly downloading and verifying the latest versions of their install)
- 11y ago
- liamzebedee 11y agoOfficial React support - woohoo! I've been using React and Meteor together to build a desktop web app for quantified self, and I have to say, the combination is magnificent for productivity. The app is 90% JS and a little CSS, and reactively updates with no extra code. MongoDB and server logic is separated from the client-side view rendering, so if I wanted to make it a thin client and remotely host the computations on another server it would be a piece of cake. An example file of code for the records overview (dashboard was a bit tabby-spacey): https://github.com/liamzebedee/metric/blob/master/client/features/RecordsOverview.jsx https://github.com/liamzebedee/metric/blob/master/client/fea...
- honest_joe 11y agoHow is the performance ? For me something like Atom feels very sloppy compared to Textmate / Sublime
- Siyfion 11y agoHave you tried Atom since they shipped version 1.0? It's been sped up a LOT. However, I don't really think that this topic has much to do with React / Meteor, as Meteor is a full-stack web-solution, Atom is a desktop text-editor built with web technologies (and specifically React)... It's like saying my Ferrari goes faster than your boat, yup, on land.
- honest_joe 11y agoI know but i have commented on a guy's post talking about building desktop web apps. Also yes i have tried the latest Atom's version. I am not bashing it's just that i feel that the performance is still worse than the native solution (obviously).
- liamzebedee 11y agoWell I think it's a different - my app really only deals with very simple form inputs and interactive views, there's no performance issue to think of. Text editors deal with file systems, buffers, displaying text, plugins, a bunch of other things. That being said, I get two threads inherently as a result of the client-server separation, and on the Meteor server you can properly parallelize the work as a result of its Node foundations.
- kidsil 11y agoYeah! I knew it wasn't just my gut feeling when I went ALL THE WAY with Meteor :)
- mark_l_watson 11y agoGreat news that ES6 support is shipping this summer. You can already use Babel, but having everything set up by default, with examples using ES6 will be great. BTW, I wish there would also be built in support for Typescript. I have done some simple experiments with Meteor and Typescript but it has a do-it-yourself feel abut it. As much as I like Typescript, I will probably just use ES6.
- resca79 11y agoI never used Meteor but I was impressed by this framework 3-4 years ago. In the last years with the javascript client/side logic growing it looked obsolete in some components. But now with this new support of the two most popular framework js and the support of Sql I think that is could be get more developers and contributors 'than ever' :)
- waterfowl 11y agoIs anyone else unable to log into meteor.com forums? I click log in, the popup tells me I'm already logged in, click "use this account" and it drops me back where I was with a modal(ugh) about making an account.
- djmashko2 11y ago(I work at Meteor) I'm sorry! I haven't heard any other reports of an issue like this; what browser/system are you on?
- waterfowl 11y agoNo worries, really a minor thing but is happening for me on both chrome latest(43.0.2357.130 64bit) and firefox developer 40.0a2 on OS X 10.10.4. Click log in, pops up a window where I either login or it says "use this account you're logged into?" and then drops me back at the forums with a signup modal(and when I close that, still logged out). Meteor has been great for me though, you guys are building(have built) a really cool thing.
- joshburgess 11y ago"We're going to support React and Angular!" Translation: We're going to support the big JS names the general public is most aware of, because... well... please, use Meteor.
- Rezo 11y agoIt is highly encouraging to me that Meteor is acknowledging the larger trends in the Javascript ecosystem and promoting React to an officical frontend layer instead of doubling down on their homegrown solution. Likewise for seamless Babel integration and planning the move to official ES6 modules. Buying into a full-stack solution like Meteor is a scary proposition; you're giving up a large amount of control for a promised big increase in immediate productivity (which I do feel Meteor delivers on). This blog post goes a long way to alleviate my fears and makes it more likely I'll use Meteor for certain future projects.
- kidsil 11y agoHonestly I'm very likely to stick with Blaze for the time being, as I've found it easier to follow & understand than Angular (haven't tried React yet). I just like the sticking with general modularity approach (that really reminds me of Ruby). I don't think the Meteor proposition is any scarier than getting into Rails, Django, or even Laravel. You're basically trusting a growing ecosystem that will prevent you from re-inventing the wheel.
- jkarneges 11y agoRails, Django, and Laravel are all server-side frameworks. You could replace one with another, without having to rewrite any client code. Meteor is all-encompassing, covering both the client and server. That means you have much less agility in terms of swapping out components, but of course its convenience is unparalleled. Actually this has me wondering, is there anything else out there like Meteor that covers both client and server development at the same time? Maybe GWT?
- pmontra 11y agoMaybe Volt http://voltframework.com/ http://voltframework.com/ but I didn't use it and it's hardly mainstream.
- nilliams 11y ago> Actually this has me wondering, is there anything else out there like Meteor that covers both client and server development at the same time? There's also Derby.js and Socketstream which arose around the same time as Meteor: http://derbyjs.com http://derbyjs.com http://www.socketstream.org http://www.socketstream.org
- porker 11y ago> Meteor goes with Angular/React like peanut butter goes with jelly. Terribly, then. ;)
- leeleelee 11y agoAnyone out there using Angular and Firebase? That's been my go-to "stack" for achieving 3-way binding of the UI, javascript model, and remote database. The only downside is that you're locked into using firebase as a service, can't host it locally, and you're limited to what their API supports. It's amazingly fast in terms of ability to churn out features. Meteor seems to be the only thing that comes close to giving offering the same amount of productivity as I can get using Angularfire. Has anyone used both, that can comment?
- pmontra 11y agoI did the design of a project that used Angular inside Ionic with Firebase as backend. They integrated well, no particular problem. Just be careful not to keep websockets open unless those you really need. Close the others. They'll keep the CPU busy and bleed the battery. The only major problem was with Firebase itself, when we had to start duplicating data because it's a tree and it doesn't have joins. But it would be unfair to complain because it's like that by design and we knew what was expecting us. Is there any service like Firebase but with joins?
- rezistik 11y agoI really wish there was. I tried Firebase + Angular and liked it well enough, but I found the security rules kind of hard to grasp. I've been using Meteor, and I like it quite a bit. There are a lot of things I wish were different but it's made me pretty productive. I really wish it had Clojurescript integration for instance. But that's a really minor and personal thing I just want to use clojurescript. I'd dig a Postgres as a service style firebase alternative that'd be nifty.
- pbowyer 11y agoI haven't used Firebase, but would RethinkDB with its real-time feature be an alternative that has joins? It has the drawback that it'd be self-hosted, but apart from that..?
- jkarneges 11y ago
- Everhusk 11y agoThought for sure this post was going to be all about Galaxy. Oh well, still didn't disappoint :).
- djmashko2 11y agoThat wouldn't be about Meteor 1.2 - I don't think Galaxy will ship as part of a Meteor release, but rather as its own product.
- pdkl95 11y agoSo when is Meteor going to start sending actual web pages? I ask here, because seeing a blank page that consists of <body> </body> Isn't very useful. ES6 is nice... when javascript is available. I know it's current popular to pretend that progressive enhancement is too much work, but that doesn't change the fact that your site doesn't even have an error mesaage when javascript is filtered at the firewall.
- clessg 11y agoPretty sure there's a package you can add that automatically does this for you. Not sure if it still works, has been awhile.
- twerquie 11y agoThere is a difference between web pages and web applications, and Meteor is built for the latter. There is no such thing as a progressive enhancement path in many cases. If your firewall (?) strips out JS, then you are on a broken network. How does it do that anyway? Most sites are HTTPS.
- pdkl95 11y agoYes, there is a difference between pages and apps. You should still not send only empty body tag. Click link, see blank page - how am I to know what kind of page it is? I'm really only referring to documents (like www.meteor.com, I presume - I can't actually read it from this computer as it's a blank page). Even on "web apps", there should really be at least an error indicating that the app only works with JS, or maybe a link to a fallback/alternative if appropriate. Note: a search page is not an "app". Progressive enhancement works just fine in almost every case that isn't a purely interactive app (i.e. google maps or a game). It is trivial to render, as needed, the HTML template with the header/footer, or a layout-free snippit, or simplee JSON, or whatever else is needed. This was basically zero extra work in Rails years ago, so I don't see why it can't be done now. As for stripping JS, that is easy, and done for security reasons. Yes, this requires a custom cert so the firewall can MITM the connection, which most businesses do anyway. No, this does not make it a broken network. Javascript is optional, and always has been. ( http://www.sitepoint.com/javascript-dependency-backlash-myth-busting-progressive-enhancement/ http://www.sitepoint.com/javascript-dependency-backlash-myth... )
- liadmat 11y agoReally glad to see React Native mentioned here, albeit briefly. Hybrid mobile apps like the ones currently supported by Meteor always feel kind of clunky, and the 3rd party implementations of DDP for iOS/Android feel like a workaround and not the Meteor-way of doing things. Would be interesting to see how React Native is integrated into Meteor. Though what I really want to see is Blaze Native.
- chaostheory 11y agoWow, when did they add database support? I'm pretty surprised it's been done before this release.
- jxm262 11y agoAwesome!! never saw this link they've mentioned - http://react-in-meteor.readthedocs.org/en/latest/ http://react-in-meteor.readthedocs.org/en/latest/ I've been playing with meteor just recently and am totally loving it. I really like Blaze, but love React's component system, so not really sure which way I want to turn now... I'm almost thinking of just implementing a React-like dictionary in Blaze to keep it more 'component' like , because I really dislike the jsx transpiling. Anyway these announcements are definitely making me more convinced that I should try Meteor in a production app. I see many good things coming for this project.