HUML Nedir? İnsan Odaklı İşaretleme Dili (Deneysel)

HUML (Human-oriented Markup Language — Deneysel), belgeler, veri kümeleri ve konfigürasyonlar için tasarlanmış basit ve katı bir serileştirme dilidir. Birincil hedefi, insan tarafından okunabilirliği ve düzenlenebilirliği ön planda tutmaktır. Görünüş olarak YAML’a benzer; ancak karmaşıklığını, belirsizliklerini ve yaygın hataya açık noktalarını azaltmayı amaçlar.
HUML Nasıl Görünür?
Aşağıdaki örnek, bir HUML belgesinin biçimini gösterir. Liste ve sözlükler satır içinde (inline) veya çok satırlı olarak yazılabilir. Girintiler hiyerarşiyi açıkça ifade eder.
website::
hostname: "huml.io"
ports:: 80, 443 # Satır içi liste
enabled: true
factor: 3.14
props:: mime_type: "text/html", encoding: "gzip" # Satır içi sözlük
tags:: # Çok satırlı liste
- "markup"
- "webpage"
- "schema"
haikus::
one: """
A quiet language
Lines fall into their places
Nothing out of place
"""
Neden HUML?
HUML, özellikle YAML ile çalışırken yaşanan hayal kırıklıklarından doğdu. YAML’da tek bir fark edilmesi zor girinti değişikliği bile bir belgenin anlamını tehlikeli şekilde değiştirebilir. Diğer popüler diller (TOML, HCL) çoğunlukla konfigürasyona odaklıdır. NestedText ilginç bir yaklaşım sunsa da daha geniş kullanım alanları için fazla ilkel kalır. JSON evrenseldir; ancak yorum satırı yoktur, katı ve tutarlı bir okuma formu sunmaz, parantez eşleştirme/formatlama zorlukları insan eliyle düzenlemeyi güçleştirir.
YAML; yapı ve hiyerarşiyi görsel olarak ima etme konusunda en yakınıdır. Yine de HUML, pek çok dilden ilham alarak tek bir şeyi öncelemeye çalışır: insan tarafından okunabilirlik ve bağlamlar arasında tutarlı bir biçim.
Kısacası, “Neden bir başka işaretleme dili daha?” Çünkü amaç; hatalardan arındırılmış, tutarlı ve gözle taraması kolay bir biçimi dayatmaktır.
Amaçlar
- İnsan tarafından okunabilirliği ve düzenlenebilirliği en üstte tutmak
- Veri yapıları ve hiyerarşileri görsel olarak kavranabilir kılmak
- Sözdizimi ve veri tiplerinde belirsizlikleri ve “footgun”ları önlemek
- Mümkünse bir şeyi ifade etmenin tek bir yolu olmasını sağlamak
- Ortamdan bağımsız, biçimsel olarak katı ve tutarlı bir form sunmak (formatlayıcı gerektirmemek)
Temel Özellikler (Özet)
- Katı biçim: Rastgele varyasyonlara izin vermez; belgeler daha tahmin edilebilir olur.
- Satır içi ve çok satırlı yapı desteği: Listeler ve sözlükler hem kısa hem de uzun formlarda yazılabilir.
- Yorum ve açıklama dostu: İnsanların belgeyi okurken bağlamı kaybetmemesi amaçlanır.
- Görsel hiyerarşi: Anlam, girintilerle netleşir; sessizce bozulması zorlaşır.
Ne Zaman Kullanılır?
- İnsanların düzenlediği konfigürasyon dosyaları
- Okunurluğun kritik olduğu belge ve veri kümeleri
- YAML/TOML/JSON arasında tercih yaparken “tek biçim, az sürpriz” arandığında
Son Söz
HUML, görece yeni ve deneysel bir yaklaşım. Nihai hedefi, hem geliştiriciler hem de teknik olmayan kullanıcılar için “okuması kolay, yazması güvenli” belgeler üretmek. Spesifikasyonlar ve ayrıntılar için: “Spesifikasyonları oku →” (bağlantı sağlanınca güncellenecektir).