Hast du jemals Maven oder Gradle benutzt?
Das klingt nach dem typischen Meckern von jemandem, der es weder nutzt noch ansatzweise verstanden hat, warum man es nutzt...
Ich muss das leider ständig nutzen. Aber ich sehe in den meisten Fällen einfach keinen Mehrwert darin.
Du hast mal gefragt was ich mache. Hier die ziemlich lange Erklärung dazu:
Ich entwickele Java und Web Applikationen. Wobei seit ein paar Jahren von den Auftraggebern eigentlich nur noch Web Apllikationen gefragt sind.
Ich arbeite für einen der größten Konzerne der Welt. Dort geht das folgendermaßen ab. Ich schreibe das jetzt extra extrem überspitzt ihr könnt das dann entsprechend auf die Realität skalieren wie ihr möchtet:
Irgendein Mitarbeiter hat eine Idee, wie man mit einer individuellen Software, die 1 und 1 zusammenrechnet einen Arbeitsprozess ungemein vereinfachen könnte. Der Manager findet diese Idee gut und ruft bei der globalen IT an und erklärt sein Anliegen. Die globale IT sagt sie wird sich beraten und dann wieder melden. Wenn der Manager nun Glück hat wartet er nur 1-2Monate bis er eine Antwort bekommt: „Wir haben das einmal durchgerechnet. Für diese Software brauchen wir einen Projektleiter, einen Front- und einen Backend-Softwarentwickler (Einer von denen wärst dann wahrscheinlich du), einen Qualitätstmanager, einen Technischen Redakteur und ein etwa 5 köpfiges Betatest-Team. Dazu müssen wir die Software nach DIN a,b,c,d und e validieren und zertifizieren. Wenn Sie das OK geben, können wir schon in 6 Monaten damit anfangen und in etwa 24 Monaten haben sie die Software. Die Kosten belaufen sich auf etwa 450.000 Euro“.
Das ist natürlich keine Option für den Manager also nimmt er Plan B. Er angagiert einen Studenten oder Praktikanten oder einen gerade fertig gewordenen Informatik Studenten (eben was gerade verfügbar und am billigsten ist) und lässt diesen die Software im Alleingang entwickeln. Der nimmt natürlich das was er mal so Halbseiden gelernt hat, nämlich Java Spring für das Backend und AngularJS für das Frontend. Das ganze schön mit Maven aufgesetzt. Da er aber keinen Senior hat der ihm dabei hilft haben wir nun 3 mögliche Ergebnisse:
1) Die Software wird nach einem halben Jahr 1+1 ausrechnen aber 3 heraus bekommen und er braucht Hilfe.
2) Die Software funktioniert auf dem Windows Entwicklungsrechner des Studenten aber keiner weis wie man diese nun auf den Amazon Cloud Linux Server mit externer Oracle DB und entsprechenden Problemen der Portfreischaltungen etc installieren soll und man braucht Hilfe.
2) Der Manager wird nach einem halben Jahr langsam nervös weil die Software immer noch nicht fertig ist und braucht Hilfe
Diese Hilfe bin dann ich. Ich sehe mir dann an was der Studi da verzapft hat und versuche meist wenigstens das backend zu retten. Deshalb muss ich auch mit Maven arbeiten und mit Spring obwohl ich es einfach nur grottig finde. Wenn ich das ganze in PHP oder meinetwegen auch in NodeJS machen würde, wäre es um einiges performanter und um Längen kompakter. Wenn das backend komplett Schrott ist mache ich das auch neu in PHP oder NodeJS.
Das Frontend ist in75% der Fälle komplett unbrauchbar. Das schreibe ich dann lieber eben schnell neu in JavaScript und JQuery. Hier habe ich mir über Jahrzehnte ein eigens kleines Framework geschrieben mit dem ich sehr schnell eine Single side Applikation schreiben kann die dynamisch alle weiteren Inhalte nachlädt. Also nicht nur die html, sondern auch die ja, css und ein JSON file welches die Texte für die von User ausgewählte Sprache enthält (Multilingual). Das Framework ist dermaßen klein und einfach, dass es nichtmal 5MB groß ist.
Nach etwa 14 Tagen bis 4 Wochen hat der Manger dann eine funktionieren Software die ihm 1+1 richtig ausrechnet. Und nein, die ist natürlich nicht validiert oder zertifiziert, nein, die hat keine Unittest, kein qualitätsmanagement und auch keinen Betatest hinter sich. Warum auch? Diese Software berechnet 1+1 und jeder sieht ob das Ergebnis stimmt oder nicht.
Der Manager ist über glücklich und empfiehlt mich weiter, so dass ich mitlerweile schon Aufträge ablehnen muss.
Nochmal: ich sehe die Notwendigkeit eines Maven, einer QS und dem ganzen oben genannten Zenober, wenn ich eine Software schreibe die die Größenordnung eines CMS ala SAP hat, welches bei einem Fehler dazu führen kann, dass eine ganze Firma nicht mehr funktioniert. Aber das sind ja nicht einmal 1% der Anwendungen die geschrieben werden. Bei einer Anwendung, die von einer Person geschrieben wird und die eine klar abgesteckte unkritische Funktionaliät hat, da braucht an so etwas nicht. Da kostet das einfach nur unnötige Zeit und erzeugt weitere Abhängigkeiten zu anderen Software Entwickelrn, die man nicht einmal kennt und auf die man im Notfall auch keinen Einfluss nehmen kann. Natürlich kommt man niemals ganz darum herum sich von anderen abgängig zu machen. Es fängt ja schon beim OS an, das hindert mich persönlich aber nicht daran trotzdem diese Abhägigkeiten so minimal wie möglic h zu halten.
Und solange ich damit so großen Erfolg habe, werde ich das sicherlich nicht ändern.
Gruß
Claus