İçeriğe geç
edumintsBlog
Yazılım3 dk okuma

Teal – Lua'nın Statik Tipli Bir Lehçesi

Kaynak: Hacker News

Paylaş
YazılımEdumints Blog
İçindekiler 6 başlık

Teal Hakkında#

Teal, Lua programlama dilinin statik tipli bir lehçesidir. Lua'yı tip bildirimleriyle (type annotations) genişleterek dizileri (arrays), haritaları (maps), kayıtları (records), arayüzleri (interfaces), birleşim tiplerini (union types) ve jenerikleri (generics) tanımlamanıza olanak tanır. JavaScript dünyasındaki TypeScript'in doldurduğu boşluğa benzer bir rol üstlenmeyi hedefler; ancak bunu yaparken Lua'nın minimalizm, taşınabilirlik ve gömülebilirlik (embeddability) ruhuna sadık kalır. .tl uzantılı kaynak kodlarını .lua dosyalarına dönüştüren tl adlı bir derleyici olarak uygulanmıştır.

Pratik Çıkarım: Oyun motorları, gömülü sistemler veya Redis/Nginx betikleri gibi Lua'nın yoğun kullanıldığı alanlarda projeler büyüdükçe çalışma zamanı (runtime) tip hataları yönetimi zorlaştırır. Teal, Lua'nın hafif yapısını bozmadan derleme zamanı güvenliği sağlayarak büyük ölçekli Lua kod tabanlarının bakımını kolaylaştırır.

Teal'e Hızlı Bir Bakış#

İşte Teal kodunun nasıl göründüğüne dair hızlı bir örnek:

local function add(a: number, b: number): number
   return a + b
end

local s = add(1, 2)
print(s)

Parametrelerin ve dönüş değerinin : number ile açıkça belirtilmesi, geliştiricilere kod okunabilirliği ve erken hata tespiti kazandırır. Ayrıca tarayıcınız üzerinden doğrudan Teal Playground'u kullanarak Teal derleyicisini deneyimleyebilir ve sayfanın kendi kaynak kodunu inceleyebilirsiniz.

Teal Kurulumu#

Eğer LuaRocks paket yöneticisini kullanıyorsanız, derleyiciyi aşağıdaki komutla kolayca kurabilirsiniz:

luarocks install tl

Ayrıca Linux ve Windows için önceden derlenmiş ikili (binary) dosyalar da mevcuttur. Daha büyük projeler geliştirirken tl komutunu her dosya için tek tek çalıştırmak pratik olmayacaktır. Bu noktada Teal için özel olarak tasarlanmış derleme aracı olan Cyan'ın kullanılması önerilir. Geliştirme ortamınızı güçlendirmek için Visual Studio Code entegrasyonu sağlayan vscode-teal eklentisini veya NeoVim ve diğer editörler için teal-language-server aracını kurabilirsiniz. Modern IDE desteği, otomatik tamamlama ve anlık tip kontrolü ile öğrenme eğrisini hızlandırır.

Dokümantasyon#

Teal dokümantasyonuna çevrimiçi olarak göz atabilirsiniz. Ayrıca Lua ve tiplerin tarihçesini tartışan, Teal'in arkasındaki motivasyonları özetleyen ve projenin gelişimini anlatan kayıtlı sunumlar şunlardır:

  • Minimalizm tiplere karşı (Minimalism versus types - 2019)
  • Minimalist tipli Lua burada (Minimalistic typed Lua is here - 2020)
  • Teal için sırada ne var? (What's next for Teal - 2021)
  • Teal'in beş yılı: Dil tasarımında minimalizm ve büyüme (Five years of Teal: minimalism versus growth in language design - 2024)
  • Teal ne olmalı? - Özgür ve açık kaynaklı proje yönelimleri üzerine düşünceler (What should Teal be? - musings on FOSS project directions - 2025)

Bu konuşmalar, bir programlama dilinin sadeliğini koruyarak nasıl evrimleşebileceğini anlamak isteyen yazılım mühendisleri için değerli mimari dersler içerir.

Topluluk#

Geliştirme süreçleri GitHub üzerinde yürütülmektedir. GitHub tarafından barındırılan bir topluluk forumu bulunmaktadır ve #teal-language_community:gitter.im adresi üzerinden Matrix aracılığıyla toplulukla sohbet edebilirsiniz. Teal, Hisham Muhammad tarafından başlatılan, giderek büyüyen bir katılımcı kitlesiyle geliştirilen ve bizzat Teal'in kendisi kullanılarak (self-hosted) yazılmış bir projedir!

Lisans#

Teal, özgür ve açık kaynaklı bir yazılımdır. Lisansı, tıpkı Lua gibi MIT lisansıdır.

Kaynak ve atıf

Bu yazı, Hacker News üzerinde yayımlanan içerikten yararlanılarak Edumints tarafından yapay zekâ desteğiyle Türkçe hazırlandı. Ayrıntılar ve yazarların kendi anlatımı için orijinaline bakabilirsin:

  • teal-language.org