9 puan yazan GN⁺ 2025-04-15 | 2 yorum | WhatsApp'ta paylaş
  • Fennel, Lua çalışma zamanında çalışan bir programlama dilidir
  • Lua, basit ama güçlü bir programlama dilidir; başka programlara kolayca entegre edilir ve kullanıcılara yeniden programlanabilirlik sağlar
  • Fennel, Lua'nın zayıf yönlerini tamamlayarak daha açık ve hata olasılığını azaltan bir alternatif sunar
  • Fennel, Lisp ailesine ait sözdizimini kullanarak sözdizimsel karmaşıklığı azaltır ve kodun okunabilirliğini artırır
  • Fennel, değişken yeniden atama, tablo gösterimi ve fonksiyonların argüman denetimi gibi konularda Lua'ya göre geliştirilmiş özellikler sunar

Fennel nedir?

  • Fennel, Lua çalışma zamanında çalışan bir programlama dilidir
  • Lua, basit ama güçlü bir dildir; başka programlara kolayca entegre edilir ve kullanıcılara yeniden programlanabilirlik sağlar
  • Fennel, Lua'nın zayıf yönlerini tamamlayarak daha açık ve hata olasılığını azaltan bir alternatif sunar

Lua'nın avantajları

  • Lua, yaklaşık 19.000 satır C kodundan oluşan ve 278kb olarak derlenen küçük ve hızlı bir dildir
  • Kavramsal sadeliği korurken güçlü özellikler sunar
  • Başka programlara kolayca entegre edilerek kullanıcıların programı yeniden programlayabilmesini sağlar

Fennel'in başlıca özellikleri

  • Fennel, Lisp ailesine ait sözdizimini kullanarak sözdizimsel karmaşıklığı azaltır ve kodun okunabilirliğini artırır
  • Her şey bir ifade olarak ele alınır; operatör önceliği veya erken dönüşle ilgili belirsizlik yoktur
  • Değişkenler: Genel değişken kullanımını zorlaştırarak hataları azaltır ve yeniden atama sırasında var kullanarak açıklığı artırır

Tablolar ve döngüler

  • Fennel, tablo gösterimini geliştirerek diziler ile anahtar/değer tablolarını ayırır
  • Döngülerde for ve each kullanarak açık bir sözdizimi sunar

Fonksiyonlar ve diğer özellikler

  • Fennel, fonksiyonlar için argüman denetimini destekler ve eksik argüman durumunda hata üretir
  • Destructuring ve pattern matching destekleyerek daha bildirimsel koşul ifadeleri yazmayı mümkün kılar
  • Makro sistemi içerir; böylece yeni sözdizimi biçimleri kolayca genişletilebilir

2 yorum

 
GN⁺ 2025-04-15
Hacker News görüşü
  • Yeni dillerin Lua runtime’ını hedeflediğini görmek keyifli

    • Kısa süre önce bir SSE sunucusunu Lua ile programlanabilir hale getirdim
    • Lua ve mlua-rs Rust binding’lerini şiddetle tavsiye ederim
  • Fennel güzel

    • neovim yapılandırmamı Fennel’e çevirdikten sonra pişman olmadım
  • Forth, Lisp ve Lua’nın yanı sıra Tcl de küçük bir gömülü dil olarak anılmayı hak ediyor

    • v8 sürümünden itibaren karmaşıklaştı ama ilk sürümleri çok basitti
    • Ousterhout’un kitabını okuyup etkilenerek kendim de uyguladım
  • LISPy dillerin çekiciliğini anlayamıyorum

    • Parser’ı basit ve zarif ama geliştiricilerin kullanıcı rahatlığını öncelemesi gerektiğini düşünüyorum
    • Kod yazmak zahmetli ve gereksiz yere çok sembol var
    • C benzeri sözdizimini parse etmek o kadar da zor değil
  • Fennel’in Lua’ya derlenirken meta programlama yeteneklerini koruyan yaklaşımı zarif

    • Sözdizimi Clojure’u hatırlatıyor ama JVM overhead’i yok
    • Gömülü sistemler veya oyun geliştirme için uygun bir kombinasyon
  • Fennel oldukça iyi

    • Keşke kademeli type desteğine ya da statik araçlar için type annotation’lara izin verse
    • Dinamik tipleme geçerli bir tercih ama kademeli type desteği olan diller çoğaldığı için geri dönmek zor
  • Lua üzerine inşa edilmiş başka diller arayanlar için bilgi

  • Parantezlerden şikayet edenler muhtemelen yeterince Lisp kodlamamıştır

    • Parantezleri aştığınızda dilin homojenliği parlıyor ve neden Lisp sevildiğini anlıyorsunuz
  • Gündelik ve eğlenceli oyun geliştirme için iyi

    • TIC-80 bunu doğrudan destekliyor ve Fennel’den PICO-8’e kolayca geçilebiliyor
 
nemorize 2025-04-15

MoonScript bağlantısı yanlış verilmiş görünüyor~
https://moonscript.org/