Tôi làm cả UI (máy tính để bàn, không phải web) và nội bộ.
Số tiền tôi thích hoặc không thích một trong hai tùy thuộc vào số tiền tôi có thể hoàn thành bằng cách sử dụng thứ gì đó như ngôn ngữ dành riêng cho tên miền (DSL).
Trong miền UI, những gì tôi đang trình bày cho người dùng và sự phức tạp của thông tin tôi nhận được từ họ, đến nỗi tôi sẽ phát điên nếu phải sử dụng các công cụ điển hình, như người thiết kế biểu mẫu, rất nhiều trình xử lý sự kiện, MVC , tất cả những thứ "nhà nước của nghệ thuật". Rất may, nhiều thập kỷ trước tôi đã khám phá ra điều mà tôi nghĩ là một cách tốt hơn, đó là tạo ra DSL cho nó và hoạt động theo cách đó. Hiện tại tôi gọi nó là Hộp thoại động và nó dựa trên cấu trúc điều khiển mà tôi gọi là Thực thi vi sai . Tin tốt là, đối với một chức năng nhất định, mã nguồn gần như là một thứ tự cường độ nhỏ hơn, cho phép tôi đưa nhiều chức năng hơn vào giao diện người dùng. Tin xấu là, nhiều như tôi đã cố gắng dạy nó, tôi đã không gặp nhiều may mắn khi chuyển giao công nghệ.
Trong miền không có UI, tôi đã học một bài học từ một số sản phẩm bắt đầu dưới dạng DSL có thể sử dụng được từ dòng lệnh, trên đó UI được ghép sau đó. Điều đó mang lại cho người dùng chuyên gia một cái gì đó nơi họ có thể bỏ qua giao diện người dùng, trong khi cung cấp cho người dùng thông thường một cái gì đó họ có thể sử dụng một cách tình cờ. (Ví dụ: R, SPlus, Matlab, SAS, WinBugs.) Vì vậy, sản phẩm của chúng tôi có ngôn ngữ dòng lệnh cho các chuyên gia. Tôi thích phát triển những thứ như vậy, với trình phân tích cú pháp, trình tạo mã, trình biên dịch trước và công cụ mô hình hóa thời gian chạy. Nỗ lực dành cho điều đó ít nhất là ít hơn 10 lần so với nỗ lực dành cho UI.
Một lý do khiến nỗ lực của UI rất nhiều là vẫn còn rất nhiều "chất keo" không thể thực hiện được với DSL - quản lý lưới dữ liệu, tất cả các cách sắp xếp dữ liệu, tất cả những thứ rơi vào "bẻ khóa" ngáp giữa UI thuần túy và ngôn ngữ cơ bản.
Vì vậy, câu hỏi của bạn là "Tại sao một số lập trình viên ghét phần phát triển UI?". Tôi chỉ ghét nó vì "chất keo" mà tôi không có DSL.