My Development Philosophy
About a year and a half ago, I wanted to become someone in the web industry. To me, that meant open source contributions, an active development blog, and speaking at web conferences. So I started trying to do that. I wrote a tiny bit of open source stuff and technically got my name on the list of Angular contributors. I wrote some things about Angular and React, and eventually got onto the front page of Hacker News for one of them, and I submitted some talk proposals (the closest being wait listed for FluentConf, which is actually happening right now).
I don’t write much anymore. I’ve stopped thinking about conferences. My two open source projects have gone completely neglected, the more popular of the two still alive due to the gracious work of a guy named Kasper in Europe who I haven’t met.
The real reason I stopped is that I’ve learned that I shouldn’t exactly be writing or talking. As Switchfoot suggests on their Beautiful Letdown album, I felt like I was adding to the noise, trying to make a name for myself simply for the sake of it. I also got a fair kick in the butt from just the first paragraph of an Eric Elliot article.
Granted, I’ve spent the last year and a half of my life writing JS, reading HackerNews and EchoJS, and following all of the big conferences. Now, when I open HackerNews on the bus, I just get tired or bored. This front end world moves very quickly, with tools and libraries rising and disappearing on a regular basis. A year ago, I was pretty sure I’d be writing Angular for the next 5 years. Now, I don’t even like it, and its strengths I used to boast have become the antipatterns I discourage. I’ve been writing in React for the last few months, and have essentially decided that it’s good enough for me. I know there are plenty of other libraries, some supposedly faster and smaller than React, but I’ve stopped reading about them or entertaining the hype. React is good enough.
And Reflux is good enough. And superagent is good enough. And Hapi too.
Logically, the next thought says, “if everything’s good enough, how do you know you’re not missing out on something great?” If I had held this position a year ago, I’d still be writing Angular and thinking everything was okay. I can’t say that I have a good objective answer for that, but I think you are supposed to just honestly assess what works and what doesn’t, and when something legitimately doesn’t work, you start looking for solutions.
The more I wrote Angular, the more I felt it got in the way, and the less happy I was becoming. I didn’t really know what I wanted at the time, and I’m sure what I want changes, but back then, I just wanted to be able to make a complete web app without losing myself in the data binding and event binding. Now, I care more about being able to reason and maintain about my app logic easily and more granular libraries than a monolithic black box.
So I’ll use React until I can’t use it anymore. Maybe when React starts giving me some problems, I’ll look around, but I haven’t really encountered those issues that were directly React’s fault. If you want to talk about performance, maybe Angular 2.0 will be faster than React, or Mithril or something, but I don’t really have grandiose performance needs. I don’t need something better than something that’s good enough, especially if my end goal is just to ship a product. I guess I think that I should move fast and break things, rather than move slowly and deliver too late.
I think I’m at the point in my life where I just want to build stuff and deliver. I don’t care about clever optimizations right now or overengineering for unseen scale (though I’m also not saying to hack everything together). The more I read about other JS frameworks or technologies, the more I get distracted and stop doing tangible work. So I’m going to sit down with my React-Reflux-superagent-Hapi stack and build stuff, and I think they’re all good enough that they won’t seriously get in the way of whatever I’m building.
Maybe in a few years I’ll be more qualified to write or to speak at a conference, but I won’t get there by reading HN all day. For me, I’ll get there by putting my head down and working.