meta data, aslında her şey bir başka şeyin meta datasıdır. nasıl ki beynimizin ilkel ve az evrimleşmiş kısmının üstüne eklenen korteks, bir nevi meta beyin ise, alt beyindeki imgeleri çağırmak için kullandığımız kelimeler de meta imgelerdir. kelimelerin de metası vardır, kavramlar oluşur birden çok kelime havuzuyla ilintili. kelimeleri kullanıp cümleler oluşturursunuz, cümlenin kendisi bazen çapalanmalıdır ve deyimler ve atasözleri gibi meta cümleler oluşur. bir paragraf yazarsınız, birkaç tane daha ve bir yazı oluşturursunuz, yazının konusu ve ilintili olduğu kavramların benzerlerini aramak istersiniz, o zaman "bu yazının konusu ne, benzerini bulmak istiyorum" sorusuna cevap bulabilmek için onun meta verisi olan anahtar kelimeleri icat edersiniz.
kod yazarsınız, yazdığınız kod, işlemci seyivesindedir. bir dizi kod, işlemciye basit bir döngü yaptırır ve birkaç satırdan oluşur. sonra kodun meta kodunu icat edersiniz, böylelikle bir for döngüsünü tek satırda tanımlarsınız. sonra bu meta programlamada da belirli işlemleri tekrar tekrar yaparsınız ve buna bir isim koyarsınız. misal, bir kaynağın otomatik olarak başka bir kaynağa gömmek alışkanlığınız olur, yazdığınız kodda bir kontekst yaratırsınız ve o kontektste tekrar tekrar kullanılan aynı kaynağı tek kerede tanımalmak istersiniz. oldu mu size dependency injection
, e bunu da tanımalmak için annotation
kullanırsınız, ne yaptınız? yazdığınız kodun içinde bir meta veri tanımladınız o annotation ile.
çıktınız bir framework yazdınız, yazdığınız framework'ün parametrelerini tanımlamak istiyorsunuz, ve bu tanımlar oldukça uzun bir konfigürasyon dosyası oluyor. koşullara da ihtiyaç duyduğunuzu farkediyorsunuz, birden çok konfigürasyon yapmaktan kurtulmak için diyorsunuz ki "böyle basit bir dil olsa, bu konfigürasyonu tanımlasa", e siz scripting dili icat ettiniz ya da kullandınız. ne oldu, framework'ün meta datasını tanımladınız.
yani sözün özü, evren bu şekilde genişliyor. nicelikteki çokluğun niteliklerini tanımlamak için, o verinin meta verisini, bir üst düzlemdeki halini tanımlıyorsunuz, katman katman içinde bulunduğunuz düzleme ortogonal bir eksen tanımlayıp, düzlemler ailesini kontrol ediyorsunuz ve bu böyle devam ediyor her seferinde bir üst uzaya atlayarak.
başka bir örnek de matematikten olsun. türev, bir fonksiyonun meta fonksiyonudur, türevle o fonksiyonun değişim fonksiyonunu elde edersiniz. aslında türevdeki katsayılar, fonksiyonun metadatasıdır ve bir türev fonksiyonu, birden fazla fonksiyona karşılık gelebilir. y = 3*x + 5'in türevi 3'tür, yani x başına 3 artan tüm fonksiyonlar, bu türeve sahiptir. bu durumda y = 3*x + n olan sonsuz adet fonksiyonu tüm fonsiyonlardan ayırmış olursunuz, yani elinizde bir meta data var, ve bu, sadece x başına 3 artan fonksiyonları tanımlıyor.
meta verinin, meta verisinin, meta verisi...