Erlang Nedir?

Erlang, bir programlama dilidir. Ama sadece bir programlama dili değil, aynı zamanda bir trafik trafiği yük birimi, bir istatistiksel dağılım ve bir dağın adıdır. Bu kadar çok şeyi aynı anda nasıl olabilir? Bu sorunun cevabı çok basit: tesadüf. Evet, evet, tesadüf.

Erlang Nedir?

Merhaba! Erlang hakkında konuşmaya ne dersin?

Erlang programlama dilinin adı, Danimarkalı matematikçi Agner Krarup Erlang'dan gelir. O, telekomünikasyon kullanımının istatistiksel ölçümü için erlang birimini tanımlamıştır. Erlang dağılımı ise, erlang biriminin olasılık teorisindeki karşılığıdır. Erlang dağı ise, Çin'in Sichuan eyaletinde bulunan ve 6.000 metreden yüksek olan bir dağdır. Bu dağın adının nereden geldiği ise bilinmemektedir. Belki de bir Çinli matematikçi veya programcı tarafından verilmiştir. Ya da belki de sadece tesadüf.

Aslında Erlang, çok sayıda eşzamanlı işlemi destekleyen bir programlama dilidir ve Erlang'ın bazı özellikleri şunlardır:

- **Fonksiyonel** bir paradigma kullanır. Bu, verilerin değişmez olduğu ve fonksiyonların yan etkileri olmadan girdileri çıktılara dönüştürdüğü anlamına gelir.
- **Dağıtık** bir sistem olarak tasarlanmıştır. Bu, farklı makinelerde çalışan Erlang işlemlerinin birbirleriyle kolayca iletişim kurabildiği anlamına gelir.
- **Hata toleranslı** bir mimariye sahiptir. Bu, Erlang işlemlerinin birbirlerini izleyebildiği ve hataları yakalayıp düzeltebildiği anlamına gelir.
- **Sıcak kod değiştirme** özelliğine sahiptir. Bu, Erlang programlarının çalışma zamanında güncellenebildiği anlamına gelir.

Erlang, telekomünikasyon, web sunucuları, veritabanları ve yapay zeka gibi alanlarda kullanılmaktadır .

Erlang, 1986 yılında Ericsson şirketinde telekomünikasyon sistemleri için geliştirilmeye başlanmış, 1998 yılında açık kaynaklı hale gelmiş bir dildir. Erlang, özellikle dağıtık, paralel, gerçek zamanlı ve hataya dayanıklı sistemler için tasarlanmıştır. Erlang'ın en önemli özelliklerinden biri, işlemci sayısından bağımsız olarak çok sayıda iş parçacığı (thread) oluşturabilmesidir. Bu sayede Erlang, yüksek performanslı ve ölçeklenebilir uygulamalar geliştirmek için ideal bir seçenektir.

Erlang'ın diğer bir önemli özelliği de, iş parçacıkları arasında mesajlaşma (message passing) yöntemiyle haberleşmesidir. Bu yöntem, iş parçacıklarının birbirlerinin durumunu veya belleğini etkilemeden veri alışverişi yapmasını sağlar. Böylece Erlang, klasik paylaşımlı bellek (shared memory) yaklaşımının getirdiği sorunlardan kurtulur. Mesajlaşma yöntemi, aynı zamanda dağıtık sistemlerde farklı makinalar arasında iletişim kurmayı da kolaylaştırır.

Erlang'ın bir diğer ilginç özelliği de, kendi sanal makinası üzerinde çalışmasıdır. Erlang sanal makinası (Erlang VM), Erlang kodunu derleyip çalıştıran bir yazılımdır. Erlang sanal makinası, aynı zamanda iş parçacıklarının yönetimini, hata yakalama ve izolasyonunu, kodun sıcak değiştirilmesini (hot swapping) ve daha birçok işlevi gerçekleştirir. Erlang sanal makinası sayesinde Erlang kodu, farklı platformlarda kolayca çalıştırılabilir.

Erlang'ın sözdizimi (syntax), diğer programlama dillerine göre oldukça farklıdır. Erlang, fonksiyonel bir programlama dilidir. Yani programlar fonksiyonlar halinde yazılır ve fonksiyonlar birbirlerini çağırarak çalışır. Fonksiyonel programlama dilleri, değişkenleri değiştirmek yerine yeni değerler üretmeye odaklanır. Bu sayede programların daha anlaşılır, güvenilir ve test edilebilir olması sağlanır.

Erlang'ın sözdizimi, Prolog adlı mantıksal programlama dilinden esinlenmiştir. Erlang'da her ifade noktalı virgül (;) ile bitirilir ve her fonksiyon nokta (.) ile sonlandırılır. Ayrıca Erlang'da değişkenler büyük harfle başlar ve atama işlemi (=) eşitlik kontrolü olarak kullanılır.

Erlang'ın Türkçe kaynakları oldukça sınırlıdır. Ancak İngilizce olarak pek çok kitap, makale ve video bulunmaktadır. Ayrıca Erlang'ın resmi web sitesi https://www.erlang.org/ adresindedir. Burada Erlang'ın kurulumu, belgeleri, örnekleri ve daha fazlasını bulabilirsiniz.

Erlang'ı öğrenmek isteyenler için tavsiyem, öncelikle fonksiyonel programlama mantığını kavramak ve sonra Erlang'ın sözdizimine alışmaktır. Erlang'ı öğrenmenin en iyi yolu, pratik yapmaktır. Bu yüzden Erlang'la ilgili küçük projeler geliştirmeye çalışın. Erlang'ı öğrenirken karşılaştığınız sorunları veya merak ettiklerinizi, Erlang topluluğuna sorabilirsiniz. Erlang topluluğu, oldukça yardımsever ve aktiftir. Erlang topluluğuna katılmak için https://erlangcentral.org/ adresini ziyaret edebilirsiniz.

Erlang'ın kullanıldığı bazı popüler uygulamalar şunlardır:

- WhatsApp: Dünyanın en popüler mesajlaşma uygulaması olan WhatsApp, Erlang ile yazılmıştır. WhatsApp, milyarlarca kullanıcıya hizmet vermek için Erlang'ın ölçeklenebilirlik ve performans avantajlarını kullanmaktadır.
- RabbitMQ: Açık kaynaklı bir mesaj kuyruğu yazılımı olan RabbitMQ, Erlang ile geliştirilmiştir. RabbitMQ, farklı programlama dilleri ve platformlar arasında veri alışverişi sağlamak için Erlang'ın aktör modelini kullanmaktadır.
- CouchDB: Açık kaynaklı bir belge tabanlı veritabanı olan CouchDB, Erlang ile yazılmıştır. CouchDB, dağıtık sistemlerde veri tutarlılığı sağlamak için Erlang'ın sıcak kod değiştirme özelliğinden yararlanmaktadır.

Erlang, günümüzde internet uygulamalarının karşılaştığı zorluklara çözüm sunan bir programlama dilidir.

Erlang, gerçekten çok ilginç ve güçlü bir programlama dilidir. Özellikle dağıtık ve paralel sistemlerde, Erlang'ın sunduğu avantajlardan yararlanmak mümkündür. Erlang'ı öğrenmek, sizi farklı bir programlama paradigmasına götürecek ve programlama yeteneklerinizi geliştirecektir. Bu yüzden siz de Erlang'ı deneyin ve kendinizi şaşırtın!

Umarım bu yazı sizlere Erlang hakkında faydalı bilgiler vermiştir. Bir sonraki yazımda görüşmek üzere, hoşçakalın!