1. 52

Hypothesis is a Python property-based testing tool (ie like QuickCheck).

    1. 24

      @DRMacIver, thanks very much for your work. I know how frustrated you have to feel, and I can only imagine the long sequence of events that led up to that post. That said, know that the entitled, bitchy few are far outnumbered by the silent, appreciative majority, both in your case and in the case of essentially every other piece of free software out there. Your code is making the world a better place. Thank you!

      As far as remuneration for your efforts goes – that’s probably why QuickCheck™ went commercial. The culture around tooling is that it is free. You’re probably in no mood to reconsider, but you might think about ways to get people to pay you – perhaps a Hypothesis Pro, following Mike Perham’s model with Sidekiq – and see if that gives you enough will to continue.

      But seriously – all of us in the computer industry don’t tell people thank you enough for their work; we tend to reserve it for memorials and funerals. So, as I’ve said to Joe Armstrong and many others: thank you; you’ve advanced humanity, however incrementally; and may your heart be however that much lighter.

      1. 17

        Yeah, my primary thinking around this is around a Hypothesis Pro of some sort. There is a decent chance that I will be revisiting this concept in the future.

        Part of the problem is that I’m too far ahead of the curve. In terms of the usual timeline of tool evolution I basically dropped a fully fledged feature complete power user tool on the Python community and said “Here, go wild”. People aren’t yet using Hypothesis free’s full capabilities, so why would they pay for a Hypothesis pro? There may be more of a market around this as the Python community grows into the space and figures out what is possible, but I don’t think it’s there now.

        If I’d thought about this properly 6 months ago what I’d have done would be make the Python 3 version free and charge for Python 2 support. At this point that would just result in forks.

        1. 5

          Part of the problem is that I’m too far ahead of the curve

          This is a huge problem with tooling: you suffer chicken-and-egg demand problems…until the mainstream shows up, at which point they want everything yesterday and free.

        2. 1

          If you want to make a living you need a community working with your software and it sounds like you spent too much time developing and not enough time building a community. You need to write the O'Reilly book to start building your community.

          Also you need to target management. My experience is that developers will rarely pay for tools.

    2. 14

      A couple questions for the author:

      A.) When you started this project years ago, how much time did you put into deciding on a license? More than a couple minutes? An hour?

      B.) Looking back, would you make the same decision now?

    3. 7

      Although I was never paid directly for my open source work, the last two jobs I’ve had indirectly arose from my work on that software. (One because they used it already, the other because of contacts that arose from working on it.) I’m mentioning this in a “there’s still hope” kind of way :-)

    4. 8

      I find most responses here disappointing in their lack of empathy. Apparently the only reasonable response to realizing that something sucks is to stoically accept its immutability with an understanding that you should have known it in advance.

      1. 2

        It’s an all-too-common type of response on the Internet, because it enables responders to be right, and deflect the blame lodged at a defective culture. The implication is, “change is hard, but what we have seems to be around for a reason, so why not just accept it?”

    5. 4

      As a user of Hypothesis I’m very happy it exists. I can’t help but feel the author’s anger is a bit misplaced, though. There is little-to-no-precedance for the creator of all these open source tools making a living wage off of their work. To be cynical, though, one of the problems with Hypothesis is that it’s too good. It solves a particular problem and it solves it very well and doesn’t create new problems for the user. IME, the way open source projects make money is by creating problems so an ecosystem to solve the problems they have created can be sustained. Look at Java. A huge part of the Java ecosystem is consultants solving problems that Java ecosystem has introduced. So, while I sympathize with the author, I also don’t. They were wrong to think the outcome would be any different.

      1. 19

        It’s weird to me that you said “I can’t help but feel the author’s anger is a bit misplaced” and then went on to list the set of reasons I said I was angry.

        1. 9

          Did I? Perhaps I’m not connecting with your post because what you are upset about is something that seems entirely obvious to me. OSS didn’t ever seem predicated on making money off these endeavours. There are people who have contributed far more than Hypothesis who both aren’t making money and not angry about it. If your expectation was ever to get rewarded in any other way than people using your software then I feel that was poor expectations management. Maybe I’m missing the point you were making though.

          1. 19

            I wrote a post saying “I am angry that the industry is terrible and also this is affecting me personally” and you’re replying “Yes but the industry is terrible”.

            I don’t have the energy to be polite to you over this right now, so I’m going to end my participation in this thread here.

            1. 3

              I’m saying the industry is so terrible you were wrong to expect anything else.

              1. 21

                And I’m saying that if you think “everything is terrible” is a good reason to not be angry, you need to rethink your life, and if you think “but everything is terrible” is a good way to respond to someone who is currently upset you need to think about improving your abilities at basic human interaction.

                1. 5

                  I didn’t say everything is terrible, I said the industry is. If you don’t judge success by dollars made then there is a lot of joy to be found in software.

                  1. 3

                    To be fair that is really easy to say when you are well off financially and can afford to spend your time working for the greater good of the programming community, if you actually need to work to pay the bills then not so much.

                    1. 2

                      If you are having trouble making ends meet then you should not be writing free software.

                    2. 1

                      And that is very easy to say when you are well off financially and can afford to spend your time and resources commenting on an Internet message board. If you have no access to computing resources, then not so much.

                      I’m not trying to troll you, although it probably looks that way. My point is there’s no use in trying to invalidate someone’s experience because of perceived differences in valuation—it’s all relative.

        2. 1

          Anger is wasted if it’s not going to help you change anything. Yes, many of these things are terrible. It is also terrible that e.g. humans need to eat to live. But if you don’t eat and then get angry about being hungry, people won’t sympathise with your righteous anger - they’ll just think you foolish.

    6. 3

      I’ve had some success using pyquchk as an alternative. Not sure how it compares to Hypothesis, but it was one of the few QuickCheck ports in Python that did real shrinking.

      1. 18

        This would not be the correct lessons to derive from this post. :-)

        For starters, it’s not like pyquchk is any more maintained (it was abandoned back in 2013). But even if it were it, it would have a lot of catching up to do. Hypothesis has:

        • Much better tools for defining your own generators (with shrinking built in)
        • Very high quality example shrinking
        • Much better range of generated data
        • An example database that lets you work with tests with hard to reach examples by saving them (post-shrinking) for next time.
        • Support for stateful testing
        • A much better story around mutable data
        • A model which lets you work with values like ORM objects whose creation requires side-effects (and built-in Django support)

        And much more besides. I’m really not joking when I say Hypothesis is probably among the best quickchecks out there. It is certainly the Quickcheck which is best at working within the idioms of a highly imperative language.

    7. 3

      Also applies to open source work -> “George RR Martin is not your b*tch” http://journal.neilgaiman.com/2009/05/entitlement-issues.html

    8. 2

      I wonder if a Neovim style approach to funding this could work for DRMaclver. Neovim kicked off with bulk funding – and now switched to sustained funding (https://salt.bountysource.com/teams/neovim). Obviously, the target market of Hypothesis is much smaller, but I suspect it might be more well heeled, possibly a few big Python using organizations would jump into it.

    9. 3

      I feel that the author’s complaints are unreasonable and unwarranted. He chose a free license for his work, and is angry at not receiving things that were never promised.

      1. 15

        Is no one allowed to regret decisions?

        1. 6

          Certainly. My search for “regret” in the article yielded 0/0.

          1. 13

            English is a complex language, which can be used to express an array of different emotions without using the exact same words.

            You’re suggesting that the OP made a foolish decision, and now it’s wrong of them to lament their position, because they should have known better. I don’t think that’s particularly helpful.

            1. 2

              That doesn’t mean this post has anything to do with regret.

        2. 3

          New idea: mandatory “no regrets” tattoos for everybody. :)

          1. 9

            As someone who has a ‘straightedge’ tattoo and … isn’t straightedge anymore, I support this :p

            1. 1

              Oh, an ex-straightedgeX!

              1. 1

                It was a really, really important and formative bit of my life, but I’ve grown out of it now.

        3. 4

          There is nothing about “regret”. I can certainly understand that it’s a bummer that we live in a world where doing what you want and making money aren’t necessarily the same thing, but that isn’t what this post is about, it’s about the author being angry that the world didn’t live up to their end of a contract they never knew existed.

      2. 3

        I think you are conflating “free license” with gratis. Just because the author choose a libre license doesn’t mean that they can’t also charge for distribution of it.

        1. 5

          It’s not about if they can or cannot charge, it’s that they chose to give away something for free and then expected people to reword them with something other than using it.

          1. 6

            You are leaving out everything else, “shame them into supporting it when somehow it surprisingly doesn’t do exactly what we want”

            It is a very frustrating part of free software.

            1. 3

              I’m not actually sure what the author is talking about in that case and that is not something I have experienced.

              1. 4

                There’s a matter of perception. Some people see nothing wrong with “I can’t use foobar until it supports widgets” while others find that pretty huffy.

              2. 4

                This is a very popular motif in complainjng about successful free software projects. “No one cares”, “users demand unreasonable time requirements and/or enhancements that I don’t have interest in”, “someone PRed a 3000 line change with out consulting me, and got angry when I didnt merge it.”

                The Internet has turned us into a bunch of entitled whiners. Actually, I’m not sure if its the Internets fault, or society in general.

                1. 3

                  There’s a nice article musing on that possibility called The Web is a Customer Service Medium.

              3. 1

                Well, everyone I know who’s had successful free software projects has experienced this.

                1. 3

                  Actually, that isn’t quite true; if I may offer myself as a counterexample.

                  edit: I suppose I should clarify: I have experienced this, but not in the context of my more successful projects. Maybe that doesn’t count. =)

          2. 4

            I’m not arguing for or against any ooint here. I’m merely pointjng out that a libre license doesn’t have to imply gratis, which the OP seemed to misunderstand.

            Now, putting on another hat, this whole thing is exactly the complaint Zed Shaw so famously made: “I wrote awesome software (mongrel), and its so good, and easy to use that no one is willing to pay me consulting fees to support it.”

            While I can sympathize with this, it typically comes off as whining that no one gives a shit that they are awesome, when in reality, the people who use their software are “just trying to get home to play with their kids”, so to speak.

            The author should probably reevaluate their interest in releasing open source/free software in the future, or simply release software that sucks, but solves a niche need so people will pay to have stuff fixed, or make enhancements.

      3. 1

        he is angry that we do not have a culture where companies who derive significant value from freely-given open source software participate in the gift economy by voluntarily giving some money to the authors/maintainers. especially if the project is the work of a single person who has clearly invested a lot of time and effort into it. it seems like a perfectly valid thing to be angry about to me.