Hasan Merkit 88

Moderasyon Üyesi
Geliştirici
Katılım
30 Ocak 2025
Mesajlar
5.423
Makaleler
14
Çözümler
112
Beğeniler
8.884
T.Code()

Selam arkadaşlar. 2021'den beri geliştirmekte olduğumuz bir proje iyi bir noktaya varıyor ve bu projeyi sanırım duyurma vaktimiz geldi.
Bu proje aslında iptal ettiğimiz T.Frame() projesinin yerini tutmayı planlıyor.

Neden bu zamana kadar duyurmadığımızı da not geçeyim: Başarabileceğimizden emin değildik. Ama başardık. :)

Artık geriye dizayn hataları gidermek, yeni tooları kodlamaya başlamak, geri bildirimler alarak geliştirmek kaldı. Bir süreliğine yayınlamayacağız. Ancak böyle bir şeyin varlığını duyurmak istedik.

1787509360414.webp


T.Code(), TeTeOS.Net programlama dilidir: rahatça native masaüstü GUI uygulamaları geliştirmek için kullanılabilir.

Ortada platformlar arası bir GUI araç seti yoktur. Qt yok, Electron yok, wxWidgets yok. Windows, Linux ve macOS her biri tamamen ayrı, elle yazılmış native bir arayüz uygulamasına sahiptir (Win32/GDI, GTK4, Cocoa/AppKit); yalnızca dil/runtime/proje mantığı ortak kod dili üstünden çalışır. Her şey taşınabilir C++14 ile yazılmıştır; daha eski MinGW tarzı derleyicilerin bile projeyi derleyebilmesi için bilinçli olarak eski bir standart hedeflenmiştir.

Proje, o kadar düz C++ üstünden yazıldı ki eski işletim sistemlerinin bazıları bile (ki bunu kasıtlı yapmadık) bu dili çalıştırdı. Örneğin CentOS 6 ve Windows XP.

Bir T.Code() projesi; bir project.tcode manifest dosyası ile bir veya daha fazla .hmui (kaynak) dosyasından oluşan bir klasördür. Her .hmui dosyası isteğe bağlı olarak aynı isimde bir .hmgui (GUI düzeni) dosyasıyla eşleştirilebilir.

Kod:
Main {
    Window->Start();
}

Event Main Start {
    Message "GUI window opened." "T.Code()"
}

Event Button1 Click {
    Message "Button clicked." "T.Code()"
}

  • Değişkenler $ ile başlar ($name = "Can", $count = 3, $flag = true).
  • Tipler: metin (string), sayısal, boolean ve renk (#FF5500, rgb(255, 85, 0), red, teteosnet, pilux gibi adlandırılmış renkler).
  • Yorumlar: #, // veya '. Noktalı virgül aynı satırda birden fazla ifadeyi ayırır.
  • Yerleşik Window nesnesi başlık, boyut, konum, renkler ve pencere davranışını kontrol eder; Message "metin" "başlık" native bir iletişim kutusu açar.
  • .hmgui dosyaları, mevcut Beta sürümünde pencereyi ve kontrollerini ([Window], [Button], [Label]) basit bir INI-benzeri formatta tanımlar.

T.Code() ile yazılan uygulamaların cross-platform özelliği:

1787509759060.webp
1787510860671.webp




PiluX, Linux, macOS, Android için uygulama geliştirilebilir. Ayrıca dilerseniz kodları açık şekilde çalışır programınızı yayınlayabilir, isterseniz de tamamen Binary derleme yapabilirsiniz.

Binary derleme, tüm mimarilerde çalışır. x64, x86 veya ARM64 için ayrı derleme almanıza gerek yoktur. (Henüz.)

T.Code() şu an neden yayınlanmıyor? Ne zaman yayınlanacak?
Yıllarca uğraşsak bile bir dil yazmak, hatta C++'ın kendisi inanılmaz zor. Ancak aşağıdaki eksiklikleri tamamlamamız gerekiyor:

1. Binary derleme tipi için olası decompile ve tersine mühendislik problemleri
2. GTK4 toolkit'e sahip olmayan Linux dağıtımlarda çalışmaması
3. Tasarım problemleri
4. En temel ihtiyaçları şu anda karşılayamaması
5. Windows release binary dosyanın aşırı büyük olması

Örneğin sırada eklenecek tool listesi:
Timer (Yapımı başlandı.)
WebView: Chromium motoru kullanacak. (Platformlar arası çok tartışmalı sorunları var.)
Window->Move() kodu
Progressbar
Tabbed Panel

Daha test edilmemiş çok şey var. Ancak ilk sıralarda:
1. ARM64 cihazlar
2. macOS'un eski sürümleri
3. Debian ve Ubuntu haricindeki dağıtımlar