I just had a chat with a colleague about this, and I wanted to post my thoughts (frustrations) of working within the Meteor ecosystem. Though not all of this is about Meteor itself, but the state of frameworks today.
So about 6 months ago, I started learning React, followed tutorials, etc, and felt like I had a really good grasp on things. Then I browse the forums recently and discover this thing with “dumb” components:
const PostList = ({posts}) => (
<div>
<ul>
{posts.map(post => (
<li key={post._id}>
<a href={`/post/${post._id}`}>{post.title}</a>
</li>
))}
</ul>
</div>
);
And I swear that wasn’t a thing when I learned React not too long ago! It used to be that you’d just have a React.Component
full of lifecycle methods, and your Meteor data would be fetched and handled within the getMeteorData
method, and now people are even moving away from that and putting data-handling in a Flux or Redux store.
It seems every time there’s a React.js Conf or some other conference, someone throws out a new idea, like “hey, let’s do things this way!” and everyone says “yeah, that sounds good” and goes off and does it on their projects or at their workplaces. And then when they have to onboard more developers on a project, those new developers are scratching their heads, because they’re using old school methods from 1-2 months ago. My current jump down this rabbithole actually started because I got hired on a project where I thought I’d kick some ass with React, and then I find one of the developers who’s more current than I am is using inline styles, Meteor 1.3, modules, etc, and I realized I had some catching up to do. I’ve spent probably 8-10 hours playing catch-up, and I’m still not totally done yet.
I feel like 60% of my effort is keeping up to date, and 40% is actual development work, and that’s frustrating. I get that these frameworks are constantly improving and people are finding better ways to do things, but won’t we ever reach a point where things work pretty awesomely and we won’t have to worry that an app we just started building a month ago and is 25% complete suddenly appears to be architecturally obsolete?
I’d love to hear others’ thoughts on this. How do you deal with keeping current? What do you do about the constant noise coming in? I’d like to at least keep current on Meteor and React. Is there some magical YouTube channel or blog I need to subscribe to so I always know what’s new? I see rumblings about things like GraphQL, Elixir, etc, and I totally ignore them because I don’t want to get distracted by the new shiny thing all the time, otherwise I’ll never get any work done. I’m just one guy, and I don’t have the mental bandwidth to pick up brand new technologies, while also juggling my personal life (not much of that lately!) with work stuff.
Whew. End of rant.