Software is routinely released with dozens, hundreds or thousands of known bugs. That said, although I'm sympathetic to Ryan's request, the '900 bugs' figure is pretty seriously off.
Lots of these bugs aren't assigned to any milestone. Many of the bugs that are are assigned to 2.x. In fact: if you go look at the 3.0 milestone, there are only 61 active tickets in there (https://rails.lighthouseapp.com/projects/8994-ruby-on-rails/...)
Should some of the 2.x milestone bugs be fixed for 3.0? Probably. I dunno. I have no idea what the Rails team's triage process is like.
It'd be great to see a call to arms like this also include links to relevant information on contributing to Rails, in order to focus the inevitable nerd outcry in a positive direction ;)
In fairness to Ryan, he does include a link to the relevant information, but in fairness to you, the text of the link doesn't make clear what it leads to. (It's the link that says "Give back to the community" near the bottom of the post.)
I'm sorry that this may sound like me being an ass but I have an almost obsessive horrible nerd trait associated with correcting people. I never said there were 900 bugs in Rails, quoting from my post: "At current writing it has over 900 open tickets". Tickets, not bugs.
Thank you for taking the time to read the post and offer feedback.
I should also point out that yes, why software is released with "hundreds or thousands of known bugs" it is within the grasp every project's community, not just Rails, to go about fixing these.
I respect what Ryan's trying to do here, and understand the frustration that is almost unavoidable when working on a community-driven open source project with a large number of users.
But at the same time, I'm frustrated. I've found bugs, worked around them, written up an incredibly detailed description of one. I wrote a patch, wrote tests for the patch, and mentioned that I was a first-time contributor and wanted to do it right. After a few positive comments, a member of Rails core came along, made a dismissive comment, and left.
If you're going to write blog posts calling community members "useless, pathetic bastards", you darn well better make sure that the community is one that welcomes patches, encourages positive discussion, and if the patches or contributions are inappropriate/applied at the wrong level of abstraction - work to get it there.
Otherwise, you'll end up with a community of users that maintain their own local patches, forking the core or components of it because the mental overhead of sponsoring a patch and pushing it through takes weeks, while just Getting it Done is a couple lines of code and push to your repo. Which is (sadly), kind of where I'm at.
I love Rails. I like many of the principles it rests on, and I love the flexibility it offers. I've learned at least half of what I know about software development and engineering while programming Ruby. But when it comes to dropping writing elegant code so that I can spend hours hammering through endless gut-wrenching arguments on a Lighthouse ticket - count me out.
I agree. If you want eyes on your patch I have two of them right here that I'm willing to send your way. Name and shame tickets that have been left open and the reasons why.
The bug was a Ruby 1.9-specific issue that another user had stumbled on which I hit as well. Unicode support in the 1.9x series is great, but brought some trouble along with it.
The problem in this case was that ETag generation in ActionController tested the response data using a method that threw an exception if it hit a string with an encoding issue. As such, the request would die after being processed, but before being returned to the user. Because it occurs after calling render in ActionController::Response, the exception was unrescuable. (Ed: No 500 error page, no rescue_action_in_public, or any indication of an exception - just an HTTP response with an empty body). It was a sticky situation. Read my longer comment if you're interested in a full explanation.
Anyway, I don't mean to re-open the discussion now. I eventually resolved the issue by applying this patch locally, then moving to a new encoding-aware MySQL adapter. Life's good.
Data point: I submitted a simple patch for Rails 3 that got resolved in about 2-3 days. On the other hand, I have good friends who have experienced the same issues you describe.
The only people to be upset at are the people that find a bug, have the capacity to fix it, but don't, and complain instead.
Other than that, please stop yelling at me ;) Welcome to OSS. In the time you took to write that rant, you could have probably resolved a bug or three.
Personally, the framework usually works fine for me. When it doesn't, and I find a bug, I'll fix it. Done. That's a nice and natural workflow of OSS.
When I'm not working, I'm spending time with my children and my family. I find a lot more happiness in that than I would fixing other peoples bugs.
I recommend finding happiness in the environment you're working with, and not chastising an OSS community because there are easily fixable open bugs in the system.
Maybe it's the wine talking, but man, that was a negative read to me. Back to dessert, and maybe I'll run into a bug and fix it later (on my free time even!). On a side note, I also love nerding ou on those bug smashing parties. It's social, fun, and not required :)
If his rant encourages just three people to each fix a bug of the same complexity as those he could have resolved instead of writing said rant, the project breaks even. If those three people continue to submit patches, the project comes out ahead.
I enjoy your metric of "time to write post" vs "fixing bugs" and feel that it is accurate. In fact, I was still hyped up about the post afterward that I made a few patches myself (thereby proving your "time to write post" vs "fixing bugs" metric just about correct) and got noticed by somebody on core willing now to give me write-access to the tickets so I can do the janitorial work necessary.
If you have children and family, of course they should come before any silly little open source project ;). Absolutely. If I had a wife (or girlfriend, for that matter) and kids I would be spending time with them too. But for now, I devote my effort into coding and writing.
My post is more directed at those magnificently-talented people (and perhaps, those who are not as much) to, instead of sitting there and wondering about "What can I do?" or whining about "When is it coming?" to actually do something about it. A great example of this would be a guy named Roland Moriz who has been going through lighthouse and picking out tickets that should be marked as invalid or completed. This is a simple process of just reading a ticket and determining its status.
If a thousand people went into the lighthouse and picked out one ticket, just one ticket, and "evaluated" it, then we would be long on our way to having no tickets left to evaluate.
I sincerely hope you enjoyed your wine and dessert and I appreciate your time spent to write that comment, all feedback is welcomed.
In general when an open source project is failing at something, the maintainer is failing at something.
A maintainer has a lot of power over the project he maintains, but this power comes at the price that you have to make sure the boring stuff gets done: That bugs get triaged and fixed, that releases get released, that patches get reviewed and applied. If no one else is doing these things, then you need to be doing them. You should not be writing new features while complaining that no one is helping you with the boring stuff. If you do that, then people are entirely justified in whining and complaining about you and your project. Eventually, they will fork or rewrite it or move on to other projects, and rightly so.
Only once you are fixing the bugs yourself do you get to tell people to help out when they ask about bugs or when the next release comes out, or when their new feature patch will be reviewed. Sorry, open source maintainers. You don't get to spend all your time pretending you are Linus Torvalds. You have to actually do work.
I know almost nothing about Ruby on Rails, so maybe the above doesn't apply to it, but if there are 900 tickets blocking the next release, then at the very least, they likely failed at triaging.
1) Please don't swear, it makes you look like an angry teenager and it doesn't help your message.
2) The fact that Rails has 900 bugs is appalling, but don't blame it on the community, blame it on the team working on it
3) The Rails core team is working on it because they wanted to scratch an itch, who are you to tell me what itch I should be scratching?
4) I'm getting tired of the arrogance displayed by Rails people (core team and community alike). We understand you had a shot at becoming the Next Big Thing a few years ago. It never happened, you're now reduced to a niche and you're trying to blame it on others with this kind of pathetic call to action.
The world has moved on from Rails, enjoy your niche and stop trying to get others to fix your mess (900 tickets... seriously?!?).
1) I swear only to convey emotion. I feel it helps my message, but I realize that other people do not feel that way. I respect your opinion.
2) The team working on it is too closed. They need dedicated people to clean up the "mess" left behind, to act as a kind of a Gatekeeper between core and community.
3) If you're in the Rails community it should be you who is scratching "the itch". Contribute 15 minutes of time a week to doing something beneficial to the community. Personally, I've taken to keeping a list of all the people I've helped and I'm going to put them on my wall as sort of an "achievement tracker" in the form of sticky notes. These are the people who's development lives I have added to, and this is one way I can silently thank them for using Rails.
4) Rails community is still "exploding" and I think with the release and associated press (read: circlejerking) there will be a lot more newcomers to Rails.
To your final, unnumbered point: I disagree. There are still quite a few large sites that are using Rails and if "the world" had moved on, wouldn't have these sites also? I will not deny there being decent competition with Rails. There definitely is "solutions" that do it as well or (and this is something you won't hear a Ruby guy saying often, so please enjoy it whilst it lasts) better than Rails. Django, for instance, I hear is getting more popular and some people are jumping ship from Rails to it. Rails will, for the (slightly biased) foreseeable future, will still be a "big player" in the web-application world.
Rails has been "exploding" for years now, but it's still absolutely nowhere to be found in most job boards, so for all intents and purposes, it is a niche.
I'm glad to see it grow because it contains a lot of very interesting ideas, but at this point, it's pretty clear that it will never become as popular as other "web frameworks" (using the term loosely here) such as PHP, ASP.net or some of the many Java frameworks...
it's still absolutely nowhere to be found in most job boards
Strange, considering there are always Rails jobs on craigslist in every major city and on all startup boards. Hell, I don't even actively seek out contract work and have offers on a weekly basis (in person, not even counting online) from people looking for Ruby/Python web development.
PHP, ASP.net or some of the many Java frameworks...
So? You put stock in argumentum ad populum? Hell, why not rip on Django while you're at it, considering there are far fewer Django jobs than Rails jobs? Nevermind the fact that despite Python and Ruby web frameworks being less widely used than PHP overall they are still very strongly represented among the most successful and innovative web projects of the past decade.
Feel free to use whatever metric makes you feel good, all I'm saying is that the number of jobs for Java, PHP, Javascript and ASP.net (yes, even Basic) absolutely dwarfs those for Ruby on Rails.
So, by lumping together four (or five) different platforms, you manage to come up with a number that is larger than those using Rails? That's not entirely surprising.
You're also counting Javascript, which I find odd. Javascript is used in ALL of those platforms, so including it in an argument is extremely unfair. I do some Javascript programming from time to time, but I also spend a fair amount of time in Rails. When I was doing PHP and ASP.net programming, we were also using Javascript. So, yeah, there are going to be more jobs for front-end developers than those who program in some back-end platform, because all sites need some sort of a front-end (excluding some project that's purely an API).
There's also a dilution of programming jobs for the aforementioned platforms, from my experience. Finding a job doing Rails seems to be fairly easy as, even though it was the "next big thing", the average programmer felt better sticking with Java, PHP, or ASP.net. There are way more Java programmers than there are Rails programmers, but it seems the ratio of programmers to programming jobs seems to be more in the favor of Rails.
So, by lumping together four (or five) different platforms, you manage to come up with a number that is larger than those using Rails? That's not entirely surprising.
I agree with that last point, I have a few friends doing consulting for RoR and they don't seem to have any problems finding work, but then again, neither do COBOL developers.
RoR developers are as hard to find as RoR jobs, so I stand by my initial claim that RoR has become a niche framework.
If you believe Hiring is Obsolete (http://www.paulgraham.com/hiring.html), then the jobs argument is pointless. If you don't, then you can always remember the Python Paradox (http://www.paulgraham.com/pypar.html) the language to learn, if you want to get a good job, is a language that people don't learn merely to get a job.
However, "reduced to a niche" seems a bit much. Rails continues to gain in popularity as far as I can tell, and in terms of the web, most certainly was The Next Big Thing, since everyone set about trying to copy it. It's not every day that someone writes a platform good enough to cause that many people to jump away from their existing languages and infrastructure.
Fuck right off. You are the person who is pigeon-holing people into categories based on the words they choose to use.
Should one also need sit up straight and wear a pressed shirt to be taken 'seriously' by you? :P
I find it funny that the Rails developers have a worse rep than Linux users, compared to whom they are cuddly teddy bears (on the whole).
FTR: Zed Shaw writes/says everything very tongue-in-cheek. And he makes it funny. He's like Maddox. Oh yeah, and he sees the deeper issues, whereas this guy is just ranting.
FTR 2: The "Fuck You" slide is massively misunderstood (I was there).
Oh yeah, just because someone uses emotional words such as "fucking bullshit" and "you pathetic bastards" he must be an asshole rather than a person trying to convey a point.
Well, in this analogy, you sit back and let the cashier do it all. All of you in the queue do. Nobody helps the poor cashier.
Nobody helps the cashier because you would be accused of trying to steal their money if you began grabbing money up off the floor.
FWIW: I did volunteer work for years and years. At some point, I concluded I would rather get paid for what I do. I am still trying to work out how to give away stuff I think 'should' be free but also get paid for my time and effort. It isn't easy to resolve questions like that -- at least it isn't for me and, from looking around me, it seems it isn't for most folks. At some point, I decided that if it made me bitter and angry to give my time and energy to something, then I was somehow doing it wrong.
At the risk of going down in flames horribly, my observation has been that a lot of hackers have, shall we say, limited social skills and this fact leads them to be enormously frustrated with things like this -- ie they often just don't know how to get people to do what they want them to do. Rather than go to someone who has actual social skills/management skills/whatever is needed, they then rail about the problem, usually in a way that alienates the very people they want to win over. My experience so far has been that most such individuals are not interested in constructive feedback on how they could more effectively manage that end of things. They feel "wronged" (or whatever) and telling them that what they are doing is counterproductive just seems to make them defensive. (Well, it seems to make most people defensive, regardless of their backgrounds.) But the reality is that if there is something you could do differently that would be more effective, learning about that is very empowering. About 99.99% of the time, you have no control over what other people do but you can exercise some control over your own behavior. So regardless of how badly I feel someone else has wronged me, I typically turn my attention to "what could I do differently?" and "who might help me learn to do something different and actually be effective?"
42 comments
[ 3.3 ms ] story [ 93.3 ms ] threadLots of these bugs aren't assigned to any milestone. Many of the bugs that are are assigned to 2.x. In fact: if you go look at the 3.0 milestone, there are only 61 active tickets in there (https://rails.lighthouseapp.com/projects/8994-ruby-on-rails/...)
Should some of the 2.x milestone bugs be fixed for 3.0? Probably. I dunno. I have no idea what the Rails team's triage process is like.
A bunch of the bugs in Ryan's query are marked 'incomplete'. Here's one that Ryan even said should be closed: https://rails.lighthouseapp.com/projects/8994/tickets/1160-s...
It'd be great to see a call to arms like this also include links to relevant information on contributing to Rails, in order to focus the inevitable nerd outcry in a positive direction ;)
Here's a straightforward version of the link: http://guides.rails.info/contributing_to_rails.html
Thank you for taking the time to read the post and offer feedback.
But at the same time, I'm frustrated. I've found bugs, worked around them, written up an incredibly detailed description of one. I wrote a patch, wrote tests for the patch, and mentioned that I was a first-time contributor and wanted to do it right. After a few positive comments, a member of Rails core came along, made a dismissive comment, and left.
If you're going to write blog posts calling community members "useless, pathetic bastards", you darn well better make sure that the community is one that welcomes patches, encourages positive discussion, and if the patches or contributions are inappropriate/applied at the wrong level of abstraction - work to get it there.
Otherwise, you'll end up with a community of users that maintain their own local patches, forking the core or components of it because the mental overhead of sponsoring a patch and pushing it through takes weeks, while just Getting it Done is a couple lines of code and push to your repo. Which is (sadly), kind of where I'm at.
I love Rails. I like many of the principles it rests on, and I love the flexibility it offers. I've learned at least half of what I know about software development and engineering while programming Ruby. But when it comes to dropping writing elegant code so that I can spend hours hammering through endless gut-wrenching arguments on a Lighthouse ticket - count me out.
The bug was a Ruby 1.9-specific issue that another user had stumbled on which I hit as well. Unicode support in the 1.9x series is great, but brought some trouble along with it.
The problem in this case was that ETag generation in ActionController tested the response data using a method that threw an exception if it hit a string with an encoding issue. As such, the request would die after being processed, but before being returned to the user. Because it occurs after calling render in ActionController::Response, the exception was unrescuable. (Ed: No 500 error page, no rescue_action_in_public, or any indication of an exception - just an HTTP response with an empty body). It was a sticky situation. Read my longer comment if you're interested in a full explanation.
Anyway, I don't mean to re-open the discussion now. I eventually resolved the issue by applying this patch locally, then moving to a new encoding-aware MySQL adapter. Life's good.
Yes. Nearly every open source project. It is hard to make contributing effortless in self-organized communities.
All the text shows weird characters.
Check out Spring Framework bugs(about hundred total): 8 for 3.0.3 (current stable) 0 for 2.5.6 (previous stable)
Other than that, please stop yelling at me ;) Welcome to OSS. In the time you took to write that rant, you could have probably resolved a bug or three.
Personally, the framework usually works fine for me. When it doesn't, and I find a bug, I'll fix it. Done. That's a nice and natural workflow of OSS.
When I'm not working, I'm spending time with my children and my family. I find a lot more happiness in that than I would fixing other peoples bugs.
I recommend finding happiness in the environment you're working with, and not chastising an OSS community because there are easily fixable open bugs in the system.
Maybe it's the wine talking, but man, that was a negative read to me. Back to dessert, and maybe I'll run into a bug and fix it later (on my free time even!). On a side note, I also love nerding ou on those bug smashing parties. It's social, fun, and not required :)
If you have children and family, of course they should come before any silly little open source project ;). Absolutely. If I had a wife (or girlfriend, for that matter) and kids I would be spending time with them too. But for now, I devote my effort into coding and writing.
My post is more directed at those magnificently-talented people (and perhaps, those who are not as much) to, instead of sitting there and wondering about "What can I do?" or whining about "When is it coming?" to actually do something about it. A great example of this would be a guy named Roland Moriz who has been going through lighthouse and picking out tickets that should be marked as invalid or completed. This is a simple process of just reading a ticket and determining its status.
If a thousand people went into the lighthouse and picked out one ticket, just one ticket, and "evaluated" it, then we would be long on our way to having no tickets left to evaluate.
I sincerely hope you enjoyed your wine and dessert and I appreciate your time spent to write that comment, all feedback is welcomed.
A maintainer has a lot of power over the project he maintains, but this power comes at the price that you have to make sure the boring stuff gets done: That bugs get triaged and fixed, that releases get released, that patches get reviewed and applied. If no one else is doing these things, then you need to be doing them. You should not be writing new features while complaining that no one is helping you with the boring stuff. If you do that, then people are entirely justified in whining and complaining about you and your project. Eventually, they will fork or rewrite it or move on to other projects, and rightly so.
Only once you are fixing the bugs yourself do you get to tell people to help out when they ask about bugs or when the next release comes out, or when their new feature patch will be reviewed. Sorry, open source maintainers. You don't get to spend all your time pretending you are Linus Torvalds. You have to actually do work.
I know almost nothing about Ruby on Rails, so maybe the above doesn't apply to it, but if there are 900 tickets blocking the next release, then at the very least, they likely failed at triaging.
The world has moved on from Rails, enjoy your niche and stop trying to get others to fix your mess (900 tickets... seriously?!?).
To your final, unnumbered point: I disagree. There are still quite a few large sites that are using Rails and if "the world" had moved on, wouldn't have these sites also? I will not deny there being decent competition with Rails. There definitely is "solutions" that do it as well or (and this is something you won't hear a Ruby guy saying often, so please enjoy it whilst it lasts) better than Rails. Django, for instance, I hear is getting more popular and some people are jumping ship from Rails to it. Rails will, for the (slightly biased) foreseeable future, will still be a "big player" in the web-application world.
I'm glad to see it grow because it contains a lot of very interesting ideas, but at this point, it's pretty clear that it will never become as popular as other "web frameworks" (using the term loosely here) such as PHP, ASP.net or some of the many Java frameworks...
Strange, considering there are always Rails jobs on craigslist in every major city and on all startup boards. Hell, I don't even actively seek out contract work and have offers on a weekly basis (in person, not even counting online) from people looking for Ruby/Python web development.
PHP, ASP.net or some of the many Java frameworks...
So? You put stock in argumentum ad populum? Hell, why not rip on Django while you're at it, considering there are far fewer Django jobs than Rails jobs? Nevermind the fact that despite Python and Ruby web frameworks being less widely used than PHP overall they are still very strongly represented among the most successful and innovative web projects of the past decade.
Feel free to use whatever metric makes you feel good, all I'm saying is that the number of jobs for Java, PHP, Javascript and ASP.net (yes, even Basic) absolutely dwarfs those for Ruby on Rails.
You're also counting Javascript, which I find odd. Javascript is used in ALL of those platforms, so including it in an argument is extremely unfair. I do some Javascript programming from time to time, but I also spend a fair amount of time in Rails. When I was doing PHP and ASP.net programming, we were also using Javascript. So, yeah, there are going to be more jobs for front-end developers than those who program in some back-end platform, because all sites need some sort of a front-end (excluding some project that's purely an API).
There's also a dilution of programming jobs for the aforementioned platforms, from my experience. Finding a job doing Rails seems to be fairly easy as, even though it was the "next big thing", the average programmer felt better sticking with Java, PHP, or ASP.net. There are way more Java programmers than there are Rails programmers, but it seems the ratio of programmers to programming jobs seems to be more in the favor of Rails.
RoR developers are as hard to find as RoR jobs, so I stand by my initial claim that RoR has become a niche framework.
However, "reduced to a niche" seems a bit much. Rails continues to gain in popularity as far as I can tell, and in terms of the web, most certainly was The Next Big Thing, since everyone set about trying to copy it. It's not every day that someone writes a platform good enough to cause that many people to jump away from their existing languages and infrastructure.
FTR: Zed Shaw writes/says everything very tongue-in-cheek. And he makes it funny. He's like Maddox. Oh yeah, and he sees the deeper issues, whereas this guy is just ranting.
FTR 2: The "Fuck You" slide is massively misunderstood (I was there).
Zed Shaw and DHH both have a style of being very direct, and there's something good to be said about that.
I'm simply observing that, say, Django doesn't have developers asking "So what the fuck are you going to do about" the remaining tickets for 1.2.
Nobody helps the cashier because you would be accused of trying to steal their money if you began grabbing money up off the floor.
FWIW: I did volunteer work for years and years. At some point, I concluded I would rather get paid for what I do. I am still trying to work out how to give away stuff I think 'should' be free but also get paid for my time and effort. It isn't easy to resolve questions like that -- at least it isn't for me and, from looking around me, it seems it isn't for most folks. At some point, I decided that if it made me bitter and angry to give my time and energy to something, then I was somehow doing it wrong.
At the risk of going down in flames horribly, my observation has been that a lot of hackers have, shall we say, limited social skills and this fact leads them to be enormously frustrated with things like this -- ie they often just don't know how to get people to do what they want them to do. Rather than go to someone who has actual social skills/management skills/whatever is needed, they then rail about the problem, usually in a way that alienates the very people they want to win over. My experience so far has been that most such individuals are not interested in constructive feedback on how they could more effectively manage that end of things. They feel "wronged" (or whatever) and telling them that what they are doing is counterproductive just seems to make them defensive. (Well, it seems to make most people defensive, regardless of their backgrounds.) But the reality is that if there is something you could do differently that would be more effective, learning about that is very empowering. About 99.99% of the time, you have no control over what other people do but you can exercise some control over your own behavior. So regardless of how badly I feel someone else has wronged me, I typically turn my attention to "what could I do differently?" and "who might help me learn to do something different and actually be effective?"
Good luck with this.