Java! Und dann?

Hallo

ich bin gerade dabei Java zu lernen. Außer das man Disziplin und Durchhaltevermögen braucht sehe ich keine Probleme die Sprache zu erlernen.

Ich habe mich nun mit einem Berufsprogrammierer unterhalten, einer der bei einem Computerhersteller die Anbindung von Java und DB2 programmiert.

Er sagte sowas wie: Ja, Java ist nicht schwer, schwerer wird erst wenn du in die oberen Regionen der Programmierung in Java eintauchen sollst. Aber das wirst du schon selbst sehn.

Die Situation lies nicht zu das ich nachhake. Was kann der damit gemeint haben?
Ist die Architektur gemeint?
Gibt es eine „Überjava Sprache“?

Was kann er gemeint haben?

Wie gesagt, er progt an „echten“ Systemen?

Gruß

Daniel

Auch hallo.

Er sagte sowas wie: Ja, Java ist nicht schwer, schwerer :wird erst wenn du in die oberen Regionen der :stuck_out_tongue:rogrammierung in Java
eintauchen sollst. Aber das wirst du schon selbst sehn.

Die Situation lies nicht zu das ich nachhake. Was kann :der damit gemeint haben?

Java besitzt zwar eine überschaubare Anzahl an Schlüsselwörtern, aber deren Kombination macht eine Menge an Frameworks und Programmiermöglichkeiten aus, z.B. EJB, Spring & Hibernate, Maven, Java3D…
Die Serverseite nicht zu vergessen: Apache Tomcat, JBoss, …
Und die Entwicklungsumgebungen: Eclipse, NetBeans, JBuilder,…
Ein Einblick findet sich unter http://www.java-forum.org

Ist die Architektur gemeint?

Kann sein.

Gibt es eine „Überjava Sprache“?

Das wohl weniger, aber es gibt auch Kombinationen mit anderen Sprachen, z.B. Groovy oder JRuby,…

Wie gesagt, er progt an „echten“ Systemen?

Das kann vieles bedeuten: IT-Sicherheit, Real-Time Applikationen, Mission Critical Applications,…

HTH
mfg M.L.

Hallo

Ich habe mich nun mit einem Berufsprogrammierer unterhalten,
einer der bei einem Computerhersteller die Anbindung von Java
und DB2 programmiert.

Er sagte sowas wie: Ja, Java ist nicht schwer, schwerer wird
erst wenn du in die oberen Regionen der Programmierung in Java
eintauchen sollst. Aber das wirst du schon selbst sehn.

[Was kann der damit gemeint haben?]

Er meinte, dass die Benutzung eines
Hammers und eines Schraubendrehers
recht einfach ist. Schwieriger wird
es, wenn man damit ein Überschall-
flugzeug zusammenbauen soll.

Die Werkzeuge „an sich“ sind dann
nur ein kleiner Aspekt, es geht in
die „höheren Regionen“ des Werkzeug-
gebrauchs.

Normalerweise nimmt man dann auch
„Meta-Werkzeuge“, also z.B. vorge-
fertigte Tragflächen mit Klick-
verschluß, – das Analogon wären
Skriptsprachen wie Perl, Python,
PHP, Ruby etc. Oder ein sog.
„Framework“ in Java (falls
brauchbar).

Grüße

CMБ

hi Daniel

vieles ist schon gesagt worden, hier etwas anschaulicher:

um ein kleines programm in java schreiben zu können, das den inhalt einer textdatei ausliest und abhängig vom inhalt eine zweite datei mit daten befüllt, braucht man in etwa eine woche lernzeit.

um das ganze noch mit einer hübschen grafischen oberfläche zu versehen nochmal eine bis zwei wochen (je nachdem, wie hübsch).

das ist damit gemeint, wenn man nur den low-level-teil von java betrachtet. um die beiden programme erstellen zu können, muss man relativ wenig über java wissen. es reicht, die syntax halbweg verstanden zu haben und sich ein paar programmierbeispiele für ähnliche aufgaben anzusehen.

kommen wir in die oberen bereiche: du musst eine anwendung erstellen, die auf mehrere server verteilt ist. es gibt dabei ca. 2000 benutzer, die praktisch gleichzeitig mit dem system arbeiten müssen. pro jahr fallen ca. 300 GiB an Daten an, die sowohl in normalen strukturierten Daten als auch in Form von Dokumenten auftreten. die anwendung ist sehr komplex und hat mehrere hundert teilweise sehr unterschiedliche funktionen - auch mit schnittstellen zu anderes systemen, wobei die schnittstellen teilweise standardisiert (xml etc.), teilweise propriätär sind (auch binär vercoded). am projekt arbeiten ca. 5 entwickler vollzeit und nochmal 5 - 10 entwickler teilzeit (entwickeln also nur einzelne module auf werkvertragsbasis).

damit du diese anwendung als chefentwickler bzw. software-architekt betreuen kannst, hilft dir das bischen wissen vom low-level-java gar nix.

  • du musst abwägen, ob und welches bestehende framework (z.b. spring) du einsetzen willst. dazu musst du die vor- und nachteile dieser frameworks kennen
  • datenbankschnittstellen haben ihre tücken, persistenzframeworks wie hibernate aber auch.
  • im massiven multiuser-einsatz solltest du ganz genau wissen, wie die javavm intern mit threads umgeht. sonst wird deine anwendung entweder extrem langsam oder sehr fehlerhaft arbeiten.
  • du wirst dich mit thread-pooling, session-pooling etc. auseinandersetzen müssen
  • du wirst dich für bestimmte xml-bibliotheken entscheiden müssen, jede mit vor- und nachteilen
  • ein dokument in eien blob in der datenbank zu schreiben, ist nicht weiter schwer. 100 dokumente gleichzeitig von verschiedenen benutzern zu verarbeiten, ohne dass diese sich gegenseitig die arbeit überschreiben, erfordert etwas mehr an überblick

ich vermute mal, dass der chefentwicler für so ein system mind. ein jahr an erfahrung mit den unterschiedlichsten bereichen in java benötigt - abgesehen von einer fundierten ausbildung über die basis der sprache (dazu gehört auch, die interna der java-vm zu kennen). es gibt natürlich leute, die sowas nebenbei als hobby machen. otto-normalverbraucher wird das aber eher nicht nebenbei machen können.

ich denke mal, dass war gemeint …

lg
erwin

nachtrag
ganz vergessen:

bei so grossen projekten kommst du mit notepad als editor und komplilieren von der kommandozeile aus nicht mehr durch.

  • du benötigst eine vernünftige entwicklungsumgebung (z.b. eclipse)
  • ein versionsverwaltungstool (subversion, cvs etc.)
  • einen automatisierten buildprozess (maven, ant etc.)
  • ev. auch noch issue-tracking (bugzille, jira etc.)

alles dinge, die mit java soviel zu tun haben wie strassenbau und autoherstellung, aber teil eines grossen java-projekts sind. wenn du dir das ganze notwendige wissen selbst aneignest und nicht schon in einem funktionierenden projekt drinnen bist, brauchst du vermutlich mehr als ein jahr…

lg
erwin