Rails needs an approval process for Gems
Writing Rails code makes me miss writing in Objective-C. Or C. Or Java.
When developing in Rails, it seems like you spend half your time in your own code, and half your time inside the gems and libraries made by others that you are leveraging. Those third party tools never seem to work quite right. Sometimes they are buggy. Sometimes they were just built under different assumptions.
Inevitably, you have to dive into the code for these libraries and fix bugs. The Posterous codebase is littered with monkey patches, modifying gems to work as we need them to. There's also a ton of fragmentation. Do you need a queue library? Something for url slugs? There seem to be 10 of everything. And most of them are not maintained. You better hope that the library you choose to build on top of still exists a year from now. Contrast that with iPhone development: I think I found one bug in the iOS SDK last year, and it was fixed before I could even report it. I'm sure those on the bleeding edge see more issues, but my experience has been perfect. Similarly, Posterous leverages Java quite a bit for our email processing. And in years of developing our email engine, I haven't found a single bug in those frameworks. Obviously these Java frameworks are much older and mature. At the end of the day, building on high quality frameworks that just work lets me focus on my code and my product. I want to build on top of developer tools and libraries, not fight them. This is exactly the problem the app store solves for applications on the iPhone. It reduces fragmentation and duplication, and ensures that quality is high for all apps. It seems like Rails could use a similar repository for gems.So what is it with Rails? Does open sourcing software make engineers lazy? Or is it simply that Rails is moving faster than other platforms, and that leads to lower quality? How does Rails compare to other open source web frameworks?
I really don't mean to sound ungrateful here (but I'm pretty sure the haters are going to knock me on this anyway). The open source Rails community is incredible. It's helped us build Posterous faster than we could have otherwise. We're even open sourcing a bunch of stuff we've built recently. I'm just constantly surprised when stuff doesn't work. Rails just doesn't feel mature yet.
You should follow me on Twitter here