A case for QuickCheck for Elixir?
Originally published on Medium
Recently I got into a shouting match about QuickCheck implementation for Elixir.
My original reaction:
Why? Quckcheck is for companies only. Elixir is used by zero companies (except maybe 2 startups)
My highly non-scientific view of Erlang/Elixir world is something like this (don’t get offended by circle sizes, I’m bad at Venn diagrams):
If there is a company that sponsored the development of QuickCheck for Elixir, it’s great (both for the company and Quviq). However, it offers almost zero value to the rest of us for obvious reasons:
-
QuickCheck is virtually non-existent outside companies. I’m aware of the reason behind it and I can’t really say anything against that reason (because it makes sense ☺). However, it remains a fact: if you want to access more advanced features (like testing concurrency) you need a license, which has to be negotiated with Quviq, and costs an unspecified (and, as I hear, quite large) amount of money.
-
Elixir is still at an “early adoption” stage. So there are very few companies that use it, and even fewer who will decide to go for a QuickCheck license.
-
Most companies who already have the QuickCheck license will most likely not be willing to have Elixir in their toolbelt for an obvious reason (it introduces a new language/environment/build steps etc.).
-
Another point for inaccessibility. Remember the announcement that the OTP team will start using QuickCheck (awesome!). The very first reaction was “why use something most of us will not even be able to run?”. An expected reaction, really.
So that’s the main problem I have with this announcement and presentation: you’ve whetted our appetites. Now what?
What I would really love to see instead is just a clear licensing mechanism. Let’s say something like this:
- Plan 1. $100 a month. You get a license for 1(3?) computers (that you can auth/de-auth from your profile), and 1–5 projects in QuickCheck CI. No support
- Plan 2. $500 a month. A license for 10 computers, 10 projects in CI. 5 hours support
- etc.
Then the “Testing concurrency with Elixir” presentations will be “oh, cool, I can use it” instead of “meh, I can’t use it, because I don’t even know how much it costs or whether I can afford it”.
Hence my reaction ☺ But it’s me, and I’m always bitter
Oh. By the way. If you think that I’m spreading some imagined hate about Elixir… go and take a cold shower.