Zajmuję się zarówno interfejsem użytkownika (komputer, nie internet), jak i wnętrznościami.
Ilość, która mi się podoba lub nie, zależy od tego, ile mogę zrobić, używając czegoś takiego jak język specyficzny dla domeny (DSL).
W domenie interfejsu użytkownika to, co prezentuję użytkownikom, i złożoność informacji, które od nich otrzymuję, są takie, że oszalałbym, gdybym musiał użyć typowych narzędzi, takich jak projektanci formularzy, wiele programów obsługi zdarzeń, MVC , wszystkie te „najnowocześniejsze” rzeczy. Na szczęście kilkadziesiąt lat temu odkryłem, co moim zdaniem jest lepszym sposobem, czyli stworzenie do tego DSL i pracę nad tym. Obecnie nazywam to Dialogami Dynamicznymi i jest oparty na strukturze kontrolnej, którą nazywam Wykonaniem Różnicowym . Dobrą wiadomością jest to, że dla danej funkcjonalności kod źródłowy jest mniej więcej o rząd wielkości mniejszy, co pozwala mi na wprowadzenie znacznie większej funkcjonalności do interfejsu użytkownika. Zła wiadomość jest taka, że o ile starałem się tego nauczyć, nie miałem zbyt wiele szczęścia w przenoszeniu technologii.
W domenie innej niż interfejs użytkownika wziąłem lekcję z szeregu produktów, które zaczęły się jako DSL użyteczne z wiersza polecenia, na którym później przeszczepiono interfejs użytkownika. Daje to ekspertowi coś, w czym może ominąć interfejs użytkownika, a przypadkowemu użytkownikowi coś, z czego może korzystać swobodnie. (Przykłady: R, SPlus, Matlab, SAS, WinBugs.) Zatem nasz produkt ma język wiersza poleceń dla ekspertów. Uwielbiam tworzyć takie rzeczy za pomocą analizatora składni, generatora kodu, prekompilatora i silnika modelowania w czasie wykonywania. Wysiłek włożony w to jest o co najmniej 10 razy mniejszy niż wysiłek włożony w interfejs użytkownika.
Jednym z powodów, dla których interfejs użytkownika jest tak duży, jest wciąż wiele „kleju”, którego nie można zrobić za pomocą DSL - zarządzanie siatkami danych, wszelkiego rodzaju sortowanie danych, wszystkie rzeczy, które wpadają w ziewający „crack” pomiędzy czystym interfejsem użytkownika a podstawowym językiem.
Więc twoje pytanie brzmiało: „Dlaczego niektórzy programiści nienawidzą części interfejsu użytkownika?”. Nienawidzę tego tylko z powodu tego „kleju”, dla którego nie mam DSL.