Does Open Source Mean You Can’t Bitch?

By  on  

You didn't pay for it. You didn't have to steal it. You didn't need to search hard to find it. And you probably didn't contribute. It's there, free for you to have at no monetary cost. Is the true cost of using open source software the fact that you can't bitch about what you've been given? Is it acceptable to be unsatisfied with the software?

One part of being a Web Developer that I love is the fact that my "tools" cost little to no money. Of course I need a PC, an internet connection, web hosting, and a domain, but PHP, MySQL, MooTools, Firefox, and my text editor are all available at no monetary cost. In fact, many of the premier programmer tools are free. One could argue that hosting and domain names could be attained for free.

One piece of software I use is an open source PHP-based shopping cart. This shopping cart is used by many small to mid-sized online stores and is meant to be highly configurable by non-web savvy store owners. For those who don't care much about the online store's design, the software is great. Unfortunately, I'm not one of those people.

The HTML code structure of the website is atrocious. The site is comprised of numerous tables nested within tables, nested within a few more tables, and ultimately nested in a few more tables. Why? I can only guess to make the structure stretch the entire screen and allow the blocks within the table to stretch the width of the containing table cell. This type of structure would be acceptable 10 years ago, but not today.

This brings up a good question: does open source mean you can't bitch? I don't believe so. Why? Even though I didn't contribute to the project, and don't plan to, I contend that the software should have been coded using a DIV/CSS class structure and there's no excuse for why restructuring the code wasn't higher priority. Sloppy front-end coding is sloppy front-end coding.

I wont bitch to the cart's coders, but I will silently to myself and coworkers. The worst part about the shopping cart software is that it's probably the best free cart available, making it the "lesser evil." Of course, I could go through every file of the cart and convert the code to table-less design, but the customer doesn't want to pay for that -- in turn, I can't complete this task. I'm basically stuck with this product.

What are your thoughts? Do I have a right to bitch? Does someone have a right to bitch about open source software at all? Please share your thoughts.

Recent Features

  • By
    9 More Mind-Blowing WebGL Demos

    With Firefox OS, asm.js, and the push for browser performance improvements, canvas and WebGL technologies are opening a world of possibilities.  I featured 9 Mind-Blowing Canvas Demos and then took it up a level with 9 Mind-Blowing WebGL Demos, but I want to outdo...

  • By
    Serving Fonts from CDN

    For maximum performance, we all know we must put our assets on CDN (another domain).  Along with those assets are custom web fonts.  Unfortunately custom web fonts via CDN (or any cross-domain font request) don't work in Firefox or Internet Explorer (correctly so, by spec) though...

Incredible Demos

Discussion

  1. You can definitely bitch all you want. Everyone does. (Myself included.) However, you can’t bitch to the developers (as you noted). You can ‘suggest’ nicely, but that’s about it unless you’re offering to help.

  2. Mark Murphy

    “Is the true cost of using open source software the fact that you can’t bitch about what you’ve been given?”

    Not exactly, per se. However…

    “there’s no excuse for why restructuring the code wasn’t higher priority”

    …at about this point you start going loony.

    I don’t doubt for an instant that “restructuring the code” is a “higher priority” for you. However, unless you have some wide-scale mind-reading abilities, I suspect that you have no means of asserting that all the users of this shopping cart agree that it is the “higher priority”. Let alone the underlying “scratch your own itch” model of open source. For all I know, the project’s users and developers are in harmony over the future direction of the shopping cart, reworking the HTML to go table-free isn’t high on their list, and you’re just some random schmoe out in left field.

    “I wont bitch to the cart’s coders, but I will silently to myself and coworkers.”

    And here you go from loony to masochist.

    Either the developers on the project pay attention to their audience, or they don’t. If they do, your opinion will not be heard, because you’re not casting a vote in favor of rewritten HTML. It is as if you *want* them to ignore your wishes, despite the fact that you seem perfectly comfortable in venting to the planet about them.

    “I’m basically stuck with this product.”

    And here you make the final transition, from masochist to blame-thrower.

    Your firm apparently put a bid on a job requiring a shopping cart. Rather than using a shopping cart that met your technical needs (e.g., div’s vs. tables), you chose the free one. And now the free one is not up to snuff and, presumably, the customer is not happy.

    Yet the blame, apparently, lies with the customer (for not wanting to pay), the shopping cart authors (for not responding to the input you didn’t provide and not putting your unspoken priorities ahead of all others), and all of open source (for cultivating a culture where people are responsible for their own words and actions).

    So, going back to your original question:

    “Is the true cost of using open source software the fact that you can’t bitch about what you’ve been given?”

    You are welcome to bitch about open source software. At the same time, though, the rest of the world has the right to judge you by your bitching.

  3. I look it as they are giving it away so they can do whatever they want and all we can do is bitch about it. Even if it falls on deaf ears. :)

  4. If you were silent about your concerns with any software (OSS or not) then the authors will never know what needs to be worked on. However, “Bitching” will not likely get you the results you desire.
    You always have options:
    1. Another OSS shopping cart.
    2. A closed source shopping cart.
    3. Fork the OSS and fix what you don’t like.
    4. Submit the request to the development team/person.
    5. Get over it.

  5. @Mark Murphy: Whoa, whoa, whoa…I’m not trying to blame everyone but myself and I think you’re taking things a bit far. It’s my responsibility to provide what I’ve been asked to, which I’m doing. The cart isn’t the worst thing in the world, but the layout issue is something I would see as extremely important.

    The question is more general than this one particular instance, though I think I’ve presented a great example.

    @Eric: Agreed!

    @Kris: Agreed on being silent — without opinions and feedback, they wouldn’t know. As for your options, I’m well aware of those and I’ve chosen option 5. Again, this is just an example and the question is more general.

  6. Erik Mackdanz

    I’m amazed no one suggested submitting a patch. This is more helpful than requesting the work from the dev team, and a lot easier than forking the whole project (a last resort for disgruntled users). The worst-case is they ignore you, but at least you’ve fixed the layout for your site, since it’s clearly important to you. The best-case is that your patch is accepted, your layout will be included in future upgrades, and you’ll be a web standards hero (with your name in the project’s credits!)

  7. An Open Source Dev

    I’m a developer for one of the tools you mentioned (but not the one you’re bitching about). I thought I’d give my you point of view:

    1. I love vocal users! My favorite are the users who point out legitimate problems and propose sensible solutions. It’s positive and helps keep me in touch with what actual users want. On the other hand, I find general bitching about the product and/or development team because some feature X isn’t already implemented to be a waste of time. I think the time spent bitching could be better used working on a sensible solution.
    2. File a bug! Honestly, it’s the least you can do. A typical open source developer is working off of a prioritized list when deciding what to fix. Think of filing bugs the cost of using the software. You’re clearly have a vested in this seeing this shopping cart succeed.
    3. Propose a patch. The bugs that get fixed the fastest are the ones that have a patch already attached. In my experience, most of the patches submitted by users don’t get applied without major modification but always get fixed faster because they more clearly communicate the problem. Even partial patches help. Who knows you may get a nice job offer from your efforts.

    In short, you have every right to bitch but it won’t do any good if your goal is progress. If you really want change in your open source tools then find a positive way to contribute.

  8. Rob Whelan

    To the general question: “no”… but it depends on what you mean by “bitch”.

    To an open source effort, active participation in development & documentation is most valuable. Submitting patches is next. Sending encouragement and positive feedback is next. Submitting bug reports, constructive comments and sensible suggestions is next (yes, lower than positive feedback, I think… because an open source project thrives on appreciation and observable “usefulness”).

    Submitting nothing — just downloading and going on your way — is still slightly positive. For a developer, lots of downloads is a positive sign, even if the users are technically freeloaders.

    Everything else is a negative. Submitting useless, redundant and poorly-written bug reports, complaining about the project publicly (to the developers or not), rants in their forums, demands for updates or enhancements or bugfixes… these are what can collectively bring about the “you know? fuck it” moment that will end an open source project.

    I feel like you have some sense of this, but not entirely.
    “The worst part about the shopping cart software is that it’s probably the best free cart available, making it the “lesser evil.””

    I smell entitlement there. Non-free shopping cart software does exist, you know. The fact that you are getting *any* value whatsoever at utterly no cost means that you cannot put it in the “evil” category. It’s a gain for you and your customers. The fact that it’s not an *overwhelming* gain requiring no work from you before you sell it does not make it evil.

    A final thought. If you work to gradually improve this software — and it sounds like the problems you mentioned can be refactored out bit by bit — your customers can pay for this time (they’re still getting the benefit of a big chunk of free)… and your contribution will earn you the *right* to bitch. Though I suppose the costs to the project don’t go away, so do it with care….

  9. Jay

    Some hot opinions here. The same thing with OS exists with paid software, you can take it or leave it, it’s your choice. With OS sometimes you have the ability to do something ab it, say make contributions.

  10. Mark Murphy

    “Whoa, whoa, whoa…I’m not trying to blame everyone but myself and I think you’re taking things a bit far.”

    Quite possibly. Got any specifics?

    “but the layout issue is something I would see as extremely important.”

    If a team were building a shopping cart system from scratch, and they had the choice between table-based and div/css-based layouts, I would sincerely hope they would choose the latter.

    That is a far cry from expecting a product with a number of customers (“used by many small to mid-sized online stores”) to dump their current system. Maybe they aren’t in position to maintain two layouts with their current staff. Maybe their community isn’t worried about the issue. Maybe they’re like me — given a stylesheet and template I do OK making changes, but I couldn’t come up with a decent div-based layout from scratch if my life depended on it, and so unless somebody offers a patch and agrees to maintain it, the new layout just ain’t happenin’.

    And none of that is helped by you venting to the public and not somehow relaying this opinion to the project.

  11. @Erik: The patch idea is great for many software types. Unfortunately, it doesn’t always solve the need. My example, for instance, is a layout issue and the cart doesn’t have theming functionalities. In fact, many of the core functions contain “<td></td>” code, making theming almost not an option.

    @AOSD: Thank you for taking the time to post and keep up the good work. It’s great to get an open source dev’s opinion here.

    @Rob: What I mean by “bitch” is a good point. When I use that term, I don’t mean flame the software on message boards and write regrettable emails to the devs. By bitch, I mean look at the programmer next to me and say “Why the hell didn’t they do……..?” It’s not necessarily meant as a super negative thing — my bitching tends to come with a laugh and a shake of the head.

    @Mark: Again, I wish you’d read my question as more general. Name a commercial project — that gets bitched about too. My question is also meant to ask if you believe open source projects shouldn’t be held to the same standard because they’re free to download and use. Thank you for your input though!

  12. Socketwiz

    You and most people in the community have mistaken open for free. That is the downfall of the open source community…IMO.

  13. @Socketwiz: I do understand the difference — I realize my error in lumping them together.

    @All: Let me reiterate something my frequent readers know. I’m a huge open source advocate (http://davidwalsh.name/advocate). I appreciate the time commitment and effort that goes into the tools that many of these programmers spend their free time building.

    The makes of the cart in my example are no exception. The product they have provided is extremely important to many online business owners and I have praised them in the past. I do, however, feel as though it’s OK to complain about aspects of ANY given project, open source or not.

    Please don’t misread my intentions with my question!

  14. GreenEyed

    I’ve wondered myself the same thing multiple times, and I’m an open source developer that also contributes patches to ther projects, etc.
    But I understand what David means because I’ve faced the same astonished looks from many people when I simply expressed an *opinion* about a popular project that was not simply “wow great! the best since sliced bread!”.

    I mean, not even bitching and blaming the developers, just stating that you don’t use such project because you don’t like X or Y or that you miss Z feature is many times confronted with aggresive attitudes like “you cannot complain because it is free”, as if OS meant bug-free. And many times those attitudes are not from the developers themselves, but from the cohort of some vocal brainless fans that always gather around popular project. Sometimes , eventhe official forums of the project are also indefected with the attitude, and that damages OS as even the constructive criticism is frown upon.

    As an example, I offered the same “criticism/opinion”to two projects, that the default logging settings were too verbose in my opinion as from my POV, shipping a public final release with logs set to DEBUG is a bit annoying and unnecesary for most final users. In one of the projects, the devs and community started a healthy discussion and an outcome was produced (it does not have to be always what you want, an explanation why it is like that is also something); on the other hand, the same opinion in another project was simply belittled with the reasonigns explained above “free=no right to complain, product is amazing, how can you even not agree completely?…”

    In any case, commercial products also suffer from a similar problem but the answer is more like “you decided to buy it, if you didn’t like it, then you shouldn’t have bought it, so now shutp up!”.

    So I’d agree it is a problem that plagues some projects, but fortunately not all OS projects are like that. Anyway, in the long run the former kind of projects are doomed to failure, as a succesful OS model is based on contribution from the community, and closing your ears to constructive criticism will only get you that far.

    It’s another version of the “love is blind” defect of human beings ;)

    S!

  15. LaxmanB

    No silly, you just deflect all your bitching towards Microsoft in general, and Windows Vista in particular.

  16. @LaxmanB: I completely forgot about the “Microsoft = scapegoat” equation. My bad!

  17. Mark Murphy

    I wish you’d read the last paragraph of my first comment as more general:

    “You are welcome to bitch about open source software. At the same time, though, the rest of the world has the right to judge you by your bitching.”

    This, of course, is not unique to open source — the rest of the world also has the right to judge you about your bitching on proprietary software, or on the US Presidential campaign, or on how the Twins should’ve kept Santana.

    In this case, you chose to bitch about open source software, and to hold up a scenario as a “great example”, a scenario that I find pretty awful. I am judging you based on your bitching, and am choosing to make that judgment public via these comments.

    As a counter-example, take Zed Shaw’s nuclear rant on Rails (http://www.zedshaw.com/rants/rails_is_a_ghetto.html). That is one heckuva bitch session about an open source project. Yet, in it, I didn’t get the sense that Zed messed up the open source process — he clearly was communicating with the affected projects, for example. That, combined with the fact that I’m familiar with his work on Mongrel, means I didn’t judge him nearly as harshly about his rant as I did your post. Of course, I’m human, and it could be Zed’s post was 10x worse and I just messed up in my analysis.

  18. I found the only true way to bitch about your problems to a contributors is to make a fork of the project. Obviously you don’t want to do this. But by telling other people about how good the software is might get someone else to fix your problem. Especially if you are a designer and are bitching to other designers.

    If you don’t mind telling me what software you are using for the shopping cart.

  19. You’re talking about OSCommerce, are you not?

Wrap your code in <pre class="{language}"></pre> tags, link to a GitHub gist, JSFiddle fiddle, or CodePen pen to embed!