Menü
Avatar von tzzzzzzzz
  • tzzzzzzzz

668 Beiträge seit 20.07.2008

Moderne Softwareentwicklung ist an sich unglaublich komplex geworden

Wenn ich heute mit Softwareentwicklung starten würde, wäre ich schon
ziemlich beeindruckt, was man eigentlich alles verstanden haben muss,
um flüssig mitzureden.

Als erstes objektorientierte Entwicklung und Design. Die vielen
historisch gewachsenen Do's und Dont't. Die Best Practices und Design
(Anti-)Patterns. Jeder weiß wie viele Jahre man OOP praktiziert, man
aber immer wieder Neues dazulernt (lernen muss).

Dann Java an sich mit all seinen Fallstricken und Möglichkeiten. Die
(gefühlten) 10.000 Bibliotheken mit ihren eigenen Historien und
Wechselwirkungen. Entwicklung grafischer Oberflächen mit Swing und
den (immer noch sichtbaren) AWT-Altlasten. Alle möglichen Collections
mit ihren jeweiligen Vor- und Nachteilen. JUnit. Mocking-Frameworks.
Etc. und pp.

Java-Entwicklungsumgebungen und Build-Systeme. Eclipse, Netbeans,
Ant, Maven, Gradle (welches natürlich Maven-Repositories nutzt).
Versionskontrollsysteme wie Git. Die Konfiguration solcher mit XML
und/oder Groovy oder sonstigen textbasierten Tools.

Dann die ganze Enterprise-Entwicklungsschiene mit den historischen
Java EE-Standards. Den nebenäufigen, behelfsmäßigen Entwicklung wie
Hibernate, Spring, Struts, Apache Commons, Tapestry. Die wiederum
teilweise Teil des EE-Standards wurden, sich aber trotzdem selbst
weiterentwickeln. Den verschiedenen Applikationsservern, wie Tomcat,
Glassfish und JBoss, die teils wiederum nur Teile der Standards
implementieren.

Ich denke allein mit allen Akronymen und Namensschöpfungen für
(redundante) Java-Technologien könnte man ganze Bücher füllen.

Angenommen man fängt heute mit 0 Wissen um Softwareentwicklung an:
Wie viele Jahre braucht man wohl bis einigermaßen selbstständig
robuste, wartbare Java-Applikationen entwickelt werden können?

Wie steht das Java-Ökosystem im Vergleich zu .NET-Welt da? Gibt es
ernsthaft andere Konkurrenten?

Edit:
Und prinzipiell soll sich ein moderner Softwareentwickler noch mit
verschiedenen SQL-Implementierungen, NoSQL, Hardwarespezifika und
verschiedensten (mobilen) Betriebssystemen auskennen.

Bewerten
- +
Anzeige