Andreas,
die meisten Leute (inklusive img) betreiben "Java" nicht als Programmiersprache sondern als Plattform.
D.h. man hat eine Aufgabenstellung und nutzt dann eine Reihe von openSource oder käuflichen Subsystemen, die man dann mit möglichst gut funktionierenden code verbindet.
Um nur die "spektakulärsten" zu nennen:
<nicht_ich_aber_img>
Von:
benutzen von openCMS für eine Art Frage-und-Antwort-Spiel auf IMode Handys
über:
Archivierung/PDF-Umwandlung von Notes-Dokumenten + deren Attachments mit Möglichkeit der späteren Wiederherstellung und kompletter Volltextsuche (dank Lucene) über NotesDoks + Attachments in einer xml-Datenbank (und dann später IBM Storage Server, oder wie das heisst)
über:
NotesAdapter für Kalenderdaten aus Bea Weblogic heraus.
bis:
mehr oder weniger komplette und automatisierte Umwandlung von Notes Anwendungen in J2EE Anwendungen
</nicht_ich_aber_img>
Die Fragen sind auch nicht wie prog ich jetzt in Java ein File-Zugriff, damit es funzt, sondern wirklich schon so Sachen wie:
- wie bekomme ich eine möglichst hohe Coverage automatisierter Tests gegen meinen code (dieses Wochenende große Fortschritte. ).
- der ganze Portalquatsch: JSR 168 extends javax.servlet.* (Single Sign On, Content Syndication, Zugriff auf unterschiedliche Content-Quellen, Web-DAV, Handy-Zugriff, etc. pp.)
- Vereinfachung des Verbindungscode zwischen Subsystemen durch das Spring-Framework
- Workflows
Also das ist eigentlich der Grund warum ich die Java Plattform mag:
Ein Notes Mann setzt sich vielleicht hin und macht das auslesen von RSS Streams mit einer low level xml api. Ein Java Mann wartet erstmal, bis er auf ein konkretes Subsystem stösst, dass ihn viele Teile der Arbeit weitgehend abnimmt.
Das ist imho ein gewaltiger Fortschritt und man kann ihn nur nutzen, wenn man sich ständig mit den Subsystemen beschäftigt, programmieren kann + seine IDE beherrscht sowie OO/Refactoring- mässig richtig was auf dem Kasten hat.
Geld zu verdienen ist in der Tat momentan nicht einfach, aber möglich.
Gruß Axel
PS: Ausserdem ist die Java-Plattform eine super Lern Plattform für Dot.NET
Subsystem = Oberbegriff für Komponenten und Services.
Der Begriff Komponente ist irgendwie verhunzt. Fowler sagt, es ist einfach ein Gebilde aus Code mit einer definierten Schnittstelle, die einen bestimmten fest umrissenen Zweck erfüllt und zwar lokal eingebunden (pass by reference).
Ein Service ist das gleiche nur Remote (pass by value).