Warum hassen einige Programmierer den UI-Teil der Entwicklung? [geschlossen]


54

Viele Programmierer, die ich getroffen habe, sagen immer: "Er ist kein UI-Typ." Tatsache ist, dass die Entwicklung heutzutage, egal ob Web, Windows, Linux, OSX oder jede andere Art von Entwicklung, Software mit einer gut aussehenden Benutzeroberfläche umfasst. Warum scheinen so viele Entwickler die UI-Arbeit nicht zu mögen?


54
weil sie keine Designer sind :)
Mahmoud Hossam

17
Die Entwicklung umfasst keine gut aussehende Benutzeroberfläche, sondern ein verkaufbares Produkt . Jeder kann etwas gut aussehen lassen, nur wenige können es funktionieren lassen.
Josh K

58
@JoshK - Ihr Hauptpunkt ist genau richtig, aber ich bin nicht der Meinung, dass "jeder etwas gut aussehen lassen kann". Wir Entwickler sind irritiert über Leute, die unseren Beruf unterschätzen ("Es ist nur Tippen, wie schwer kann es sein?"), Also lasst uns das nicht mit anderen Disziplinen machen.
Steve S

20
Vergessen wir nicht, dass gutes Aussehen nicht das Wichtigste an einer Benutzeroberfläche ist. Es gab zahlreiche gut aussehende Benutzeroberflächen, deren Verwendung sehr umständlich war. Ich hätte lieber keinen Grafikdesigner, der eine Benutzeroberfläche entwirft, es sei denn, der Designer verfügt über Hintergrundinformationen zu menschlichen Faktoren.
David Thornley

17
@Josh K: Nachdem ich "Das Design alltäglicher Dinge" gelesen habe, denke ich, dass es umgekehrt ist. Etwas zum Laufen zu bringen ist der einfache Teil. Es so gut zu machen, dass Benutzer es intuitiv verstehen, mögen und es wieder verwenden wollen, ist weitaus schwieriger.
Nikie

Antworten:


102

Ich bin auch keine UI-Person. Nun, ich mache UI in meinen eigenen Projekten, aber bei der Arbeit habe ich nichts damit zu tun - meine Arbeit liegt im Bauch der App, nicht im Frontend.

Darüber hinaus denke ich, dass es mehr Langeweile als Hass ist. Das Entwerfen der Benutzeroberfläche ist der schwierige und herausfordernde Teil. Die Umsetzung ist meist Grunzarbeit. Es gibt nur sehr wenige Herausforderungen oder Neuerungen bei der Implementierung einer Benutzeroberfläche, und es gibt nur so viele Male, in denen man ein Kontrollkästchen auf dem Bildschirm platzieren kann, bevor man sich etwas überlegt. Dabei geht es nicht einmal darum, Stunden damit zu verbringen, Pixel "nur so" auszurichten.


63
+1 für "Pixel nur so ausrichten", das hasse ich. Es ist zu 99,99999% perfekt, aber der Benutzer möchte, dass der Rahmen um die Box, der an erster Stelle nicht vorhanden sein sollte, 2 Pixel breit ist, nicht 1, und einen "helleren" Blauton, aber nicht den hellen Schatten, den Sie haben hatte vor 2 überarbeitungen, dunkler als das. Und so weiter und so fort ... Welches ist es, was ich jetzt durchmache. Die App funktioniert zu 100%, aber ich erhalte mühsame Aufforderungen, die Schreibweise dieses Tooltips zu ändern und den Punkt zu entfernen ... darauf konzentrieren sich meine "Tester" ... überhaupt nicht.
CaffGeek

3
@ Robert Harvey, es ist ein täglicher Kampf. Ich wünschte, wir hätten ein oder zwei engagierte Benutzeroberflächen-Mitarbeiter hier ... dies würde auch dazu beitragen, unsere Unfähigkeit zu beheben, die Benutzeroberfläche für unsere wichtigsten Apps zu standardisieren.
CaffGeek

23
+1 für die Feststellung, dass es viel interessanter ist, eine GUI zu entwerfen, als sie zu erstellen.
Jprete

5
Die Implementierung sollte niemals Grunzarbeit sein. Wenn ja, haben Sie entweder eine Architektur mit unzureichenden Faktoren oder einen ineffizienten Prozess. Wir sind Programmierer. Wenn wir etwas tun, was eine Maschine kann, sollten wir es automatisieren .
Munificent

10
@munificent Ich denke, dass Automatisierung ein großes Ziel ist, aber ich muss noch ein automatisiertes UI-Layout finden, das nicht angepasst werden musste, um sich an die Vision des Designers oder die Vorlieben des Kunden anzupassen. Und dann gibt es einfach nur technische Einschränkungen - wenn Sie beispielsweise WinForms verwenden, sind Ihre Optionen für das automatische Layout eingeschränkt. Ich denke, Web-Apps haben es besser als Desktop-Apps, aber wenn wir nicht telepathisch ein UI-Layout erstellen und verkabeln können, wird es meiner Meinung nach immer noch einiges an Plackerei geben. Ich freue mich darauf, mich in diesem Punkt in Zukunft als falsch zu erweisen. :)
Adam Lear

55

Das Erstellen einer guten Benutzeroberfläche erfordert viele andere Fähigkeiten als das Schreiben von Backend-Code.

Back-End-Anforderungen können normalerweise wie eine Blackbox angegeben werden, x geht ein und es wird erwartet, dass y herauskommt. Damit es funktioniert, müssen Sie die Logik implementieren, und Sie können programmgesteuert testen, ob es funktioniert oder nicht.

Um eine gute Benutzeroberfläche zu erstellen, müssen Sie Benutzerfreundlichkeit, visuelles Design, Layout und Dinge wie Farbschemata berücksichtigen. Ein bisschen künstlerische Kreativität ist hier ein Bonus, und viele Programmierer haben nicht das Gefühl, dass sie dies haben. Für ein logisches Gehirn mag die Lösung eines UI-Problems subjektiv erscheinen, da es keine richtige Antwort gibt oder es keinen einfachen Weg gibt, um zu bestätigen, dass es „richtig“ gemacht wurde.

Ich denke, viele Programmierer, die nicht viel Erfahrung mit der Benutzeroberfläche haben oder nicht viel darüber recherchiert haben, wissen nicht, dass es Regeln und wissenschaftliche Erkenntnisse gibt, die sowohl aus Sicht der Benutzerfreundlichkeit als auch des Designs (z. B. Farbe) für ein gutes Benutzeroberflächendesign sprechen Theorie).

Natürlich haben einige Programmierer kein Problem mit diesem Aspekt, aber sie hassen es, weil viele Benutzeroberflächen nur langweilig im Code sind. Sie können aus vielen sich wiederholenden Arbeiten bestehen, wie Seiten mit Formularen für Verwaltungsseiten, auf denen sie nur funktionsfähig sein müssen und es keine Designherausforderung gibt.


3
Das Schreiben von Backend-Code beinhaltet auch viele verschiedene Fähigkeiten (im Gegensatz zu dem, was Ihr erster Kommentar zu implizieren scheint), es ist nur eine andere Gruppe von Fähigkeiten.
Matthieu M.

2
@Matthieu tut es, und ich habe nie gesagt, dass es nicht so ist. Was ich damit meinte war, dass UI-Codierung eine andere Menge von Fähigkeiten beinhaltet als Back-End-Codierung. Denken Sie bitte nicht, dass ich das Back-End-Coding
Alb

+1: Das ist schwierig, und der normale Ansatz für Software-Design funktioniert bei Grafiken einfach nicht. Wenn es hässlich ist, bleibt es hässlich.

18

Menschen haben einfach unterschiedliche Interessen. Einige Programmierer interessieren sich mehr für Datenstrukturen und Algorithmen, andere für Architektur, andere für Benutzerfreundlichkeit und UI-Design - oder eine Kombination dieser und anderer Nischen. Sie erfordern jeweils unterschiedliche Fähigkeiten und unterschiedliche Denkweisen in Bezug auf ein Problem. Wenn Sie die einfachen Funktionen der Programmierung mögen, interessiert es Sie vielleicht nicht so sehr, wie der Benutzer denkt, oder umgekehrt.

Persönlich falle ich in das letztere Lager - ich würde viel lieber eine Benutzeroberfläche als einen komplexen Algorithmus entwerfen. Genau das finde ich interessant.


15

Ob ein bestimmtes UI-Design gut oder schlecht ist , ist ziemlich subjektiv , was ich für Programmierer im Allgemeinen unattraktiv finde. Ein paar Jahrzehnte des Bemühens, gute UI-Techniken zu quantifizieren und zu qualifizieren, haben dazu beigetragen, einige allgemeine Regeln zu erstellen, die angewendet werden können. Meistens ist jedoch eine Menge A / B-Tests und andere Benutzerbeobachtungen erforderlich, um wirklich festzustellen, ob eine UI von Nutzen ist Techniken.

Obwohl die Programmierung sicherlich subjektiv ist, können Sie in der Regel auf eine Art objektiver Gründe hinweisen, warum eine Auswahl besser ist als eine andere: Ausführungsgeschwindigkeit, Speicherbedarf, Flexibilität zur Erfüllung zukünftiger Anforderungen, Verfahren, die sich nachweislich als effektiver erwiesen haben Die Verteidigung einer bestimmten UI-Wahl - und damit auch die Entscheidung selbst - wird häufig zu "Ich mag es" degradiert, was eine ganz andere Art von Argument ist.


2
genau richtig, das "subjektive" nervt. Nehmen Sie zwei Leute mit und sie haben sehr unterschiedliche Meinungen darüber, was eine gute Benutzeroberfläche ist. Sie können einen GUI-Aspekt nicht Unit-testen (nicht wirklich). etc ...
Matthieu M.

13

Ich persönlich mag keine UI-Entwicklung, weil ich nicht gut darin bin. Es gibt ein RIESIGES Element der Benutzerpsychologie, das ich einfach nicht gut verstehe. Ich denke, mein größtes Problem ist, dass ich mich nicht in die Lage des Benutzers versetzen kann. Ich weiß nicht, wie man intuitive Layouts erstellt, weil ich nicht weiß, was für den Benutzer intuitiv ist, und auch nicht, wie man Dinge hübsch aussehen lässt.

Ich glaube nicht, dass einige Programmierer es hassen, Benutzeroberflächen so zu entwerfen, wie sie es hassen, Dinge zu tun, in denen sie nicht gut sind. Es kommt einfach vor, dass es viele Entwickler gibt, die nicht gut in der UI-Entwicklung sind.


+1 - "Programmierer hassen es, Dinge zu tun, in denen sie nicht gut sind." So wahr. Wenn du es in einem persönlichen Projekt machst, ist es Übung und kann Spaß machen, aber wenn du es für deinen Job machst - es ist Leistung und wenn du nicht über die Fähigkeiten verfügst, ist es einfach stressig.
lunchmeat317

11

Das Problem mit dem UI-Design ist, dass jeder eine Meinung hat ... und es gibt keine richtige oder falsche Antwort. Entwickler hingegen lieben Schwarzweiß und Logik. In Unternehmen jeder Größe wird jeder zustimmen 1+1=2, aber fragen Sie, welche Schrift das Lesen am einfachsten macht (Comic Sans Obviously)... machen Sie sich bereit für die Flut. Zehntausend verschiedene Antworten und jeder hat Recht, weil jeder anders ist.


6
Oh Gott, Comic Sans ...
Maxpm

+1 für Schwarzweißlogik. Ich hasse es wirklich, Entscheidungen über Dinge zu treffen, auf die es keine richtigen oder falschen Antworten gibt (Gestaltung der Benutzeroberfläche, Entscheidung, wo man lebt, was man zum Abendessen isst usw. lol).
Dan,

7

Als Entwickler, der Spaß an der Arbeit an der Benutzeroberfläche hat (insbesondere, weil ich meinen Teil des Webdesigns getan habe), schätze ich es, wenn jemand, der nicht über die erforderlichen Fähigkeiten verfügt, davon Abstand nimmt.

Das Entwickeln erfordert die Fähigkeit, eine Menge Daten im Kopf zu behalten und mit einer Menge gleichzeitig umzugehen. UI-Design erfordert die Fähigkeit, es so minimal wie möglich zu reduzieren, ohne seine Integrität zu beeinträchtigen. Ich liebe die Herausforderung dabei. und ich zucke zusammen, wenn ich sehe, dass jemand eine Benutzeroberfläche erstellt, bei der es sich um nicht verwaltbare Wall-O-Daten auf dem Bildschirm handelt. (Ich bin auch ein absoluter Freak, wenn es um Layout, Farbtheorie usw. geht.)

Auf der anderen Seite hasse ich Low-Level-Sachen. Ich werde niemals Code für Treiber, Kernel oder ähnliches anfassen: shudder: Das überlasse ich den "Nicht-UI-Leuten", und ich bin froh, dass es jemand anderem Spaß macht, oder es würde niemals gelingen.


6

Ich denke, es kommt darauf an, dass die meisten Programmierer den linken Teil ihres Gehirns benutzen.

Eine gute Quelle für die weitere Lektüre dieses Themas.

Bildbeschreibung hier eingeben


6
Vielleicht gefällt Ihnen das Buch Pragmatisches Denken und Lernen: Refactor Your Wetware . Es bietet eine neue Möglichkeit, über die Unterschiede zwischen linker und rechter Gehirnhälfte nachzudenken. Tatsächlich benennt es sie in Linear-Modus und Rich-Modus um und ist eine wirklich sehr gute Lektüre.
CaffGeek

@Chad Danke Tschad! Ich werde es in Betracht ziehen!
Amir Rezaei

+1 für das Aufrufen. Backend-App-Entwickler sind sehr analytisch, während Frontend-Arbeiten viel kreativer ausgerichtet sind. Manche Leute mögen beides, aber viele halten sich gerne an ihre jeweiligen Nischen.
Mistkerl


Ich stimme nicht zu, dass "Musik" unter die Funktionen der rechten Gehirnhälfte fällt, zumal sie unter "Kunst" zusammengefasst ist. Musik ist extrem mathematisch und logisch, während Kunst das genaue Gegenteil ist (vielleicht mit Ausnahme der Pixelkunst, bei der technische Einschränkungen die Logik wieder in "Kunst" einführen).
Dan,

6

Die Entwicklung der Benutzeroberfläche wird komplex, weil Sie zu viel Input von den falschen Leuten erhalten. Sie alle sind Experten für Grafikdesign. Sie sind nicht zu finden, wenn Sie die Formel für etwas wissen wollen.

Sie wissen nicht, was sie wollen, wissen es aber, wenn sie es sehen, haben keinen Geschmack, und diejenigen mit Entscheidungsbefugnis werden die Anwendung sowieso nicht verwenden, sind sich aber sicher, dass sie grün sein sollte. Sie befolgen Richtlinien für eine gute Benutzeroberfläche, wie das Begrenzen der Anzahl der Felder in einem Formular, und Sie werden aufgefordert, 50 weitere Felder hinzuzufügen, da sie alle "benötigen" und es zu aufwändig ist, sie auf separaten Registerkarten zu haben. Sie wissen, das gleiche wie Excel. Bauern!

Sie können das nicht erfinden. Ich saß in einer Besprechung, in der die beiden besten Mitarbeiter der Buchhaltungsabteilung (ca. 500.000 / Jahr Gehalt) einer großen Anwaltskanzlei eine halbe Stunde lang über ein Etikett auf einer von den Anwälten verwendeten Abrechnungswebseite stritten. Dies sollte den Anwälten das Verständnis erleichtern. Warum nicht einfach die Anwälte fragen? Zu einfach. Die IT-Abteilung erhält also 50 Telefonanrufe von Anwälten, die wissen möchten, wie hoch der verbleibende Nettorechnungsbetrag bei der WTF ist und warum er auf ihrem Zeiteingabeformular steht.


5

Manche Leute mögen Brokkoli, andere nicht. Wir müssen es vielleicht essen, aber wir müssen es nicht mögen und wir werden es nicht genießen, wenn wir es essen. Darüber hinaus werden wir es vermeiden, so viel wie möglich essen zu müssen.

Es gibt eine Menge anderer Dinge zu codieren als nur die Benutzeroberfläche. Webdienste, Windows-Dienste, eingebettet (nicht viel von einer Benutzeroberfläche auf einer Mikrowelle), um nur einige Beispiele zu nennen.


9
Die Benutzeroberfläche wird in der Regel kurz auf eine Mikrowelle eingestellt, weshalb die meisten von ihnen saugen.
Robert Harvey

4
Die Sache mit einer Mikrowelle ist, wenn Sie eine gute haben, mit einer schönen Benutzeroberfläche, in der Sie keine bestimmte Reihenfolge für die Tasten benötigen, um eine Aufgabe zu erledigen, Sie denken nicht einmal darüber nach. Aber wenn Sie diese billige Mikrowelle für den Keller oder was auch immer kaufen, bemerken Sie sofort, wie schrecklich die Benutzeroberfläche darauf ist. Sie müssen sich genaue Befehle zum Drücken von Knöpfen merken. Wähle ich die Leistungsstufe vor der Zeit? Oder danach? Muss ich zuerst die Kochzeit erreichen? etc, etc ... Und wann müssen Sie die darin versteckten Anweisungen lesen ?! PFUI! Eine gute Benutzeroberfläche sollte für den Benutzer "unsichtbar" sein.
CaffGeek

Schreckliche Metapher. Ich liebe Brokkoli, aber ich hasse es, UI zu entwerfen. ;)
Dan

4

Dies kann in einigen Fällen daran liegen, dass Tools, die ausdrücklich dafür vorgesehen sind, Ihnen das Zeichnen der Benutzeroberfläche zu erleichtern, tote Babyaffen durch einen Strohhalm saugen.


4

Es gibt bestimmte Dinge in der UI-Entwicklung, die schwierig zu korrigieren sind.

Layout ist einer von ihnen. Ich baue seit über 15 Jahren Benutzeroberflächen und habe noch keine vernünftige Lösung für das Layout-Management.

Ein weiteres Problem ist das Ereignis-Routing - selbst bei MVP-Architekturen und von Frameworks vorgeschriebenen Elementen würde ich argumentieren, dass bei den meisten komplexen Benutzeroberflächen Probleme mit dem Ereignis-Routing auftreten.


3

Ich weiß, dass ich UI-Entwickler früher hasste, weil ich es sehr mühsam und langsam fand, insbesondere Layout-Code zu schreiben, um Dinge in einer Form oder einem Fenster zu positionieren. Mit UI-Designer-Tools wie dem Forms Designer in Visual Studio macht es mir fast Spaß . Andere Gründe, es zu hassen, die ich von anderen gehört habe, waren "es ist dumm", "es ändert sich immer zu sehr", "es ist nicht anspruchsvoll genug", "es ist mühsam / langweilig".


4
Wie antworten Sie mit Ihrem Benutzernamen? :)
Robert Harvey

@ Robert Harvey: Fair genug! Der Formulardesigner ist gut, aber wenn Sie anfangen, sich mit generischen UI-Containern zu beschäftigen, wird er erstickt. Oder zumindest VS2008. Noch nicht ausprobiert 2010, aber ich vermute, es könnte ähnliche Probleme haben? In beiden Fällen wurde das Problem schließlich behoben (siehe meinen allerersten Beitrag zu SO). Es gibt andere Dinge, die es auch ersticken, aber es beseitigt genug von der Langeweile, die ich normalerweise jetzt genieße UI-Design / Entwicklung.
FrustratedWithFormsDesigner

3

Warum entwerfen nicht alle Schachspieler gerne Schachbretter und die Figuren, mit denen sie spielen?

Es ist nicht seltsam, dass manche Leute das nicht mögen ... es ist seltsam, dass Sie erwarten, dass wir das sollten.


1
Schachspieler entwerfen keine Schachbretter und Schachfiguren, da diese Designs seit über einem Jahrhundert vom internationalen Schachverband (FIDE) standardisiert und diese Standards allgemein übernommen wurden.
Jwenting

2

Ich arbeite gerne an der Benutzeroberfläche. Das stimmte nicht immer für mich, aber meine Freude an der Arbeit mit der Benutzeroberfläche hat zugenommen, da ich es in den letzten Jahren besser gemacht habe. Ich weiß, dass einige Entwickler nicht in der Nähe eines Stylesheets oder einer Farbpalette arbeiten dürfen. Es ist definitiv ein anderes Können und nicht jeder hat es.


2

Ich hasse UI-Arbeit nicht so sehr wie einige UI-Frameworks. ZB habe ich .NET für> 10 Jahre programmiert. Die Frameworks zum Erstellen von Webanwendungen sind hervorragend (ASP.NET WebForms und ASP.NET MVC). Aber die Frameworks für das Schreiben von Desktop-Anwendungen, nun, ich mag sie nicht (WinForms und WPF).

In dieser Hinsicht ist das Schreiben von GUI-Anwendungen eher ein Aspekt der Verwendung von Frameworks, die ich nicht mag.

Es gibt noch einen anderen Aspekt. Ich arbeite oft mit Anwendungen im "Enterprise" -Stil, dh Anwendungen, bei denen eine Desktop-Anwendung Daten von einem Server empfangen muss. In diesem Fall gibt es so viele Konvertierungsebenen für Daten von einem Format in ein anderes, dass es wirklich langweilig wird.

Beispielsweise erhält die Anwendung Informationen über eine Reihe von DTO-Objekten. Die Anwendung erstellt dann eine eigene Modelldarstellung der Daten (wobei nicht dieselben Domänenklassen wiederverwendet werden, die auf dem Server erstellt wurden). Die Modellklassen werden von einem Ansichtsmodell (in einem WPF MVVM-Muster) verwendet, das die Eigenschaften des Modells verfügbar macht.

Das ist eine Menge Male, dass die gleichen Daten von verschiedenen Klassen dargestellt werden. Und das wird langweilig. Dies ist jedoch ein spezifisches Problem für diese Art von Desktopanwendung.

Es gibt auch interessante Herausforderungen bei dieser Art von Anwendung, z. B. wie wir Änderungen von einem Client erhalten, um sie sofort auf einem anderen Client zu aktualisieren.


++ Ich weiß was du meinst. Für den letzten Punkt zum Übertragen von Updates zwischen Clients verwende ich Polling (normalerweise 1 Sekunde), aber das funktioniert wahrscheinlich nur für eine relativ kleine Datenbank und eine geringe Anzahl von Clients.
Mike Dunlavey

2

Ich bin aus folgenden Gründen kein großer Fan von UI-Entwicklung:

  1. Als Entwickler haben Sie weniger Gestaltungsfreiheit: Der Kunde kann zu jeder kleinen Facette der Benutzeroberfläche, auf die Sie reagieren müssen, Ansichten und Meinungen abrufen. Sie erhalten Anfragen wie: Ändern Sie die Farbe; Bewegen Sie den Knopf dorthin. Macht nichts, verschiebe es zurück. Der Back-End-Code ist selten so sichtbar.

  2. Die Benutzeroberfläche ist unordentlicher, während das Back-End eher "platonisch" ist. Ich habe zwar hässliche Verwirrungen mit Back-End-Code gesehen, aber ich denke, es ist üblicher, dass er sauber ist (aus Sicht des Codes) als UI-Code. Eine Benutzeroberfläche kann sehr aufgeräumt und gut für den Benutzer gestaltet sein. Da ich jedoch Entwickler bin und mehr Zeit mit dem Code verbringe als mit dessen Verwendung, mag ich es, Code zu bereinigen.

  3. Ich bin der Meinung, dass die Benutzeroberfläche eher ein "Klempner" als ein Back-End ist, dh, es gibt weniger Möglichkeiten für clevere Algorithmen, um Ihr Gehirn wirklich an seine Grenzen zu treiben.


1

Ich mache sowohl UI (Desktop, nicht Web) als auch interne Eingeweide.

Die Menge, die ich mag oder nicht mag, hängt davon ab, wie viel ich mit so etwas wie einer domänenspezifischen Sprache (DSL) erledigen kann.

In der UI-Domäne ist das, was ich den Benutzern präsentiere, und die Komplexität der Informationen, die ich von ihnen erhalte, so, dass ich verrückt werden würde, wenn ich typische Tools wie Formulardesigner, viele Event-Handler und MVC verwenden müsste , all das "State of the Art" Zeug. Zum Glück habe ich vor Jahrzehnten herausgefunden, was ich für einen besseren Weg halte, nämlich ein DSL dafür zu machen und darin zu arbeiten. Momentan nenne ich es Dynamische Dialoge und es basiert auf einer Kontrollstruktur, die ich Differential Execution nenne . Die gute Nachricht ist, dass der Quellcode für eine bestimmte Funktionalität ungefähr eine Größenordnung kleiner ist, sodass ich viel mehr Funktionen in die Benutzeroberfläche integrieren kann. Die schlechte Nachricht ist, dass ich, so sehr ich versucht habe, es zu lehren, nicht viel Glück hatte, die Technologie zu übertragen.

In der Nicht-UI-Domäne habe ich eine Lehre aus einer Reihe von Produkten gezogen, die als über die Befehlszeile verwendbare DSLs begannen, auf die später eine UI übertragen wurde. Dies gibt dem erfahrenen Benutzer eine Möglichkeit, die Benutzeroberfläche zu umgehen, und dem Gelegenheitsbenutzer etwas, das er ungezwungen verwenden kann. (Beispiele: R, SPlus, Matlab, SAS, WinBugs.) Unser Produkt verfügt daher über eine Befehlszeilensprache für Experten. Ich liebe es, solche Dinge mit einem Parser, einem Codegenerator, einem Precompiler und einer Laufzeitmodellierungs-Engine zu entwickeln. Der Aufwand dafür ist mindestens eine Potenz von 10 weniger als der Aufwand für die Benutzeroberfläche.

Ein Grund für die große Anstrengung der Benutzeroberfläche ist, dass es immer noch viel "Kleber" gibt, der mit DSL nicht möglich ist - Verwalten von Datengittern, Sortieren von Daten aller Art, all das Zeug, das in den gähnenden "Riss" gerät zwischen reiner Benutzeroberfläche und zugrunde liegender Sprache.

Ihre Frage lautete also "Warum hassen einige Programmierer den UI-Teil der Entwicklung?". Ich hasse es nur wegen dieses "Klebers", für den ich kein DSL habe.


1

Ehrlich gesagt finde ich, dass es ein bisschen PITA ist, das beste GUI-Toolkit zu finden und dann tatsächlich die Vor- und Nachteile davon zu lernen. Ganz zu schweigen davon, dass man im College nicht viel UI-Zeug lernt und ich ein Neuling bin ..


1

Abgesehen von dem, was bereits gesagt wurde (es ist mühsam, langweilig und frustrierend, es zu programmieren, und das Design wird normalerweise von jemandem ausgeführt, der keine Ahnung hat, welche Probleme seine Ideen für diejenigen verursachen, die versuchen, sie umzusetzen), ist es ein wichtiger Faktor, dass Sie müssen mit Leuten zusammenarbeiten, deren Ideen sich ständig ändern sollten, weit mehr als für das Backend. Infolgedessen schießen Sie noch mehr gegen eine sich bewegende Spezifikation, und diese Leute neigen dazu, auch Nitpicker zu sein. Ich habe Benutzeroberflächen buchstäblich nicht testen lassen, weil eine Komponente 1 Pixel von dem Ort entfernt war, an dem die Person, die sie getestet hat, dachte, es hätte sein sollen. Hat es funktioniert? Ja. Sah es gut aus? Ja. Aber er fing an, Pixel zu zählen, und irgendetwas war ein einziges Pixel vom Rest entfernt, also schickte er es zur Überarbeitung zurück.


1

Noch ein paar Punkte:

1) Das Design der Benutzeroberfläche kann schwieriger zu testen sein. Sie können sicher sein, dass Sie überprüfen können, ob diese Schaltfläche das tut, was sie sollte. Es ist jedoch schwieriger zu testen, ob die Verwendung einfach ist. Wie wäre es mit dem Testen, ob es für jemanden mit einer Behinderung verwendbar ist?

2) Viele Programmierer sind nicht darin geschult und wissen nicht viel darüber.


1

Tatsache ist, dass viele UI-Tools / Framework / API schlecht, komplex und weit davon entfernt sind, intuitiv zu sein. Ich habe mit Win32 API in C / C ++, mit javax.swing, CSS usw. entwickelt.


1
Sie meinen, Sie sind mit Tools ausgebrannt, die nicht mehr allgemein verwendet werden (die meisten Leute würden Win32 heutzutage nicht für die UI-Programmierung verwenden)? Entschuldigung, ich halte das einfach nicht für einen gültigen Punkt.
user16764

1

Als CS-Student lernen Sie Datenstruktur, Datenbank, C ++ ... mit Ausnahme der Benutzeroberfläche. Sie werden es also nicht von Anfang an gut können . Wenn du nicht gut darin bist, wirst du es hassen.


Viele Universitäten und Hochschulen bieten UX-Design-Kurse an. Oft als Teil ihres CS-Lehrplans.
user16764

1

Nachdem ich an beiden Seiten der Medaille gearbeitet hatte, dh dem UI-Design und dem Backend-Code, stellte ich fest, dass beide Seiten der Medaille im Grunde dasselbe sind.

Anforderungen, die sich von Ihren täglichen Anforderungen unterscheiden, treten nicht immer auf. In Zeiten, in denen sich alle Dienste um CRUD drehen, wird es langweilig.

Wie auch immer, die Codierung des Frontends ermöglicht eine bessere Interaktion und eine verrückte Dynamik, die im Grunde genommen eine unerfahrene Hand in das Frontend-Design steckt. Ich persönlich habe die harte Tour im Frontend gelernt und kann mit Sicherheit sagen, dass das Entwerfen des Frontends weitaus interessanter und herausfordernder ist.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.