UI programlama için uygun paradigmalar


9

Bu, birisinin OOP'nin GUI programlama için doğru paradigma olmadığını ifade ettiği OOP teknolojisi ölümünün yorumlarından gelen daha spesifik bir sorudur (veya aslında iki, ancak ilişkilidir) .

Orada ve burada yorumları okumak hala öğrenecek şeyler olduğunu hissediyorum: hangi programlama paradigmaları iyi uyuyor ve neden diğerlerinden daha iyi (belki örneklerle?)

Başlık ve sorudan tk örneğini kaldırdım


@Inca - SK-mantığının (bu yorumu yapan) olası her fırsatta OOP ile savaştığını unutmayın - sanki fanatik bir misyonu varmış gibi. Tk'nin OOP ile hiç ilgili olmadığını gerçekten kanıtlayabildiğinden şüpheliyim.
Andreas Dolk

-1: kişisel bir düşünceyi sanki gerçekmiş gibi göstermek için. "OOP, GUI programlama için doğru bir paradigma değildir", GUI programlama için OOP'a çok bağlı görünen C # ve Objective C karşısında uçacaktı. Bu doğru bir paradigma değilse, Apple'ın devasa pazar payının tamamı gerçekten yoktur.
S.Lott

1
Ancak bu doğru bir paradigma değil, GUI açıklayıcı olmalı. Popülerliği doğru olanla karıştırıyorsunuz.
Raynos

@Raynos: "deklaratif". Bazı nesneler gibi? Bir grup nesne arasında bir grup ilişkinin ne kadar beyan edici olmadığını anlamıyorum. Ve. Bu soru için konu dışı görünüyor. Soru OO hakkında, GUI yazmak için daha iyi yollar değil gibi görünüyor. Başlık, gerçek soruyla karşılaştırıldığında yanıltıcı gibi görünüyor. İkisi de çok iyi değil.
S.Lott

1
@Inca: Bunu tamamen abartılı saymayı düşünün.
S.Lott

Yanıtlar:


9

Normalde OOP'un savunucusu değilim, ama GUI programlamanın OOP'un güçlü noktalarını kullanmak için en iyi fırsatları sunduğunu söyleyebilirim. OOP'nin polimorfizmini ve kalıtımını kullanarak çeşitli widget'ları uygulamak çok daha kolay hale geldi. PLT Racket'in GUI kütüphanesi buna iyi bir örnektir.


2
Fonksiyonel reaktif programlama henüz daha uygun gözükmektedir.
SK-logic

@ SK-logic: Bunun için çok iyi bir durum ortaya koyabilirsiniz ve Common Lisp'de (Hücreleri duydunuz mu?) Bazı ilginç çalışmalar bu yönde yapılmıştır. Daha kesin hale getirmek için cevabımı düzenleyeceğim.
Larry Coleman

5

Widget'lardan ve bunların düzenlerinden oluşan tipik bir GUI tamamen bildiricidir. Widget'lar birbirleriyle etkileşime girmezler, bu yüzden burada bir nesne ve mesaj kavramı biraz yabancıdır. Hiyerarşik deklaratif DSL'ler şu anda bir tür ana akımdır, Tk ilk örneklerden biridir ve WPF aynı şeye daha modern bir yaklaşımdır. Fonksiyonel reaktif programlama bir başka ilginç (ama çok yaygın olmayan) yaklaşımdır.

Bazı insanlar OOP'yi bir hiyerarşinin tanımlandığı herhangi bir yerde görme eğilimindedir, bu da yanlıştır - katı hiyerarşiler (okuma - cebirsel veri türleri) ve Kay'ın OOP tanımı arasında kesinlikle bir bağlantı yoktur.


3
Deneyimlerime göre, widget'ların daha iyi bir GUI yapmak için birbirleriyle etkileşime girmesi gerekiyor ve karşılaştığım daha açıklayıcı sistemler (HTML + css dahil olmak üzere belirli xml tabanlı olanlar) etkileşim bölümünde kesinlikle olasılıklardan yoksun. Ayrıca, bildirim (prolog) ve işlevsel (Haskell) kullanarak UI'yi dahil etme konusundaki deneyimlerim, gerçekten kolay olduğu izlenimini vermedi. Bu konu hakkında daha fazla tartışabileceğim kaynaklara sahip misiniz? Sadece belirli yaklaşımların neden daha iyi çalıştığını açıklamayacak çok soyut (veya çok temel) örnekler buldum
Inca
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.