Pertanyaan Alat-alat GUI yang secara aktif dikembangkan dan didokumentasikan dengan baik untuk Haskell


Saya telah menghabiskan bagian yang lebih baik dari pagi dan sore saya bermain-main dengan kerangka GUI di Haskell, karena saya memerlukan beberapa kemampuan visualisasi dan interaksi dan saya tidak jatuh cinta dengan menulis fungsionalitas inti saya di Haskell kemudian menyaring ke bagian depan yang ditulis di GUI lain; Saya lebih suka melakukan semuanya dari satu bahasa. Bagian yang lebih baik dari bagian yang lebih baik itu telah dihabiskan untuk mengumpulkan dan menambal kode sumber, atau kesalahan kompilasi Googling yang tidak jelas.

Saya telah menghabiskan banyak waktu membaca pertanyaan SO, banyak waktu di haskell.org, dan banyak membaca dokumentasi waktu. Apa yang saya temui adalah petak yang sangat besar dari informasi yang usang atau kurang terdokumentasi. Saya bisa merebusnya menjadi tiga hal ini:

  1. Kekenyangan pilihan yang dibangun di atas Gtk + bindings. Saya tidak terlalu peduli dengan Gtk +, terutama karena saya merasa tidak enak untuk dilihat, terutama di OS X. Mengatasi tentang UI yang tampak tidak pada tempatnya dan / atau hanya jelek mungkin tampak konyol, tapi itu penting untuk saya. Apalagi jika saya ingin orang lain memanfaatkan salah satu program yang saya buat.

  2. wxHaskell, yang stabil dan sangat mudah untuk menginstal tetapi banyak dari tutorial yang ada tampaknya untuk wx-0.1x dan konvensi untuk menjembatani dokumen 2.9.x wxWidgets ke wx-0.90.x sangat sangat jerawatan dan sulit untuk grok, ketika mereka ada.

  3. qtHaskell, yang tampaknya sebagian besar ditinggalkan (benar saya jika saya salah), hanya mengkompilasi dengan versi GHC yang lebih baru setelah menerapkan tambalan setahun, dan mengeluarkan sejumlah besar peringatan yang mengindikasikan bahwa mereka akan segera menjadi kesalahan kompilasi di versi GHC yang lebih baru.

Sebenarnya, saya mencari jawaban Haskell untuk Java's Swing; perpustakaan yang kuat, terawat, terdokumentasi dengan baik, mudah untuk memulai, membuat upaya untuk menjadi asli dalam tampilan dan nuansa, dapat mengikuti perkembangan GHC, dan tidak berisiko tinggi untuk ditinggalkan. Ini tampaknya persis nol kerangka GUI, tetapi kemudian tampaknya sebagian besar "resmi" sumber daya / wikis / halaman / dokumen yang terkait dengan kerangka kerja GUI sangat tidak terawat jadi saya memutuskan untuk beralih ke komunitas untuk melihat apakah ada sesuatu yang saya hanya tidak menemukan. Saya tidak terlalu khawatir tentang kerangka kerja yang cross platform, asalkan berfungsi pada versi modern OS X.

Untuk mengulangi, saya tidak benar-benar mencari seseorang untuk mengirimi saya tautan ke haskell.org atau WikiBook. Saya pernah ke sana, dan saya tidak suka apa yang saya lihat. Sebagian besar informasi di sana begitu ketinggalan zaman sehingga hanya menciptakan lebih banyak pekerjaan, tidak kurang.

Saya menyadari bahwa "tuntutan" saya sedikit ekstrim, terutama untuk bahasa dengan komunitas yang lebih kecil seperti Haskell, tetapi saya berharap seseorang di luar sana dapat membantu saya. Dalam waktu yang berarti, saya berniat untuk hanya mencoba dan naik ke luar wxHaskell atau qtHaskell sampai saya berhasil atau mati.

Saya harap saya tidak tampil sebagai kasar atau letih.


32
2017-12-14 22:35


asal


Jawaban:


wxHaskell bagus, ya, dan saya pergi ke perpustakaan tingkat menengah GUI. Saya akui sudah ada fokus untuk memperbarui kode sebelum dokumen dalam versi baru.

Untuk hal-hal menyenangkan yang modern dan fungsional-reaktif-pemrograman di atasnya saya mencari pisang reaktif, yang aktif dipertahankan, dan memiliki manfaat tambahan itu Heinrich Apfelmus dirinya mungkin muncul di sini untuk menjawab pertanyaan Anda.


4
2017-12-17 23:46



Threepenny-gui adalah pesaing terbaru di ruang perpustakaan Haskell GUI.

Titik penjualan utamanya adalah sangat mudah untuk menginstal, karena menggunakan browser web sebagai tampilan. Ini juga mudah memulai dengan.

Di sisi lain, ia bahkan tidak berusaha untuk memiliki tampilan dan nuansa asli - UI hanya dibangun pada HTML. (Ini mungkin berubah di masa depan, karena kami memiliki opsi untuk menggunakan XUL). Juga, API masih sangat banyak berubah, jadi bersiaplah bahwa versi utama perpustakaan yang baru cenderung untuk mundur kompatibilitas. (Di sisi lain, ini berarti bahwa itu dikembangkan secara aktif. :-))

(Pengungkapan: Saya adalah pengarang / pengelola paket threepenny-gui.)


4
2018-01-01 09:08



Saya merasakan sakit Anda; jawaban ini merupakan upaya untuk menyediakan beberapa alternatif yang mungkin cukup baik dan mungkin membantu Anda dengan pencarian Anda.

Pertama, ada bahasa yang disebut Bersamaan Bersih. Ini seharusnya mirip dengan Haskell, memiliki dukungan GUI dan dimaksudkan untuk menulis aplikasi dunia nyata. Ini berbeda dalam beberapa hal; misalnya, I / O-nya didasarkan pada tipe-tipe unik daripada Monad, yang sejauh yang saya ketahui, adalah hal yang baik :). Berikut ini tautannya: http://wiki.clean.cs.ru.nl/Clean

Selanjutnya, saya mencari-cari Haskell yang dikompilasi ke JVM, dengan harapan itu akan kembali ke perpustakaan Jawa, ala Clojure. Tidak ada dadu. Apa yang saya temukan adalah benang SO yang membahas kekurangan dan tantangannya: Haskell di JVM?

Namun, dari benang itu, dua opsi lain diajukan. Salah satunya adalah Frege: http://code.google.com/p/frege/

Yang lainnya adalah CAL: https://github.com/levans/Open-Quark

Ada juga bekerja pada pemrograman reaktif fungsional di Haskell. Ini seharusnya memungkinkan hal-hal seperti GUI, meskipun apakah Anda benar-benar akan mendapatkan GUI dari itu adalah masalah lain: http://www.haskell.org/haskellwiki/Functional_Reactive_Programming

Ini menyedihkan. Di sini kita memiliki JVM dan .NET dan belum nihil untuk Haskell. Lebih buruk dari itu; .NET telah menunjukkan kecenderungan mengkhawatirkan untuk membuang implementasi yang menjanjikan. Apa yang terjadi dengan IronScheme, IronLisp dan IronHaskell? Semua orang mati sejauh yang aku tahu.

Tidak baik :(


3
2017-12-15 00:33