Programlamada Hata Avcısı: Erlang
Donanım ve Yazılım Haberleri
Erlang, Ericsson tarafında 1986 yılında geliştirilmeye başlanmış bir programlama dili. Karmaşık işlemleri için de rahatlıkla kullanılabiliyor.
Danimarkalı matematikçi Agner Krarup Erlang için isimlendirilen bu programlama dili, kendi telekomünikasyon ürünleri için yazılım geliştirmek amacıyla Ericsson tarafından geliştirildi.
1998 yılında ise açık kaynak kodu olarak serbestçe sunulmaya başlandı. Bu programlama dili daha çok telekom projeleri yazılımlarını geliştirmeye yardımcı olması için tasarlanmıştı. Erlang, OTP (Open Telecom Platform, Açık Telekom Plaformu) temelli bir programlama dili. Yani Erlang, bir ağdaki farklı bilgisayarlar arasında dağıtılabilen güçlü program sistemleri geliştirmek için tasarlanmış bir programlama dili.
Erlang, diğer dillerde gerçekleştirilmesi mümkün olamayan veya zor olan bir takım kolaylıklar sağlıyor. Bu kolaylıkların nedeni ise Earlang’in gelişiminin telekom odaklı olması. Bu kolaylıklara örnek vermek gerekirse, Earlang’in çok fazla sayıda eşzamanlılık modeli içermesi ve kod bloklarının aynı zamanda ayrı ayrı olarak birden fazla çalışmasına imkân sağlamasıdır. Erlang, çoklu iş parçacığını desteklemesiyle Java programlama diline benziyor. Buna karşın Java web teknolojilerine odaklanırken, Erlang büyük dağıtık sunucu ve gömülü sistemlere odaklanıyor. Erlang süreçlerdeki hataların tespitine yönelik olarak hata modeli kullanma imkânı da sağlıyor aynı zamanda. Bu hata modelinin kullanımıyla birlikte, yüksek tolerans ve riskli projelerin gerçekleştirilmesine de imkân sağlanıyor. Earlang programlama dili dağıtık sistemlerde de çok rahatlıkla kullanılabiliyor.
Erlang, ağ ve web tabanlı uygulamalar için de dağıtık, ölçeklenebilir ve yüksek performanslı bir ortam sağlıyor. Erlang programlama dili diğer programlama dillerine göre daha işlevsel bir programlama dili olarak karşımıza çıkıyor. İşlevsel programlama diliyle “komutların” yürütülmesi yerine “ifadelerin” değerlendirilmesini ön planda tutuluyor.
Erlang programlama dili;
- Genel amaçlı, eş zamanlı, dinamik ve fonksiyonel bir dildir.
- İş parçacıkları ağın farklı bir noktasında dağıtık (distributed) bir şekilde çalışabilir.
- Arıza toleranslarına (Fault-tolerant) dayanıklılığı yüksektir.
- Gerçek zamanlı (Real-time) çalışmaya yapısı uygundur.
- İş parçacıkları program tarafından açıkça belirtileceği gibi farklı bir nokta çalıştırılarak görünmez hale de gelebilir.
- Dinamik veri tipi sağlar ve veri tipleri soyutlanabilmektedir.
- Gerçek zamanlı bellek yönetimi yapmakta olup, çöp toplama (garbage collecting) özelliğine sahiptir.
- Dağıtık mimariyle, sunucu havuzunda programların dağıtımını desteklemekte olup, bir sunucunun başarısız olduğu durumda dinamik olarak otomatik kurtarma ve yeniden dağıtımı kolaylığı sağlamaktadır.
- Erlang’ın, hataya dayanıklılık, dağıtılmış işleme, büyük miktarda eşzamanlı veri işleme, milisaniye cinsinden gerçek zamanlı yanıt süreleri ve kesintisiz çalışma gerektiren arka uç sistemlerini geliştirirken Java’dan üstün olduğunu iddia edilmektedir.
- İstemci-sunucu tasarımı, durum makineleri, olay dağıtımı ve iş parçacığı denetimi için tasarım kalıpları veya şablonlarla birlikte gelmektedir.
- Erlang’ın bayt kodu, tüm platformlarda aynıdır.
- İçerinde kullanıma hazır, Erlang programlama diliyle yazılmış birçok bileşen bulunmaktadır (https, snmp vb. ).
- C, C ++ ve Java ile karşılaştırıldığında nispeten kolaydır.
Bilişim Uzmanı Savaş ÇITLAK