Purebasic yıllardır duyduğum ama bir türlü denemeye fırsat bulamadığım bir programlama dili. Öveni çok olurdu, başta “Windows, Linux, MacOS ve Amiga üzerinde derleme yapabiliyorsunuz”, sonra “sade ve basit”, “güzel bir IDE’si var” denirdi.
Son haftalarda public chat kanalımız #retrojen’de yatu nickli arkadaşımızın basic programlama denemeleri yapması bana PureBasic’i tekrar hatırlatmıştı. Bu hafta sonu ise, sohbet ederken 64bit derleyiciler konusunda konuşmaya başladık ve yorganın altından yine purebasic çıktı. Eh madem x64 derleyicisi de var, bir deneyelim bakalım yetti canıma dedim, neymiş bu pb:
Hemen indirdim ve hello world yazmaya koyuldum. Helloworld düşündüğümden de basit çıktığı için **MessageRequester(“Message Box”, “Hello World”)** bir scroller yazmaya başladım. Doğrusu purebasic’in antikalıkları sayesinde yarım saatte bitecek iş 4 saatimi aldı. Öncelikle alpha kanalı olan bir bitmap’i cropladığınızda alpha’sı gidiyor. Bu durumda fontların arka planları siyah bloklara dönüştüğü için keyfim kaçtı. 1-2 saat bunu yapmanın yöntemini aradım internet üzerinde. Malsef bu kadar popüler bir basic varyasyonunun nette neredeyse hiç (google’da çıkmadı valla) örnek kodu bulunmuyor. Kısa, genelde bir paragrafı geçmeyen, çok yüzeysel açıklamalarla yetinmek zorundasınız. Bence purebasic’in en büyük problemi burda. Yıllardır geliştirilen (dikkat: 10 yıl) bir programlama dilinin bu kadar komik dökümantasyona sahip olması üzücü.
Neyse sonuçta problemleri dededen kalma yöntemlerle çözerek yola devam edince, bir Basic türevi olarak gayet hızlı çalıştığını gördüm. Görünüş olarak bayağı ilkel görünüyor, hafif bir 16 bit havası bile var denebilir 😀 Dökümante edilmemiş acaip kısıtlamaları da var. Ama bence yeni başlayanlar için işe yarayabilir. Object Oriented (Obje yönelimli) değil, bayağı oldschool, procedure oriented, çocukluğunda 8bit bilgisayarında basic kullanmış olanlar için aynı tadı 64bitte yaşamalarını sağlıyor.
Belki de en güzel yanı dağıtım şekli, bilmiyorum sizde çalışacak mı ama, build exe komutu verince, her kütüphanesi içinde bir exe yaratıyor, hiçbir dış DLL’e ihtiyaç duymuyorsunuz.
Neyse sonuç olarak, ilk purebasic denemem, modern basic’lere pek benzemiyor, ama sonuç olarak 4 saatte aşağıdakini yapabildim, pure basic’in iyi mi kötü mü olduğu konusundaki takdir sizin:
Purebasic Intro: 750kb
(dikkat müzik araklamadır (andromeda/playboy), diğer herşey, intronun yazımı sırasında kendi pc’imde yaratılmıştır)
ilk purebasic denemesi başlıyor:
[13.02][23:09] ref_ scroller kasayım şimdi
[13.02][23:09] ragnor_ 🙂
[13.02][23:09] ragnor_ aha çıkıyo intro
…
son rötuşlar, çalma çırpma bir müzik:
[14.02][01:56] ref_ bu xm arşivi nerdeydi yav?
[14.02][02:04] ref_ neyse chiptune’den aldım bitane
Bu bir scene release değildir, denemedir!
Sonuç: Purebasic, aşamadığınız limitasyonları olan bir basic türevi. Ama bu yazdığım kesinlikle hiçbir optimizasyondan geçmemiş, aksine savruk ve mektup yazar gibi baştan sona dümdüz kodladığım intronun çalışma hızı beni etkiledi. Ayrıca debugger’ında profiling gibi çok önemli özellikleri de var. Bilmiyorum kime yarar ama Inline assembler da destekliyor. İleride birkaç küçük program deneyebilirim üzerinde. Eğer faydalı bulursam da register edeceğimden eminim. Demo versionu WinAPI kullanmaya izin vermiyor, ama bu introda benim ihtiyacım olmadı. Büyük olaslılıkla ciddi birşey yapmaya kalkarsak registered version gerekecektir.
Sırada Freebasic ve BlitzMAX var. Seneye artık. Bu yıllık basic hakkımı Sinclair Basic için kullanacağım 😀