Paradigma cocok untuk pemrograman UI

9

Ini adalah pertanyaan yang lebih spesifik (atau sebenarnya dua, tetapi mereka terkait) yang berasal dari komentar kematian teknologi OOP di mana seseorang menyatakan bahwa OOP bukan paradigma yang tepat untuk pemrograman GUI.

Membaca komentar di sana dan di sini saya masih punya perasaan ada hal yang harus dipelajari: paradigma pemrograman mana yang dianggap cocok dan mengapa mereka lebih baik daripada yang lain (mungkin dengan contoh untuk menggambarkan?)

Saya menghapus tk-example dari judul dan pertanyaan

Inca
sumber
@Inca - perlu diingat, bahwa logika SK (yang berasal komentar ini) melawan OOP pada setiap kesempatan yang mungkin - seperti jika ia memiliki misi fanatik. Saya sangat ragu bahwa dia benar-benar dapat membuktikan bahwa tk tidak ada hubungannya dengan OOP sama sekali.
Andreas_D
-1: untuk mengutip pendapat pribadi seolah itu fakta. "OOP bukan paradigma yang tepat untuk pemrograman GUI" akan terbang dalam menghadapi C # dan Objective C yang tampaknya sangat bergantung pada OOP untuk pemrograman GUI. Jika itu bukan paradigma yang tepat maka semua pangsa pasar Apple yang besar tidak benar-benar ada atau tidak.
S.Lott
1
@ S.Lott bukan paradigma yang benar, GUI harus bersifat deklaratif. Anda tampaknya membingungkan popularitas dengan apa yang benar.
Raynos
@ Raynos: "deklaratif". Seperti dalam, beberapa benda terkait? Saya tidak mengerti bagaimana deklaratif bukanlah sekelompok hubungan di antara banyak objek. Dan. Tampaknya di luar topik untuk pertanyaan ini. Pertanyaannya sepertinya tentang OO, bukan cara yang lebih baik untuk menulis GUI. Judulnya sepertinya menyesatkan dibandingkan dengan pertanyaan yang sebenarnya. Tidak ada yang sangat baik.
S.Lott
1
@Inca: Pertimbangkan mengabaikannya sepenuhnya sebagai hiperbola belaka.
S.Lott

Jawaban:

9

Saya biasanya bukan pendukung OOP, tetapi saya akan mengatakan bahwa pemrograman GUI menghadirkan beberapa peluang terbaik untuk menggunakan poin kuat OOP. Menerapkan berbagai widget menjadi lebih mudah dengan menggunakan polimorfisme dan pewarisan OOP. Pustaka GUI PLT Racket adalah contoh yang bagus.

Larry Coleman
sumber
2
Pemrograman reaktif fungsional namun tampaknya lebih cocok.
SK-logic
@ SK-logic: Anda bisa membuat kasus yang sangat bagus untuk itu, dan beberapa pekerjaan menarik di Common Lisp (pernahkah Anda mendengar tentang Cells?) Telah dilakukan ke arah itu. Saya akan mengedit jawaban saya untuk membuatnya lebih tepat.
Larry Coleman
5

GUI yang khas, terbuat dari widget dan tata letaknya, sepenuhnya bersifat deklaratif. Widget tidak akan berinteraksi satu sama lain, jadi gagasan tentang objek dan pesan agak asing di sini. DSL deklaratif hirarki adalah semacam arus utama saat ini, dengan Tk menjadi salah satu contoh awal, dan WPF sebagai pendekatan yang lebih modern untuk hal yang sama. Pemrograman reaktif fungsional adalah pendekatan lain yang menarik (tetapi tidak terlalu luas).

Beberapa orang cenderung melihat OOP di mana saja di mana hierarki didefinisikan, yang salah - sama sekali tidak ada hubungan antara hierarki yang ketat (baca - tipe data aljabar) dan definisi Kay tentang OOP.

Logika SK
sumber
3
Dalam pengalaman saya, widget memang perlu berinteraksi satu sama lain untuk membuat GUI yang lebih baik, dan sistem yang lebih deklaratif yang saya temui (yang berbasis xml tertentu, termasuk HTML + css) pasti kekurangan kemungkinan di bagian interaksi. Juga, pengalaman saya dengan menggabungkan UI menggunakan deklaratif (prolog) dan fungsional (Haskell) tidak benar-benar memberi kesan itu mudah. Apakah Anda memiliki sumber yang dapat saya lihat yang secara khusus membahas lebih lanjut tentang ini? Saya hanya datang dengan contoh yang sangat abstrak (atau sangat mendasar) yang tidak banyak menjelaskan mengapa pendekatan tertentu bekerja lebih baik
Inca