Duck Duck Go written in Perl
duckduckgo.com
duckduckgo.com
“(c) modify, filter, obscure, or replace the text, images, or other content of Bing results, including by changing the order in which Bing results appear (but this limitation will not apply to Bing results of type "Web"), intermixing Bing results with search results from other sources, or intermixing with Bing results any other content so that the other content appears to be part of Bing results;”
I was quite interested in using Bing API myself but that does seem too restrictive. I hope you can prove me wrong!
Isn't this what he is using?
Edit: DDG does some crawling in addition to using the Bing index.
Generally we tried to delay the conversion of a component to C++ as late as possible, since it makes it so much harder to change and iterate on. We call it "pouring cement on the code". For some things it's absolutely necessary to drop to C for speed, others it doesn't make a lot of difference since you're bound by other constraints like I/O.
I wonder if they use any of the newer CPAN libs like Moose and family in the architecture?
Some Perl press as appeared on HN before. For eg: http://news.ycombinator.com/item?id=565152 (though sometimes the Perl community have done their best to keep head low on this one :)
http://www.reddit.com/r/IAmA/comments/bbqw7/i_am_the_founder...
Having written an indexer in Perl for my current startup product, I really can't see the need for using something like Moose. I'm biased though, as I'm not a big fan of OO programming. I gave it a try in Perl years ago but it really sucked. OO programming that is, but I guess Moose was designed to fix this, but it's a little too late for me. I was taught C in school and I've learned to live without OO.
Did they ever improve the rather steep performance penalty? (esp. startup)
I am not sure why anyone cares about startup time. I start my apps about once a month. 1 second instead of .1 second doesn't really matter. It's like saying, "C++ has an unacceptable performance penalty" because you have to compile your code before you use it. Yeah, you do. You can pay a million times at runtime or you can pay once at compile time.
For desktop apps, start them when you log in and connect to them via App::Persistent.
And as a side note, the compilation times for C++ made a lot of people switch to another language, although Moose is about a few orders of magnitude away from those kinds of problems.
Well Moose is certainly getting traction in some big companies like BBC, Cisco, Hearst, Symantec and Yahoo.
I don't want this to turn into a C vs C++ debate but I do agree with Linus in that it's nice being able to just grep for something.
But when it comes to OO i (nearly) always use Moose.
On a side note, i saw the previous post on DDG, where discussion was about how DDG does not store any private information. It makes sense in the context, that since he leverages upon other search engines , his cost of running is low. So he can afford to ignore user information otherwise used for commercial purpose by others.
You could write "good application and complex systems" in machine language if you work hard enough. What are you trying to say?