Neden Türkçe Yazılım Dili?

Neden Türkçe Yazılım Dili?

Samimi olacak olursak, en azından benim izlenimim böyledir, profesyonel yazılım çözümleri genelde anadili İngilizce olan veya ikinci resmi dili İngilizce olan ülkelerden çıkıyor. Bunun sayısız örnekleri vardır.

İngilizcenin birincil dili veya ciddi etkisi olmayan ülkelerden profesyonel çözümler ya hiç çıkmıyor, yada yok denecek kadar azdır.

Bu sebeple bence her dilde yazılım dili olmalıdır. Ülkesinin bilişim sektörüne önem veren her memleketin kendi dilinde yazılım dilleri geliştirilmesine destek vermesi bence çok gerekli birşey.

En azından Türkçe dilinde artık bir yazılım dilimiz var. Tabi başka çalışmalarda var ve bu çalışmaların tümüne saygı duyuyorum.

Fakat bir yazılım dilini yazılım dili yapan şey sadece bir takım kelimelerin türkçeye çevrilmesi değildir. Öncelikle çokça yanlış algılanan bir meseleyi düzeltelim:

Bilgisayar İngilizce anlamaz. Bilgisayarın tek bir dili vardır, o da matematiktir. Biz hangi dilde kod     yazarsak yazalım, o kodu mutlaka bilgisayarın anladığı dile çevirmek zorundayız. Eğer bunu yapamazsak, o kod hiçbir işe yaramaz ve etkisiz kalır.

Peki bir yazılım dilinin özellikleri neler olmalı?

Bir yazılım dilinde aranan kriterler şöyle olmalı:
  • Kolay ve rahat anlaşılır bir gramere sahip olması
  • Az kod ile çok iş yapabilmesi
  • Sadece yazılım dili olması değil, aynı zamanda işe yaraması için imkanlar sunması (mesela modüller, hazır kodlar vesaire)
  • İyi ve kolay anlaşılır dokümantasyonu ve yardım kaynakları bulunması ve sunulması
  • Dil ile kolay ve hızlı çözümlere ulaşabilmek için ek bir editörü veya kod geliştirme aracı (IDE) olması
  • Mümkün oldukça çok makina ve işletim sisteminde mevcut olması
  • Son olarak insan dili bariyerini minimuma indirmesi veya ortadan kaldırması
Evet bu noktaları birde ayrıntılı olarak gözden geçirmekte fayda var.

Kolay ve rahat anlaşılır bir gramere sahip olması

Peki bu ne demek? Eğer bir yazılım dili kolay anlaşılamıyor ise ve onu anlamak ve onunla kod geliştirebilmek için çok zaman ve çok gayret (özellikle anlamak, konsepti çözmek için) gerekiyor ise, ilgilenen bir çok kişi kısa sürede pes edebilir ve söz konusu dili öğrenmekten usanabilir.

Bir yazılım dilinin bu sebepten dolayı ilk karşılaması gereken kriter ilgilenen kişiler için genel olarak çabuk anlaşılabilir ve kolay kullanılabilir olmasıdır. Bu durum dilin yapsını birebir etkiler:
  • Anahtar kelimelerin iyi seçilmesi gerekir
  • Kuralların hem akılda kalması için, hemde zamandan tasarruf etmek için, çok kolay ve kısa olmaları gerekir
  • Dilin gramer yapısı kolaylık açısından esneklik sağlayabilmeli, ama aynı zamanda katı kurallı olmalı ki, öğrenmesi kolay olsun

Az kod ile çok iş yapılabilmesi

Bu ne demek? Yani basit bir işlemi gerçekleştirmek için mümkün oldukça az kod girmek demektir.

Mesela bir değişken düşünelim. Bu değişkenin değerini bir döngü içinde her seferinde iki puan artırmak istediğimizi farzedelim. Kod mesela şöyledir:

x = x + 2

Ama bunu daha kısa yazabilme imkanı olmalıdır. Basitçe'de mesela şöyle:

x += 2

Veya aynı fonksiyonu ard arda farklı parametreler ile çalıştırabilmek. Mesela:

fonksiyonum ( 1; 2; 3 )
fonksiyonum ( 4; 5; 6 )
fonksiyonum ( 7; 8; 9 )

Bu örneğin Basitçe karşılığı şöyle kısaltılabilir:

fonksiyonum ( 1; 2; 3) &&
                      ( 4; 5; 6 ) &&
                      ( 7 ; 8; 9 )

Sadece yazılım dili olmaması lazım, imkanlar sunmalı

Bir yazılım dili temelde sadece veriler yönetsede, işe yarayabilmesi için olanaklar sunması lazımdır. Basit bu konuda mesela ne gibi olanaklar sunar? Bazıları şöyle:
  • Kütüphane desteği
  • Kütüphane desteği ile birlikte işletim sistemi API'lerine erişim
  • Standart modüller (mesela Pencere, Buton, Liste, Bellek, Veritabanı, Ağ vesaire)
Peki bunlar neden önemli? Eğer bir yazılım dili teknik olanaklar sunmaz ise, sadece öğretim için bir vasıta olarak kalır. Böyle bir dil zamanlada unutulabilir. Çünkü birkaç hesaplama işlemi dışında hiçbir işe yaramaz.

Yazılım dilini yazılım dili yapan en önemli faktörler arasında sunduğu imkanlar gelmektedir.

Dokümantasyon ve Yardım Kaynakları

Bir yazılım dilini geliştirmek bir yana, o dille kod geliştirebilmek için olmazsa olmazı, yardım kaynakları ve dokümantasyonu şarttır.

Eğer dili kullanmayı ve neler yapılabileceğini bilemezsen, bir dile ne kadar merak duyarsan duy, sonunda pes eder ve ondan vazgeçersin.

Dokümantasyon genel bilgi ve dil yapısı, kuralları vesaire hakkında bilgi verirken, yardım kaynakları bir çok sorulara yanıt ve örnek kodlar sunar. Peki Basit bu alanda neler sunuyor?
  • Kurulu sürüm beraberinde lokal yardım kaynakları ve örnekler getiriyor
  • www.basit.web.tr sitesinde Kılavuz sekmesi altında dil ile ilgili dokümantasyon ve yardım kaynaklar bulunur
  • Ayrıca forum.basit.web.tr üzerinde foruma geçebilir ve orada her türlü soru sorulabilir ve yardım alınabilir

Editör veya IDE olması gerekir

Bir yazılım dilinin birinci destekçisi beraberinde gelen veya sunulan kod geliştirme aracıdır. Birçok ücretsiz yazılım dili böyle bir araç sunmaz. Fakat bu tür araçlar ücretli veya ücretsiz başka kaynaklardan elde edilebilir.

Ama iyi bir yazılım dili kendi aracını kendisi sunar. Böylece her ilgili alan için kendi aracı her türlü desteği ve imkanı sunar. Bu sayede dili kullanırken, dilden en yüksek verimi alabilirsin.

Ayrıca bu tür araçlar yine öğrenme süresini kısaltır ve kod geliştirmede çok yardımcı olurlar.

Basit'in kod geliştirme aracı 'Basit Editörü' uygulamasıdır. Bu araç aslında bir IDE (Integrated Development Environment) yani türkçe açılımı ile "Entegre geliştirme ortamıdır". Bu editör hem kod geliştirmede, hem görsel arayüz tasarımında, hemde birçok ilgili alanlarda yazılımcıyı destekler ve çalışmaya hız katar ve işi kolaylaştırır.

Yaygın olması

Bir yazılım dilinin günümüzde başarılı olabilmesi için yaygın olan makina ve işletim sistemlerini desteklemesi gerekir. Tek bir sistemle sınırlı olan bir dilin ömrü uzun olmaz.

Basit bu konuda ilk olarak Mac, Linux ve Windows işletim sistemlerini ve x86 ve x64 işlemcilerini desteklemektedir. Fakat sürekli geliştirilmekte olan Basit'in büyük hedefleri vardır. Yakın zamanda başka işletim sistemleri ve makinalarda desteklenecektir.

Dil bariyeri

Bir yazılım dilinini öğrenmekteki en büyük meselelerden biri dil bariyeridir. Eğer öğrenmek istediğin dil senin dilinde değilde, başka bir dilde ise, mesela İngilizce, o halde ilk işin o dilde biraz bilgi sahibi olmak ve zamanla o dili daha iyi öğrenme zorunluluğudur.

Peki neden? Çünkü yazılım diliyile ilgili birçok kaynak yine o dilde olduğu içindir.

Basit türkçe için bu dil bariyerini sıfıra indiriyor, çünkü kendisi türkçedir ve Türkçe anlıyor. Böylece İngilizce öğrenmek zorunda değilsin. Basit'in tüm kaynaklarıda birinci elden Türkçe olarak sunuluyor.

Peki işletim sistemlerinin API'leri ve başka kullanmak istediğim kütüphane kaynakları ne olacak?

Güzel bir soru. Ama bunun için bir çözüm var. Basit 'Basit Eklentiler Kütüphanesi' teknolojisiyle işletim sistemleri API'lerine ve başka kütüphaneler aracı bir tercüman yerleştirebiliyor.

Yani herhangi canına tak eden bir yazılımcı tutup belli başlı API'leri bir DLL, DyLib veya Shared Object olarak Basit'in gereksinimlerine uyarlayabilir. Sonra o derlediği dosya veya dosyalar için bir BEK (Basit Eklentiler Kütüphanesi) hazırlayabilir. Bu BEK natif kütüphanede bulunan komutları türkçe isimlerle kullanıma sunabilir.

Diğer Basit yazılımcıları gerçek DLL ile birlikte BEK dosyasını projelerine dahil ederler. Sonra BEK'i koda bağlarlar. Sonra BEK üzerinden yine aynı API'leri vesaire türkçe olarak kullanabilirler.

Böylece az bir emekle, yine herşey türkçe olarak kullanılabilir.

Yorumlar