Saya melakukan UI (desktop, bukan web) dan nyali internal.
Jumlah yang saya suka atau tidak suka tergantung pada seberapa banyak saya bisa selesai menggunakan sesuatu seperti domain-specific-language (DSL).
Dalam domain UI, apa yang saya sajikan kepada pengguna, dan kompleksitas informasi yang saya dapatkan dari mereka, sedemikian rupa sehingga saya akan menjadi gila jika saya harus menggunakan alat khas, seperti desainer formulir, banyak penangan acara, MVC , semua yang "canggih". Untungnya, beberapa dekade yang lalu saya menemukan apa yang saya pikir merupakan cara yang lebih baik, yaitu membuat DSL untuk itu, dan bekerja di sana. Saat ini saya menyebutnya Dialog Dinamis, dan didasarkan pada struktur kontrol yang saya sebut Eksekusi Diferensial . Berita baiknya adalah, untuk fungsionalitas yang diberikan, kode sumber kira-kira kurang lebih besar, memungkinkan saya untuk menempatkan lebih banyak fungsionalitas ke dalam UI. Berita buruknya adalah, sebanyak yang saya coba ajarkan, saya belum beruntung mentransfer teknologi.
Dalam domain non-UI, saya mengambil pelajaran dari sejumlah produk yang dimulai sebagai DSL yang dapat digunakan dari baris perintah, di mana UI kemudian dicangkokkan. Itu memberi pengguna ahli sesuatu di mana mereka dapat memotong UI, sementara memberikan pengguna biasa sesuatu yang bisa mereka gunakan dengan santai. (Contoh: R, SPlus, Matlab, SAS, WinBugs.) Jadi produk kami memiliki bahasa baris perintah untuk para ahli. Saya suka mengembangkan hal-hal seperti itu, dengan parser, generator kode, precompiler, dan mesin pemodelan run-time. Upaya yang dihabiskan untuk itu setidaknya kekuatan 10 kurang dari upaya yang dihabiskan di UI.
Salah satu alasan upaya UI begitu banyak adalah masih ada banyak "lem" yang tidak dapat dilakukan dengan DSL - mengelola data grid, semua jenis cara menyortir data, semua hal yang termasuk dalam "celah" menguap antara UI murni dan bahasa yang mendasarinya.
Jadi pertanyaan Anda adalah "Mengapa beberapa programmer membenci bagian pengembangan UI?". Saya hanya membencinya karena "lem" yang saya tidak punya DSL.