YQL atau Yahoo! Query Language adalah bahasa query mirip SQL (SQL-like) yang dibuat oleh engineer-engineer Yahoo! sebagai bagian dari jaringan develoment dan pengembangan produknya. Tujuan awal dari YQL ini untuk digunakan dalam mengolah dan memanipulasi data yang didapat dari API-nya ke sebuah interface berbasis web. Pertama kali YQL diperkirakan diperkenalkan dan digunakan resmi di situs Mashups.

YQL sendiri diluncurkan Oktober 2008 yang lalu berikut dengan akses ke Yahoo API-nya. Pada Februari 2009, Yahoo menambahkan kemampuan YQL bersanding dengan Google Reader, Guardian dan NYT (New York Times). Beberapa API dari YQL masih membutuhkan registrasi dan API key dari Yahoo, dan ini yang membuat sebagian developer tak serta merta menggunakan SQL-like ini.

Hingga muncullah beberapa alternatif dari YQL. Kali ini saya bahas 2 aplikasi serupa yaitu, SQLike dan JSLinQ.

1. SQLike
SQLike dibuat oleh Thomas Frank dan dirilis via http://www.thomasfrank.se/sqlike.html 1 Juni kemarin. SQLike adalah query engine untuk JavaScript dan ActionScript dengan ukuran lumayan kecil, cuma 10KB. Dengan SQLike kita bisa mendapatkan fungsionalitas dan sintaks yang serupa pada SQL untuk mengolah array atau objek bahkan array dari array yang ada.

Contohnya, kita hanya akan menuliskan sintaks berikut untuk mengolah data:

SQLike.q(
    {
        Select: ['firstName','|count|','firstName','|sum|','salary','|min|','salary','|max|','salary','|avg|','salary'],
        From: dataArray,
        GroupBy: ['firstName'],
        Having: function(){return this.count_firstName>1},
        OrderBy: ['sum_salary','|desc|']
   }
)

Unduh SQLike disini (Via Ziddu) atau disini (via Uploaded).

Lihat demonstrasinya disini (via Thomasfrank.se).

2. JSLinQ – LinQ to JavaScript
Kalau SQLike dikembangkan (baru) sendirian oleh Thomas Frank, LINQ to Javascript atau singkatnya JSLinQ ini merupakan salah satu sub project yang ada di CodePlex Open Source Community (codeplex.com) dipimpin oleh Chris Pietschmann (pemilih Simplovation LLC).

LINQ to Javascript pada dasarnya merupakan implementasi dari teknik LINQ to Object pada bahasa javascript. LINQ sendiri adalah fitur baru yang disematkan pada .NET Framework 3.5 milik Microsoft yang membolehkan bahasa mirip SQL (SQL-like) untuk meng-query semua data. Nah, khusus di JSLinQ, yang diolah adalah array.

Contohnya kita cukup menuliskan sintaks berikut:

var myList = [
            {FirstName:"Chris",LastName:"Pearson"},
            {FirstName:"Kate",LastName:"Johnson"},
            {FirstName:"Josh",LastName:"Sutherland"},
            {FirstName:"John",LastName:"Ronald"},
            {FirstName:"Steve",LastName:"Pinkerton"}
            ];
            
var exampleArray = JSLINQ(myList)
                   .Where(function(item){ return item.FirstName == "Chris"; })
                   .OrderBy(function(item) { return item.FirstName; })
                   .Select(function(item){ return item.FirstName; });

Silakan unduh LINQ to Javascript dari sini (via Ziddu) atau dari sini (via Uploaded).


Referensi:
1. http://ajaxian.com/archives/two-js-solutions-to-run-sql-like-statements-on-arrays-and-objects
2. http://jslinq.codeplex.com/
3. http://www.thomasfrank.se/sqlike.html