[tapx-dev] Thoughts about Test::Harness 3.0
Michael G Schwern
schwern at pobox.com
Thu Jun 7 15:12:56 BST 2007
Shlomi Fish wrote:
> As a result breaking compatiblity with it in my fork, was the first thing I
> did, after converting the procedures to methods one by one. I originally
> planned to write a compatible class to Test::Harness, but eventually gave up
> on the idea. From my impression, writing a compatible Test::Harness that will
> still benefit from the newer tecnologies will be very hard to do and not
> really worth it.
>
> I think that the number of times Test::Harness, Test::Harness::Straps and
> friends were customised (being a TAP::Consumer) is very small and neglibile
> compared to the amount of times people just used "make test", "./Build test"
> or "prove". I personally heard of less than 10 such cases. And I believe
> these cases can easily be re-adapted for the newer technologies.
I live in Portland but I spend a lot of time in Pittsburgh. There's work and
$girl here. Portland has a large and healthy bicycling community with many
well maintained, interconnected bike lanes following major roads going to
interesting places. You can bring your bike on public transit, there's even
special bike lockers at the major stations. Maps of good cycling routes in
the city are easy to obtain. Many people use bikes to commute to work, even
the mayor rides his bicycle. Cars tend to be aware of bikes on the road and
they share it reasonably well. Most bridges have bike lanes and sidewalks.
http://www.portlandonline.com/transportation/index.cfm?c=34772
Pittsburgh, on the other hand, has a very small cycling community. Most are
what you might call a "fair weather" cyclists. They do it for fun, in good
weather, on side streets or on the few dedicated paths. Pittsburgh has few
bike lanes. What they do have tend not to connect together well. Its legal
to park cars in bike lanes, so you wind up weaving in and out of the bike and
traffic lanes. Car drivers in Pittsburgh do not understand how to deal with
bicycles and often yell at you to get off the road. The road shoulder which
you're riding on tend to be poorly maintained and difficult to ride on. Most
bridges do not allow non-motorized vehicles. Almost everyone in Pittsburgh
drives. [1]
Riding a bike in Portland is a joy and a lot of people do it. Riding a bike
in Pittsburgh is a personal risk and few people do it.
Now if I were to argue for more bike lanes in Portland I could point to all
the cyclists and say, "Of course we need more lanes, there's lots of
bicycles!" But were I to try to argue bike lanes in Pittsburgh one could
point at the *lack* of cyclists and say, "Nobody rides bicycles, why should we
spend money on bike lanes when nobody's going to use them? And we already
have some bike lanes, but nobody uses them!"
If something isn't being done, is it because nobody wants to do it or because
the system makes it really hard to do? Which is the cause and which is the
effect? Is nobody writing custom harnesses because they don't want to or
because Test::Harness::Straps is incomplete and unwieldy? If you make cycling
safer and more enjoyable will more people start cycling?
Let's look at history. Set the Wayback machine to early 2001. Most folks
aren't writing tests. Test.pm is all we've got and its badly documented. Do
I not write Test::More? Nobody's writing tests, why bother? Fast-forward to
late 2001. Testing is starting to gain a little traction and Test::More is
pretty good, but people aren't writing custom testing libraries. Do I not
write Test::Builder?
In economics terms, lowering the cost can reveal increased demand which would
not bite at a higher price. Remember how demand is a curve increasing with
decreased price.
http://en.wikipedia.org/wiki/Image:Price_of_market_balance.svg
Since OSS has a near-infinite supply (once its written) all we really deal
with is Total Cost of Ownership. The unknown is what the demand curve looks like.
> I hate to be the nay sayer, but I think our time is best spent on working on
^^^^^^^^
What do you mean "we", Kemosabe?
> TAP::Parser, TAP::Harness and Test::Run. Test::Harness should enter deep
> maintenance mode. It is still useful for some rudimentary TAP consuming, but
> I think it won't be smart to try to make it based on a newer technology.
On the contrary, due to the work already done to split TH into Test::Harness
and Test::Harness::Straps much of the critical work has already been done. It
should be a matter of replacing Straps (good riddance) with TAPx and then
changing those points where TH touches Straps to use the TAPx interface
instead. I believe the messy Test::Harness display code is to be left as is
unless someone has a handy river they'd like to redirect through it.
[1] Its also really hilly, while Portland is very flat, but why let a little
thing like topography get in the way of a good analogy?
More information about the tapx-dev
mailing list