Friday, July 06, 2012

Hang that heathen from the nearest... Daffodil..?

There are some woodworkers who think that anything made with the assistance of machines (except for a tablesaw or a bandsaw...) is cheating. The theory is "you can cut a dovetail in a few minutes" and "that's the way it's always been done", so anything else is cheating. Or commercial. Which is the same thing as cheating, but worse.

And I agree - hand-cut carpentry can be a delight to the eye. It can also be some of the roughest and most miserable joinery you've ever seen. It depends on how good (or, often, how pretentious) the woodworker is.

In the computer business, I've often come across folk who prefer to do by command line what someone automated centuries ago. I swear that if the water wheel was just invented, these people would insist on turning it by hand. People who used donkeys and slaves would be cajoled and those who had the temerity to use electric motors would be hung from the nearest daffodil.

I think of such things when I read blog posts like this one from Les Hill. And this one from Jeff Kreeftmeijer.

Ruby, the programming language, has a standardized way of encapsulating bits of code; they're called (naturally enough), gems. Sometimes (often) these gems rely on other gems; as a result, you need a way of indicating that. In the olden days you'd look at the ReadMe file and hope the author had remembered to include the relevant information. Quite often they included some of what you needed and you embarked upon a frustrating afternoon grand adventure of figuring out what the rest of it was, how to get it and how to install it. (This is not limited to Ruby, but was is a generic problem for all programming languages. Except LISP, where it is expected that you will flog yourself thrice daily, only once in the morning however, and are keen to embark upon mysterious and dangerous adventures. You wouldn't be a LISP programmer otherwise, would you? And Prolog. Which requires the recursive sacrifice of LISP coders... Code. I mean code. Not coders. Code. Yeah. Code, not coders... :-) )

After a few zillion years of evolution, someone came up with a way of automating all this "dependency management". They called it a Gemfile. It listed the gems your gem needed, and where they could be found. All was well. Ish. The wellishness of it all prompted a few other folk to build a different way of managing these dependencies. What they came up with was Bundler and the gemspec. Bundler is a nice bit of automation and the gemspec if an arcane bit of complexity that needs to be carefully constructed - it is the house of cards you've just built your mansion on top of.

But like those dovetail joints - fiendishly difficult or fairly easy, depending on the wood you're using - sometimes it's just better to have a machine to do the job for you. Some things are best done by hand and some things are best done by machine. You never read of a new car that comes with ignition timing and mixture controls on the dash, for instance. (Not even the Royal Enfield motorcycle comes with a mixture control anymore! It's fuel-injected, these days. Mine isn't. It has a mixture control. And a choke.) One of the things that's best done by machine is managing arcane, convoluted configuration files. These files need some manual input, and it's always helpful to understand the file itself. But to build a gemspec by hand? Yes, it's possible, but I can't think of a single valid reason why anyone would want to do that. Unless you just like doing such things. I mean, I like cutting dovetails by hand - when they go right.

Good job it's not daffodil season... :-)

Carolyn Ann

PS I will note that Messrs Hill and Kreeftmeijer make convincing cases for "rolling your own". But I well remember rolling my own cigs - and how variable they could be in quality.

No comments:

Post a Comment

Anonymous comments are disallowed for the time being.

Comments and conversation are encouraged. :-)

Miserable attempts at insult, self-pity and whiny sniveling isn't. There are other blogs that specialize in, and relish, that sort of pedantry.