On ducks and ducklings
It seems there is a new search engine in town: DuckDuckGo. While in itself it’s a good thing — if anything, Google needs some competition — it’s disturbing how much unreflected hype it produces in the Perl community.
I generally disapprove of the “because it’s not Google” argument. Just because someone is not Google, doesn’t mean they are good per definition — neither is Google evil per definition. You need to fairly rate each contender and base ratings on facts: features, existing problems, evaluations etc. On this scale, technical arguments for Duck1 has been not really compelling enough for me to switch.
But one argument shouldn’t be compelling for anyone: DuckDuckGo is written in Perl. Because it doesn’t matter at all.
You remember Frederic Brooks’ “No silver bullet” essay? In a nutshell, it’s stating “There is no single technology that’s best for every task”. A solution should use whatever is most suited for the task, not the next best hype. If you do embedded programming, you’d probably go with C, doing much mathematical stuff brings you to Haskell and in complex networking you might be better off with Erlang. Normally you wouldn’t be doing web-development in Bash, but you’d take whatever is best suited for the task instead. If you have several options then you get to choose whatever you’d be more efficient with. Like, for example, Perl.
But nobody should care about which language you chose just as nobody should care what DuckDuckGo is written in. It’s a nice bonus if your favourite search engine is made with technologies you like, but it shouldn’t matter — what matters is that it gets stuff done.
If someone were to make a survey asking geek what programming language Google’s search engine is written in, he’d probably get a hundred different answers, depending of what every one of respondents has heard on different occassions from different sources. And probably, every one of them will be right to a certain degree: Google does many languages and many technologies — whatever it takes to get stuff done. A solution is always a mixture, even in IT.
The mere fact that DuckDuckGo is written in Perl will be good publicity and a good showcase for Perl, but only if or when DuckDuckGo takes off big time. Geeks won’t be the critical mass for Duck’s takeoff, instead “normal” people will — and Duck will need a lot of them. They’ll matter a lot: if they like Duck, Google will be getting some competition, if not, well, Duck will be offline pretty soon then. Either way, its success or failure will be based on features (or lack thereof), speed (or lack thereof) or maybe free gas coupons for every millionth visitor (or lack thereof).
But not on Perl being the programming language.
- Noticed how I called this thing “Duck”? I’m certainly not calling it DDG or DuckDuckGo, since it’s just too difficult to pronounce. And “Duck” is nowhere near “Google” — “I’ve ducked you on the internet…” just sounds weird ↩