4D, öncelikle veritabanı uygulamaları geliştirmek için tasarlanmış çok amaçlı bir programlama dili ve ortamıdır. Veri yönetimini iş mantığı ve kullanıcı arayüzü geliştirme ile entegre etme yeteneği ile tanınır ve geliştiricilerin kurumsal düzeyde uygulamaları verimli bir şekilde oluşturmasına olanak tanır. "4D" ismi, platformun dört boyutunu ifade eder: veri, geliştirme, dağıtım ve entegrasyon.
4D, 1980'lerde Fransız şirketi 4D S.A. tarafından ilk kez piyasaya sürüldü ve başlangıçta sağlam bir veritabanı yönetim sistemi sağlamaya odaklandı. Dil, o dönemde nispeten benzersiz bir özellik olan nesne yönelimli programlama ortamı ile ilişkisel veritabanı yeteneklerini birleştirerek geliştiricilerin veri odaklı uygulamalarla sorunsuz bir şekilde çalışmasına olanak tanıdı.
Yıllar içinde 4D, yeteneklerini artıran ve değişen teknoloji ortamına uyum sağlayan birçok güncelleme geçirdi. 1990'ların sonları ve 2000'lerin başlarında, odak web entegrasyonu ve istemci-sunucu mimarilerine kaydı. 4D WebStarter'ın tanıtılması, geliştiricilerin aynı kod tabanını kullanarak web uygulamaları oluşturmasına olanak tanıdı.
Bugün, 4D aktif olarak bakımda ve kendine özel bir kullanıcı topluluğuna sahiptir. Platform, bulut bilişim ve mobil uygulama geliştirme gibi modern programlama uygulamalarını ve teknolojilerini benimsemiş olup, çapraz platform dağıtımı için tasarlanmış diğer sistemlerle rekabet halindedir. 4D v18 gibi mevcut sürümleri, giderek daha fazla web teknolojisini benimsemekte ve REST API'leri için araçlar sunarak çağdaş yazılım ekosistemlerindeki önemini artırmaktadır.
4D, geliştiricilerin sınıflar ve nesneler oluşturmasına olanak tanıyan nesne yönelimli programlama ilkelerini destekler. Verilerin ve davranışların kapsüllenmesi, kodun daha iyi organize edilmesini ve yeniden kullanılmasını teşvik eder.
Class Person
var name
var age
End Class
var john = new Person
john.name := "John Doe"
john.age := 30
4D, CRUD (Oluşturma, Okuma, Güncelleme, Silme) işlemlerini kolayca gerçekleştirmek için birçok yerleşik komut içerir.
// Bir kayıt oluştur
CREATE RECORD([Persons])
[Persons]Name := "Alice"
[Persons]Age := 25
4D, kullanıcı etkileşimlerine yanıt veren eylemleri tanımlamayı kolaylaştıran olay tabanlıdır; örneğin, buton tıklamaları veya menü seçimleri gibi.
// Buton tıklama olay işleyici
On Click([Button])
ALERT("Butona tıklandı!")
End On Click
4D, geliştiricilerin veritabanına doğrudan SQL sorguları çalıştırmasına olanak tanıyan yerel SQL desteği sağlar.
var result := SQL("SELECT * FROM Persons WHERE Age > 20")
Geliştiriciler, 4D ortamında doğrudan zengin kullanıcı arayüzleri oluşturabilir ve düzen tasarımı için sürükle-bırak arayüzü kullanabilirler.
// Bir forma programlı olarak buton ekleme örneği
Add Button([Form]; "Gönder")
4D dili, uygulama akışı üzerinde geniş kontrol sağlayan güçlü betik yazma yetenekleri içerir.
If (john.age > 18)
ALERT("Yetişkin")
Else
ALERT("Reşit değil")
End If
4D uygulamaları hem macOS hem de Windows üzerinde çalışabilir, bu da son kullanıcılar için geniş erişilebilirlik sağlar.
4D, HTML ve JavaScript ile birlikte 4D'nin kendi dilini kullanarak entegre web sunucu yetenekleri aracılığıyla web uygulamaları oluşturmayı destekler.
// Bir web yanıtı gönderme örneği
$httpResponse := "4D Web'e hoş geldiniz!"
4D, geliştiricilerin modern uygulama entegrasyonu ve birlikte çalışabilirlik için gerekli olan REST API'leri çok kolay bir şekilde oluşturmasına olanak tanır.
// Bir REST uç noktası tanımlama
REST.POST("/api/persons"; PersonData)
4D, kod içindeki sorunların tanımlanmasını ve çözülmesini kolaylaştıran entegre hata ayıklama araçları sağlar.
4D, kod düzenleme, veritabanı yönetimi ve kullanıcı arayüzü tasarımını bir araya getiren entegre bir geliştirme ortamı ile birlikte gelir. Formlar, raporlar tasarlamak ve veri yapılarını yönetmek için araçlar sağlar; tüm bunlar tek bir arayüz içinde yapılabilir.
4D'de bir proje oluşturmak, veritabanı modelinizin yapısını oluşturmayı ve tanımlamayı, veri ve kullanıcı etkileşimlerini işlemek için kod yazmayı ve kullanıcı arayüzünü tanımlamayı içerir. Tamamlandığında, uygulamaları doğrudan IDE içinde çalıştırabilir veya 4D sunucusuna dağıtabilirsiniz.
4D, betik dili için bir yorumlayıcı kullanır ve bu, betiklerin ayrı bir derleme adımına ihtiyaç duymadan anında yürütülmesini sağlar. Bu akıcı yaklaşım, hızlı uygulama geliştirmeyi kolaylaştırır.
4D, finans, sağlık, eğitim ve üretim gibi endüstrilerde veritabanı merkezli uygulamalar geliştirmek için öncelikle kullanılmaktadır. CRM, ERP ve envanter yönetim sistemleri gibi iç iş uygulamaları oluşturmak için özellikle tercih edilmektedir. Platformun büyük veri kümelerini işleme ve karmaşık işlemler gerçekleştirme yeteneği, onu kurumsal düzeyde çözümler için uygun hale getirir.
4D'yi diğer programlama dilleriyle karşılaştırırken bazı dikkat çekici noktalar ortaya çıkmaktadır:
C# ve Java: Bu diller gibi, 4D de nesne yönelimli programlamayı destekler ve kurumsal uygulamalara yöneliktir. Ancak, 4D, daha hızlı uygulama geliştirmeyi kolaylaştıran yerleşik veritabanı işlevsellikleri sunar.
Python ve Ruby: Python ve Ruby, basitlikleri ve okunabilirlikleri ile tanınırken, 4D veritabanı uygulamaları için yüksek derecede özelleşmiştir; bu da Python veya Ruby'de daha fazla kurulum gerektirebilir.
PHP ve JavaScript: Hem PHP hem de JavaScript, 4D'nin işlevlerine benzer şekilde web geliştirme için yaygın olarak kullanılmaktadır. Ancak, 4D, birden fazla çerçeveye güvenmek yerine tek bir ortamda gerçek uygulama geliştirmeye olanak tanır.
C++ ve Go: Bu diller, sistem düzeyinde programlama için performansta mükemmeldir. Buna karşılık, 4D, veritabanı odaklı uygulamalar için hızlı uygulama geliştirmeye odaklanır ve genellikle kullanım kolaylığı için düşük seviyeli performanstan ödün verir.
Perl ve R: Bu diller, metin işleme ve veri analizi konusunda mükemmeldir; 4D ise kullanıcı arayüzü yönetimi ve sorunsuz veritabanı entegrasyonu da dahil olmak üzere tam uygulama geliştirme yaşam döngüsüne odaklanır.
4D'ye özgü kaynak-kaynağa çeviri araçları sınırlı olsa da, geliştiriciler 4D uygulamalarını diğer dillere taşımak için genel dönüşüm ve uyarlama stratejilerini kullanabilirler:
Mevcut kaynak-kaynağa çeviri araçları, 4D'yi özel olarak hedeflemiyor olabilir, ancak genel amaçlı araçlar, kodu daha yaygın olarak kullanılan dillere dönüştürmeye yardımcı olabilir; ancak iş mantığı ve veritabanı entegrasyonu için manuel ayarlamalar gerekecektir.