The Legend of Data::Query - a LINQ's awakening
By Matt S Trout (mst) from northwestengland.pm, dahut.pm, drinkers.pm, lgbt.pm
Date: Wednesday, 17 August 2011 12:30
Duration: 40 minutes
Target audience: Intermediate
Language:
Tags: class database db dbix linq orm sql
Many years ago, an object database called Tangram was created, and
fascinatingly its query syntax was ... just Perl. Until you got to certain
edge cases *sweep sweep sweep* just ignore the bulge under the carpet, ok?
Slightly fewer years ago, I began a massive refactor/rebase of Class::DBI
that accidentally resulted in an ORM called DBIx::Class. Now hopefully one
of the most powerful SQL metaprogramming tools on the planet, I've grown
more and more irritated over time that its data structure based query
interface was neither SQLish nor particularly perlish.
My first glimpse of LINQ in C# revealed that not only were ideas I'd been
mooting for some time feasible but that they could be done in a language
noticeably less dynamic than Perl. And that therefore it was my duty to take
the good parts of the solutions they'd already come up with and blatantly
steal them.
Data::Query is the discharging of that duty. And I hope you're all going
to fall in love with it as much as I already have.
- Leon Brocard (acme)
- Leon Timmermans (leont)
- Nicholas Clark
- Dave Cross (davorg)
- Alexander Hartmaier (abraxxa)
- Leo Lapworth (ranguard)
- Dmitry Karasik (McFist)
- Steffen Schwigon (renormalist)
- Gianni Ceccarelli (dakkar)
- Laurent Dami (dami)
- Claes Jakobsson (claes)
- Mark Keating (mdk)
- David Faux
- Bartosz Jakubski (migo)
- Chisel Wright
- Adam Taylor (adam-_-)
- Anatoliy Dmytriyev (tolid)
- Lars Dɪᴇᴄᴋᴏᴡ (daxim)
- Mallory van Achterberg (Stomme poes)
- Lukáš Rampa
- Torsten Raudssus (Getty)
- Patrick Mevzek
- Gabriele Hack (gabimuc)
- Dietrich Raisin
- Patrick Michaud (Pm)
- Uwe Voelker (Perl-Uwe)
- Markus Förster
- Aliaksandr Zahatski (zag)
- Silvano Luciani
- Oskari Ojala (Okko)
- Trond Michelsen (trondmm)
- Valentin Guillois
- Ben Tisdall (bentis)
- Martin Kjeldsen (baest)
- Andreas Vögele
- Michael Lang (langmic)
- Florian Ragwitz (rafl)
- Daniel Blom
- roger blom
- Ovidiu Satmari (ovidiu.satmari)
- Stefan Seifert (Nine)
- marc chantreux (eiro)
- Andrew Solomon (illy)
- Teemu Nuutinen
- Marc Jakobs
- Dagfinn Ilmari Mannsåker (ilmari)
- Fernando Vezzosi (Bucciarati)
- Tomasz Czepiel (tjmc)
- Jason Tang (jason)
- ribasushi +1
- Ulrich Wisser (wisser)
- Noah Kogler
- Marko Kind
- Anders Nielsen (anielsen)
- Paul van Eldijk (pavel)
- Mårten Svantesson
- Gunnar Koppel (wk)
- Alexander Orlovsky (nordicdyno)
- rosario colletti (rosariocolletti)
- Jan Henning Thorsen (batman)
- Zbigniew Lukasiak (zby)
- Michael Jemmeson (michael)
- Andrew Jones
- Jörg Plate (Patterner)
- Sergei Kirjanov
- Alex Timoshenko
- Chad Davis (chadadavis)
- Peter Shangov (pshangov)
- Jordi Raimon Subirats
- Magnus Zeisig (magnuz)
- Jesse Vincent
- Ben Thomas (ozukira)
- MET
- Grzegorz Dzięgielewski (Jabbas)
- Matthias Zeichmann
- Gertraud Unterreitmeier (Gertraud)
- Karsten Silkenbaeumer (ksi)
- Nikolay Morev
- Łukasz Siemiradzki (plluksie)
- Christoph Otto (cotto)
- Gligan Calin Horea
- Tom Hukins
- Carlos Juan Diaz (cjuan)
- Francoise Dehinbo (franky)
- Lisa Hansen (iamlgh)
- Lars Holgaard
- Markus Pinkert (Bedivere)
- Jose Neta (jpn)
- Smylers
- Felix Antonius Wilhelm Ostmann (Sadrak)
- Nikolay Mishin (mishin)