Programlama öğretiminde blok tabanlı programlamadan sonra metin tabanlı programlamaya geçilmesi tavsiye edilir. Zaten nereye kadar blok sürükle-bırak yapacaksınız ki! Metin tabanlı arayüzler arasında en popüleri Small Basic denilebilir. Ülkemizde de ilkokul-ortaokul seviyesinde yavaş yavaş programlama öğretiminde kullanılmaktadır. Small Basic 23 Eylül 2008’de duyuruldu. Yapılan iyileştirmelerle  12 Haziran 2011’de ilk kararlı (stable) 1.1 versiyonu ortaya çıktı. Sık güncellemesi yapılmayan ve 15’den fazla komutu olmayan Small Basic, son olarak 1 Eylül 2015’te de 1.2 versiyonu ile şu anki halini almıştır. 2014 yılında çektiğim şuradaki videoda Small Basic’ten detaylıca bahsettim. Ben bu yazıda Small Basic’e değinmeyeceğim.

Microsoft, Small Basic’i çok fazla geliştirme gereği duymamıştır. Ancak bazı bağımsız geliştiriciler Small Basic üzerinde çalışmaktadır. 2013’de Gungan37 takma adlı bir üniversite öğrencisi Small Basic için bir SB++ adında bir IDE (Integrated Development Environment) geliştirmiş. Bu IDE’yi kurup kullandım ancak Small Basic’te olmayan Debuging (Hata ayıklama) özelliği dışında çok fazla bir özelliği olmadığını gördüm. Bu da birşey tabi; geliştirici Gungan37 hızını alamayıp daha fazla çalışarak 2017’de Small Basic Prime (SB-Prime)’ı geliştirmiş. SB-Prime’da bir öncekin göre çıtayı daha yukarı çıkardığını gördüm. Bunu Microsoft bile kendi ürününde yapmamıştı. Size bu yazıda SB-Prime ve sahip olduğu özelliklerden bahsedeceğim.

Kurulum

SB-Prime yazılımı kurulmadan önce bilgisayaraınızda Small Basic’in kendisinin kurulu olması gerekmektedir. Daha sonra şu adresten SB-Prime’ı indirip herhangi bir klasöre açabilirsiniz. Small Basic’in kendi klasörü altında olabilir ama lib klasörüne yükleme yapmayınız. Debug işlemlerini yapabilmeniz için Small Basic 1.1 ve yukarısı yüklü olmalıdır. Small Basic 2018 Haziran itibariyle 1.2 versiyonundadır. Eğer yüklü değilse  .Net 4.5 paketini de (Small Basic’i yüklerken yüklenmiş olması gerekiyor) yükleyiniz. SB-Prime şu an için sadece Windows 7 ve 10 işletim sistemlerinde çalışmaktadır. MacOS veya Linux paketleri yoktur. Arayüze geçelim.

Arayüz

Small Basic’in tasarımcısı Vijaye Raji şuradaki yazısında yazılımın BASIC dilinin sade bir hali olmasını isteyip tasarım olarak arkadaş canlısı ve basit bir arayüz olmasına değinmiştir. Small Basic çıktığından beri hem bireysel olarak hem de eğitimde birçok insan benimseyip kullanmaya başlamıştır. Bu da Vijaye’nin öngörüsünün ne kadar haklı olduğunu gösteriyor. Small Basic’i çocukların ve öğrencilerin sevmesinin temel sebebi tasarımının çok sade ve karışık olmamasıdır. Programlamaya yeni başlayanlar için bu oldukça çekicidir. Eğer NetBeans, Eclipse ya da Visual Studio gibi IDE’leri görüp-kullandıysanız ne dediğimi anlayacaksınız.

Resim 1

Resim 1’de oldukça sade ve basit olan Small Basic yazılımının arayüzünü görüyorsunuz. Resim 2 ise Small Basic Prime yazılımına aittir. İlk bakışta iki alan dikkatimizi çekiyor. Birincisi, Small Basic’teki üstteki büyük düğmeler gitmiş yerine Ribon menü gelmiş. Bu menü Home, Debug, Tools ve Advanced isimlerini taşıyor. Bunların içlerine ileride ayrıntıları ile değineceğim. İkinci olarak altta yer alan durum çubuğu (status bar) görüyoruz. Burası yazılan programı derlerken karşılaşılabilecek hataları görmek için tasarlanmış. Debug konusunu anlatırken burası çok çok işimize yarayacak.
Ortada yer alan kod yazma alanına zaten aşinayız. Ufak bir ipçucu vereyim. Yazdığınız kodların fontu küçükse CTRL+fare tekerleği ile büyültüp/küçültebilirsiniz. Ayrıca birden fazla programla çalışıyorsanız burada sekmeler halinde yazdığınız programlara erişebilirsiniz. Bu durum Small Basic’te alt alta pencereler halindeydi. Aradığını bulmak epey zor oluyordu. Sağda yer alan koyu mavi alan ise yazdığınız kodların sahip olduğu özellikler, aldığı parametre ve açıklamaları içeriyor. Oldukça yararlı ve kullanışlı bir alan olduğunu söyleyebilirim.

Resim 2

Şimdi Ribon menüleri yakından tanıyalım.

Home Menüsü

Daha önce de söylediğim gibi tasarım açısından SB-Prime Small Basic’e göre çok ileride bir yazılım. Ribon menüdeki bir çok düğme ile bunu hemen farkedebiliyorsunuz. Resim 3’te Home menüsü altındaki farklı görevlere ait düğmeleri görüyorsunuz. Numaralandırdıklarım dışındakilere zaten aşinasınızdır üzerinde durmaya gerek yoktur. Numaralı yerleri inceleyelim.

Resim 3

 

1 numaralı yer, başlangıcı ve bitişi olan kod bloklarını aç/kapa yapmak için kullanılıyor.

Select All: Yazdığınız bütün kodları seçer.
Collapse All: If..End If, For…End For, Sub… End Sub gibi belirli kapsamı (scope) olan komut kümelerini daraltmaya yarıyor. Bu kodları yazınca zaten o satırda (+) ve (-) işaretleri kapsamın bitişine kadar çizgilerle belirtiliyor. Bu kapsamı kapamaya yarıyor. Resim 2’de görebilirsiniz.
Expand All: Kapsamı belli olan kod bloğunu açıyor. Bu şekilde açma/kapama kodlarınızı incelerken ilgili alana odaklanıp gereksiz alanlara bakmamanızı sağlıyor.
Format: Öteleme yapılan kodları sola yaslıyor.

2 numaralı yer kodlar içinde kelime arama ve değiştirme amaçlı kullanılıyor.
Find: Bu kutucuğa aradığınız kelimeyi yazıyorsunuz.
Find Next:
Eğer kelime bulunursa sıradaki aradığınız kelimeye gider.

Find Previous: Aradığınız bir önceki kelimeye gider.
Find and Replace: Aradığınız kelimeyi başka bir kelime ile değiştirmek isterseniz eski ve yeni kelimeleri yazıp tek tek veya hepsini değiştirebilirsiniz. Small Basic’te olmayan çok yararlı bir özellik.

3. numaralı yer kod içinde aynı kelimeleri (örneğin değişken ismi gibi) vurgulamak için kullanılıyor.
Highlight All: Bunu aktif yaptığınızda seçilen kelime bütün kod içinde vurgulu gösterilecektir.
Whole Word: Kelimenin tamamı seçildiğinde vurgulu olacaktır.
Case Sensitive: Kelime bulma büyük/küçük harf duyarlılığıyla çalışacaktır.

Debug Menüsü

Yazdığınız kodları çalışmadığında ya da hatalar verdiğinde daha detaylı olarak incelemeniz gerekebilir. Bu durumda hata ayıklama (debug) yapmalısınız (Resim 4).
1 numaralı yer, yazdığını programı adım adım komut çalıştırmayı sağlar.

Resim 4

Stop: Çalıştırılan programı durdurur.
Pause: Çalıştırılan programı duraklatır.
Step Out: Bir altyordam için programı durdurursanız mevcut alt yordamı tamamlayacak ve bittiğinde duraklayacaktır.
Step Over: Kodlarınızda sırada bir alt yordam var ise bu alt yordam çalıştırılır ve alt yordam tamamlandığında program duraklatılır.
Step: Adım adım yazılan kodları çalıştırır.
Start/Resume: Programı çalıştırır ve duraklatılanı devam ettirir.

2 numaralı yer kod içindeki herhangi bir satıra bekleme noktası koymanızı sağlar. Bunun yararı şudur; programı yukarıdan aşağıya kodları çalıştırırken breakpoint noktasına geldiğinde duraklayacak ve sizi bekleyecektir. Bu, kodlarınızdaki kritik noktalarda programın nasıl davrandığını tespit etmenizi sağlar.
Toogle Breakpoint: O satırda satır numarasının soluna yuvarlak kırmızı bir nokta ekler. Bunu o satırın soluna tıklayarak da yapabilirsiniz.
Clear Breakpoints: Eklenmiş olan bütün breakpoint noktalarını temizler.
Ignore Breakpoints: Eklenmiş olan bütün breakpoint noktaları geçici olarak göz ardı edilir.

3 numaralı yer uzun kodlarda hatırlatıcı noktalar belirlemenizi sağlar. Bunun hata ayıklamasıyla doğrudan bir ilgisi yoktur. Uzun kodlarınız varsa içinde kaybolmadan daha sonra hızlıca ulaşmak için bu kodların belirli yerlerine noktalar koyar.
Toogle Bookmark: İlgili kod satırında, kod ile satır numarası arasına işaret (ayraç) koyar.
Clear Bookmark: Bütün hatırlatıcı işaretleri temizler.
Next Bookmark: Bir sonraki hatırlatıcı noktaya gider.
Previous Bookmark: Bir önceki hatırlatıcı noktaya gider.

4 numaraları yer de ise kodlarınız içindeki değişkenlerin,dizilerin aldığı değerleri ve çağırılan alt yordamları (subroutine) takip etmenizi sağlayan bir pencere açılır. Bu pencere aslına bakarsanız çok önemlidir. Çünkü hazırladığınız değişkenlerin program içinde hangi değerlere sahip olduğunu bilmeniz giderek güçleşmektedir. Buradan satır satır takip edebilirsiniz (Resim 5).

Resim 5

Bu alandaki son düğme olan Debug Guide’a bastığınızda internete bağlanıp Small Basic Prime’da hata ayıklama işleminin nasıl yapıldığını adım adım anlatan bir PDF dosyasını bilgisayarınıza indirir.

Tools Menüsü

Birçok aracı içinde barındıran bu menü oldukça zengindir. Klasik Small Basic’te olmayan grafik editörü, algoritma akış diyagramı, hazır renk ve font ekleme, kütüphane arama/ekleme ve dosya arama gibi kullanışlı yeniliği burada bulabilirsiniz (Resim 6). Bu araçlar ilerideki başlıklarda detaylı anlatılacaktır.

Resim 6

1 numaralı araç grafik editörü ile çalışmanızı sağlar. Small Basic’te normalde siyah renkteki konsol ile çalışmalarınızı yaparsınız. Ancak Shapes Editor seçeneği ile Small Basic’in konsol dışında güzel bir özelliği olan grafik kütüphanesi ile çalışmaya başlarsınız.
2 numaralı araç yazdığınız kodların akış diyagramlarını çıkarmanızı sağlar.
3 numaralı araç grafik arayüzü için kullanılabilecek renklerin farklı tonlarına ait RGB kodlarını veriyor.
4 numaralı araç tasarım amaçlı kullanılacak birçok font listesini gösteriyor.
5 numaralı araç Small Basic’te yüklü olan kütüphanlerin listesini veriyor.
6 numaralı araç seçilen klasörde varolan *.sb uzantılı dosyaların listesini veriyor.

Advanced Menüsü

Bu menüde Small Basic için kullanılabilecek eklentileri, yazılan programları Visual Studio ortamına yükseltme işlemleri, kod yazım alanına ait birtakım özellikleri değiştirebileceğiniz seçenekler bulunuyor (Resim 7).

Resim 7

 

 

 

 

 


1 numaralı alandaki Extension Manager, Small Basic için yazılan kütüphaneleri görebileceğiniz bir liste veriyor (Resim 8).

Resim 8

 

 

 

Burada listedeki yeşil renkte olan Small Basic üzerine kurulu olan kütüphaneleri gösteriyor. Kurmak istediğiniz kütüphane üzerine gelip tıklamanız yeterlidir. Eğer istediğiniz kütüphane yoksa şurada birçok kütüphaneyi bulabilirsiniz. Search Extensions başlığında detaylıca kütüphane anlattım.

Graduate seçeneği ile *.sb uzantılı dosyanı “vbproj” şeklinde Visual Studio IDE’si ortamında kullanılabilir hale getirilmektedir.

2 numaralı alanda,
Split Screen ile kod alanını ikiye bölebilirsiniz.
Word Wrap, uzun kod satırlarında satırı kırmadan bir sonraki satırda yazmayı sağlar.
Indent Guides, kod blokları için girinti çizgilerini aktif yapar.
Zoom In/Out/Reset, kod alanını yaklaştırıp uzaklaştırır, fontu büyütmez.
Dark Theme, beyaz zeminde çalışmak bir zaman sonra gözleri yoracağı için siyah temaya geçilebilir.
View Whitespace, kod satırlarında yer alan boşlukları (Space) görünür hale getirir.
Language Code, bunun ne işe yaradığını çözemedim. Arayüzün dilini değiştirmek amaçlı olabilir.

3 numaralı alanda SB-Prime’ın kullandığı bazı araçların renk düzenlemeleri ve yapılan bütün ayarların değiştirme imkanı tanıyan seçenekler bulunuyor.

Resim 9

 Resim 9’da IDE Color penceresini görüyorsunuz. SB-Prime’ın sahip olduğu araçların arayüzlerindeki renk değişimlerini buradan yapabilirsiniz.
Yaptığınız bütün ayarları Export Settings ile dışarı dosya halinde çıkarabilirsiniz. Aynı şekilde bu dosyayı Import Settings seçeneğinden SB-Prime’a otomatik olarak geri yükleyebilirsiniz. Reset Settings seçeneği ile de SB-Prime için varsayılan ayarlara geri dönülür. Options kısmından ise SB-Prime’ın en güncel versiyonunu yükleyebilirsiniz.

Şimdi bu menülerde bahsettiğim araçların bazılarını daha yakından tanıyalım. Gerçekten kullanışlı ve güzel araçlar bunlar.

 

 

Shapes Editor

Tools menüsü altındaki bu aracı açtığınızda Resim 10’daki pencere açılır. Ana kod alanında  yazdığınız kodlarla grafik oluşturmak, her seferinde programı çalıştırıp test etmek oldukça yorucu ve sıkıcı bir iştir. Bu pencerede ortada çalışma alanı, altta kod alanı olmak üzere Shapes, Controls, LDControls, Properties ve Modifiers alanları bulunur. Çalışma alanına sol ve sağdaki bahsettiğim alanlardaki bileşenleri ekleyebilirsiniz. Bu bileşenler grafik arayüzünde gösterileceği için her bileşenin detaylı özellikleri (genişlik, yükseklik, X, Y pozisyonu gibi) Properties ve Modifiers alanlarında alta alta listelenir. İsterseniz ilgili özelliği buralardan değiştirebilirsiniz. Bileşenler üzerindeki fiziksel değişimleri (genişletme, daraltma) fare kullanarak da yapabilirsiniz. Taşımak için bileşenin sol alt köşesindeki yön işaretini, kopyalamak için bileşen üzerindeki el işaretini kullanabilirsiniz.

Resim 10

 Grafik arayüzünde hem çok bileşen olduğundan hem de bu bileşenleri birçok alt özellikleri bulunduğundan bunları akılda tutmak çok zordur, zaten gereksizdir de. Bunun için çalışma alanına her bileşen eklediğinizde kod alanında bununla ilgili kodların otomatik oluşturulduğunu göreceksiniz. Bu kodlar bir önceki ana ekranınızdaki kod alanına aktarılmaz. Siz, bu pencerede oluşturacağınız grafik arayüzünü görsel olarak hazırlarsınız. Bu arayüzün kodlarını ise kopyala-yapıştır yaparak ana kod alanına eklerseniz ve çalıştırsanız grafik kullanan bir program yazmış olursunuz. Bu aktarma işini bir düğme ile çözebilirlerdi bana göre. Her neyse, bunun tersi de mümkün. Ana kod alanında yazdığınız kodları (grafik kütüphanesini kullanan kodlar tabi) seçip Shapes Editor penceresindeki “Import From Code” düğmesine basarak bu pencereye aktarabilirsiniz. Daha sonra gerekli düzenlemeleri buradan da yapabilirsiniz.

Gerçekten gayet güzel düşünülmüş güzel ve geliştirilmeye açık, programlarında grafik kullananların işini epey kolaylaştıracak bir araç Shapes Editor.

Flow Chart

Programlama öğrenirken öğrenilen bir diğer kavram da akış diyagramlarıdır. Yazacağınız programın kağıt üzerinde şematik bir gösterimi daha kolay anlaşılmayı ve organize etmeyi sağlayacaktır. Genelde okullarda belirli geometrik şekillerin içerisine çizim yaptırmak suretiyle akış diyagramları oluşturulur. Daha sonra bu akış diyagramına göre kod yazımına geçilir. Ancak SB-Prime’da işleyiş tam tersidir. Kodlarınızı yazdıktan sonra Flow Chart’ı kullandığınızda size programınızın akış diyagramını çıkarıyor. Bana kalırsa bu hali bile çok kullanışlı gözüküyor (Resim 11).

Resim 11

Zoom Out: Akış diyagramında uzaklaşır.
Zoom In: Akış diyagramına yakınlaşır.
Start: Başlangıç konumuna odaklanır.
End: Bitiş konumuna odaklanır.
Sync From: Seçtiğiniz kodu akış diyagramındaki yerini bulur.
Sync to: Akış diyagramındaki seçtiğiniz bölümün kod alanındaki yerini bulur.
Update: Kod alanındaki düzenlemeleri akış diyagramında günceller.

Akış diyagramlarını debug yaparken de kullanabilirsiniz. Adım adım çalıştırdığınızda akış ne yönde olduğunu yine bu diyagramda rahatlıkla takip edebilirsiniz.

Insert Colors & Insert Fonts

Program yazarken kod yazmanın dışında tasarımda göz önünde bulundurulması gereken bir unsurdur. Çekici renkler, arka planlar, fontlar vs.  tasarımı güçlü kılar. O yüzden birden fazla onlarca renk seçeneğini arasından uygun olanları bulmak gerekir. Renk ve font bulmak ve beğenmek oldukça zahmetli bir iştir. SB-Prime’ın bu pencerelerinde bir çok rengin farklı tonları ve farklı birçok fontun ön izlemesini bulabilirsiniz. Bu pencereler sayesinde bir nebze olsun iyileştirilmiş diyebiliriz (Resim 12).

Resim 12

 

Seçtiğiniz rengin RGB kodu veya fontun adı ana kod alanına kodun içerisine yerleşecektir. Renk kodları ve font isimleri genelde grafik arayüzünde farklı bileşenlerin özelliklerinde kullanılacaktır.

Search Extensions

Small Basic yazılımında yapılamayacak kimi işler Small Basic için üretilen kütüphaneler (plug-in) sayesinde yapılır. Bu kütüphaneler geliştiricilerin yazdığı resmi olmayan çalışmalardır. Advanced menüsü altındaki Extensions Manager ile otomatik olarak webten çekilerek Small Basic’e dahil edilir. Daha sonra bu kütüphane adı çağrılarak gerekli özelliklerine erişebilirsiniz. SB-Prime’da Search Extensions penceresi kütüphanelerin bir listesini veriyor (Resim 13).

Resim 13

 

 

 

 

 

 

 

 

 

Kütüphaneler başarı ile yüklendiyse bu pencerede listelenecektir. Bu listede turuncu renkli küp simgesi kütüphaneye ait nesnenin adı, palet simgesi bu nesneye ait bir özelliği, dişli simgesi ise parametre alan bir metotu temsil eder. Kütüphaneye ait özellik veya metotlara erişmek için listenin ilgili kısmını açmak gerekiyor. Metot ve özelliklere ait açıklamaları burada bulabilirsiniz. Aynı bilgiler kod alanında sağda da bulunmaktadır.

File Seacher

Kullanışlı ve güzel bir başka özellik de burasıdır. Seçtiğiniz klasör içindeki *.sb uzantılı Small Basic dosyalarının bir listesini veriyor. Seçtiğiniz dosyanın bir ön izlemesini listenin altında görebilirsiniz. Dilerseniz Open düğmesine basıp açabilirsiniz (Resim 14).

Resim 14

 

 

 

 

 

 

 

 

 

 

 

 

 

Sonuç olarak, SB-Prime halen geliştirilmektedir. Ancak şu haliyle bile Small Basic’in çok önünde özelliklere sahip gözüküyor. Programı incelerken çökmelere, kapanmalara rastgeldim. Bu da halen kararlı bir yapısının olmadığını gösteriyor. Geliştirilip kararlı bir yapıya kavuşturulursa güzel bir programlama öğretim aracı ortaya çıkmış olacaktır.