Original geschrieben von Eeth
evtl. solltest du java RICHTIG lernen..
Hatte auch oft das gefühl das java ziemlich viel mist macht. aber es macht definitiv nur soviel mist wie man zulässt. und zu schreiben: klassen sind manchmal eine feine sache... naja?!
was mich an java stört ist nicht, dass es Mist macht. Es lässt aus meiner Sicht einfach zu wenig Mist zu. Ich will lazy evaluation, ich will freie Variablenbelegung, unverkrampfte Arrays, Listen, Dicts. Ich will Hello World in einer Zeile (bei korrekten Zeilenumbrüchen). Ich will nicht Sachen so ausdrücken: Objekt.getAnderes().getNochmal(was).getUndschon(wieder).doSomething(sensefull);
Kurzum die Sprache hat nicht genug Freiheit. Das hat auch gar nichts mit dem Java Framework zutun. Das Framework finde ich ziemlich gut. Auch andere Javaframeworks wie Spring oder das J2ME-FF sind gute Sachen.
2 Punkte möchte ich noch allgemein zu Frameworks sagen:
- es ist immer ein Kosten/Nutzen Vergleich nötig, den man dummerweise nur durch Schätzen und Experimentieren machen kann. Weder "immer" noch "nie" sind gute Umgangsformen mit Frameworks
- vielleicht geht es anderen Leuten anders, aber ich kann Frameworks nur soweit benutzen, wie ich schonmal selbst eins Programmiert habe. RoR hab ich erst kapiert, als ich mal selbst Basisklassen für DBs geschrieben, HTML-Templates mit PHP bearbeitet und dynamisch zusammen gebastelt hab und MVC wirklich umsetzen zu können (und nicht nur im Grundsatz zu verstehen) benötigte erstmal eine eigene Lösung für die Frage "Wie verbinde ich das alles jetzt und halte immernoch Ordnung?" Mir fällt es deutlich schwerer, mich in die Lösung anderer Menschen hinein zu denken, als selbst eine zu finden. Wenn ich erstmal 1 Lösung gefunden habe, kann ich diese mit anderen Vergleichen und auch die anderen Lösungen vorteilhaft einsetzen. (z.B. ist mein selbstgeschriebenes System für unsere Webapps eher mittelmäßig und gespickt mit Lücken, da ist ein etabliertes Framework wie Symfony für PHP, Rails für Ruby oder Django für Python schon deutlich besser. Aber ich habs halt vorher nicht kapiert als ich damit rumexperimentiert hatte)
Ich möchte als Diskussionsthema mal MVC in den Raum werfen. Das M steht dabei ganz vorne, was mich gewaltig stört. Gerade im Webapp-Bereich ist es sehr nötig, dass man Userorientiert programmiert. VCM wäre aus meiner Sicht eine viel bessere Reihenfolge.
Warum muss sich der Benutzer an meine Datenhaltungs-Sicht anpassen? Die Datenbanken sollen sich automatisch an den Benutzer anpassen.
Vielleicht stelle ich es mir ja zu einfach vor. Aber die Frage, welche Daten ich speichern will, können auf 2 Situationen reduziert werden:
1. Allgemeine Sachen, die sich sowieso immer ergeben. (Login, Session usw. bla)
2. Sachen die ein Nutzer eingibt und ein Nutzer später mal angezeigt haben will (oder die ich angezeigt haben will)
Der erste Punkt wird durch Frameworks schon ziemlich gut automatisiert. Und das zweite hängt sowieso von der Benutzersicht ab. Was er sieht kann er machen, was er nicht sieht, kann er nicht machen. Und wie ich darauf mein Datenbankmodell erstelle hängt auch von Faktoren ab, die ein Computer kennt: Daten, die der Nutzer eingibt, Normalisierung, Performance, Sicherheit, Wartbarkeit, Erweiterbarkeit.
Und unabhängig davon, ob es umsetzbar ist. Eine Umsetzung dafür zu finden, hätte an sich schon genug Vorteile, dass es sich lohnt, auch eine unmögliche Sache möglich zu machen (ist ja schon oft genug passiert, dass unmögliches möglich wurde. Wer hätte vor 15 Jahren gedacht, dass man mal X Milliarden Seiten in 1 Sekunde nach einen String durchsuchen kann?).
Zum Beispiel könnte der stupide Teil der Arbeit durch GUI-Click-Tools von mittel-gebildeten Leuten (= Berufsausblidung, kein Studium) und Computern gemacht werden und die kreativen Herausforderungen konzentrierter von den Leuten begangen werden, deren Aufgabe es eigentlich ist. Wenn man sich wirklich nur noch Gedanken um die Benutzersicht machen muss, kommt man vielleicht auch endlich mal zu intuitiveren GUIs. Nichts ist schlimmer, als wenn der Benutzer erst lernen muss, wie er dir sein Geld gibt. VCM wäre also >>>> MVC, wenn es endlich mal jemand machen würde.