• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

java noch angesagt?

A

Anonymous

Gast
Die OOP hat viele Vorteile (Geheimnisprinzip, Wiederverwendbarkeit, ..). Nur kann sie die halt erst ausspielen, man eine gewisse Projektgröße erreicht hat. Es wird ja auch keiner nach V-Modell oder Rational Unified Prozess vorgehen, um ein Programm mit 50 Code-Zeilen zu erstellen.

Eine Aufteilung in Module, Funktionen usw. ist ja noch relativ trivial.
Anwendungsfälle, Klassen- und Interaktionsdiagramme zu erstellen fällt da schwerer. Ganz abgesehen von UML!

Wenn man nicht viel Zeit investieren möchte, kann man sich viele Probleme sparen, wenn man Pascal o.ä. wählt. Ein String in Java ist halt ein Objekt und keine Variable wie in Pascal.

Viele Bücher über OOP erklären nur, wie man eine Klasse oder ein Interface erstellt und beschreiben damit einen Schritt der OOP.
 

nonnobis

Newbie
peedee schrieb:
Die OOP hat viele Vorteile (Geheimnisprinzip, Wiederverwendbarkeit, ..). Nur kann sie die halt erst ausspielen, man eine gewisse Projektgröße erreicht hat. Es wird ja auch keiner nach V-Modell oder Rational Unified Prozess vorgehen, um ein Programm mit 50 Code-Zeilen zu erstellen.

Da hast Du recht. Man sollte eben nicht versuchen, den gesunden Menschenverstand durch eine Methotik zu ersetzen. :D

peedee schrieb:
Wenn man nicht viel Zeit investieren möchte, kann man sich viele Probleme sparen, wenn man Pascal o.ä. wählt. Ein String in Java ist halt ein Objekt und keine Variable wie in Pascal.

Gerade bei kleinen Programmen finde ich Java aufgrund der Robustheit ideal. Es eben Ansichtssache.
Mit dem String ist es übrigens so eine Sache. Ja, es ist eine Klasse, aber eine final Klasse, die in der Sprache verankert ist. Sie ist daher eher wie ein Primitiv zu sehen und zu nutzen, sonst wäre eine Zeile wie
Code:
String hugo = "Hi!";
nicht möglich und müsste lauten
Code:
String hugo = new String("Hi!");
was der Compiler auch intern macht.

Letztlich muss jeder für sich herausfinden, welche Sprache ihm liegt und die sollte er eben benutzen. Hauptsache, es macht Spass!

Gruss, Klaus
 

deac

Member
peedee schrieb:
Wie spunti schon richtig gesagt hat, ist OOP so eine Sache.

OOP unterscheidet sich halt sehr von der imperativen Programmierung wie z.B. bei C. Alles wird ein wenig komplizierter, wenn man es richtig machen möchte (Entitäts- Schnittstellen- und Kontrollklasse, Assoziationen usw.)

Ob das immer notwendig ist, weiß ich nicht. Keinere Probleme wird man sicherlich nicht damit erschlagen wollen.

Um "nur" kleinere Programme oder Routinen zu schreiben, sollte man sich vielleicht eher Pascal ansehen. Pascal ist eine sehr schöne Sprache, genau so einfach und man muß sich nicht mit Objekterzeugung usw. rumärgern, wenn man nur einfach in dem Programm ein paar Variablen benötigt.
Allerdings kann man damit nur Konsolenprogramme schreiben. Für Fenster benötigt man hat die OOP.

sag mal, wo lebsten du?
pascal?
das war die erste programmiersprache die ich gelernt habe....
wer programmierten mit dem teil noch (bzw. wer hat jemals damit ein programm erstellt, das nicht nur zu lernzwecken gedient hat???)
ich wette das ich in java genau so schnell ein kleines programm schreibe wie du in pascal..

ich schreib halt stat procedure class....

wer sagt denn dass ich für hello world, hello erst von begrüßung und world von planet ableiten muss?? (überspitzt ausgedückt *g*)

ich habe vor kurzem etwas in c (ansi hardcore pointer malloc c) machen müssen, da kommt einem ja der graus... (und ich hab in der schule, nach pascal, c gelernt -> ca 2 Jahre, bevor wir mit oop begonnen haben)
dagegen ist ja mircosoft mfc vc++ der himmel

zusammenfassung: wer einmal java oder vc++ programmiert hat, will NIE WIEDER zurück!
 
A

Anonymous

Gast
ich schreib halt stat procedure class....
Genau das ist ja das Problem. Das werden die meisten auch so machen, wenn sie objektorientiert programmieren. Und genau deshalb sollte man vielleicht etwas anderes benutzen. Man benötigt ja auch keine Atombombe um eine Ameise zu vernichten.
Außerdem hat OOP auch Nachteile. Z.B. kann man wegen der vielen möglichen Objektzustände nicht richtig Testen.
 

deac

Member
Man benötigt ja auch keine Atombombe um eine Ameise zu vernichten.
?
mit dem "ich schreib halt class .." habe ich gemeint, man muss für hello world ja nicht alles verwenden, was einem zur verfügung steht. ich sehe das so: in java hast du die möglichkeiten, ob du sie nutzt bleibt dir überlassen, in c hast du keine wahl...

ich für meinen teil programmiere immer sauber objektorientiert, mache inlinedoku und zuvor natürlich ein uml diagramm (*g*)
 

cromec

Newbie
deac schrieb:
sag mal, wo lebsten du?
pascal?
das war die erste programmiersprache die ich gelernt habe....
wer programmierten mit dem teil noch (bzw. wer hat jemals damit ein programm erstellt, das nicht nur zu lernzwecken gedient hat???)
ich wette das ich in java genau so schnell ein kleines programm schreibe wie du in pascal..

Schon mal in Delphi Programmiert? 'Object-Pascal' ist die zugrundeliegende Programmiersprache. Unter Windows finde ich
Delphi am besten. Ist auch ziemlich verbreitet.
Unter Linux gibt es das in Form von Kylix auch, aber kann mit dem Windows Pendanten (noch) nicht mithalten.

Zu Java: Habe 3 mal ernsthaft versucht mir das anzueignen. Hatte jedesmal nach spätestens 2 Stunden die Schnauze so gestrichen voll das ich JAVA in die Ecke geschmissen habe. Ne - Nie wieder Java.
 

foxi

Newbie
Also, IBM setzt voll auf Java, Oracle setzt auf Java, Sun setzt auf Java und eine ganze Menge sonstiger Größen ebenfalls. Nur ein bekanntes Softwarehaus aus Redmond nicht.
Die Richtlinien zur Softwareentwicklung für E-Government in Deutschland (SAGA) empfehlen ebenfalls für ernsthafte Anwendungen sehr nachdrücklich Java, die frei verfügbare API für Steuerprogramme (AKA "Elster") gibt es nur für Java.
Darüber hinaus kann man Java mittlerweile auch in "gewohnter" Umgebung programmieren, nämlich mit dem gcj als Spielart des gcc, der letztendlich native Programme erzeugt (im Gegensatz zu Suns JDK, das Bytecode erzeugt, der "überall" ausgeführt werden können soll. Selbstverständlich kann man das auch per teurem Tool (zB von Borland). Mit dem gcj geht leider noch nicht alles, aber immer mehr.
Einer meiner Freunde (Freier Programmierer) schwört voll auf Java und programmiert in nichts anderem mehr und ist damit recht erfolgreich (AS400, Windows).
Da kann man nicht sagen, daß Java auf dem absteigenden Ast ist.
 

ozi

Newbie
Ich state mal zu allen posting quer Beet.
Ich programmiere seit 6 Jahren Java davon seit 4 Jahren fuer Big Blue und wir programmieren damit große J2EE Applicationen und Performance war da ein grosses Thema.

Man kann man mit Java wenn man schlecht programmierst auch plattformabhängigen Code schreiben und andererseits c-code schreiben der plattformunabhängig ist, wenn man sich Mühe gibts.

Zugebener Maßen ist mir keine grosse produktive Anlage auf Linux Basis bekannt aber ich kenne auch nicht alle.

Zum Thema Zukunft von Java, weder sehe ich Java sterben, noch sehe ich das Redmont mit dot.net den Stein des Weisen gefunden hat.
Die Diskussion darum ist muessig.

Kennt einer von euch eine grosse produktive dot.net Anwendung die mehr macht als auf eine Datenbank zuzugreifen ein paar Webseiten zu generieren?

Der Hauptnachteil von Java ist das man halt eine VM starten muss. (Zeit,Speicher)

In welchen Bereichen wird Java eingesetzt?
e Bussiness ;-)
Public Sector,
Versicherungen
Automotivebereich
Mobilbereich ( Handy, PDA )
da kann man vieles aufzählen.

Sicher möchte ich nicht unbedingt die Steuerung eines Shuttles in Java Hände legen.

So muss jetzt wieder arbeiten. :lol:

Gruesse
ozi
 

deac

Member
cromec schrieb:
Schon mal in Delphi Programmiert? 'Object-Pascal' ist die zugrundeliegende Programmiersprache. Unter Windows finde ich
Delphi am besten. Ist auch ziemlich verbreitet.
Unter Linux gibt es das in Form von Kylix auch, aber kann mit dem Windows Pendanten (noch) nicht mithalten.

Zu Java: Habe 3 mal ernsthaft versucht mir das anzueignen. Hatte jedesmal nach spätestens 2 Stunden die Schnauze so gestrichen voll das ich JAVA in die Ecke geschmissen habe. Ne - Nie wieder Java.

klar kenne ich delphi, hab auch schon mit dem klicksi klacksi "programmiert".
nun sag mir eine größere firma, die den schrott verwendet...
 
Hi,

also wenn man sich die ganze entwicklung mal so anschaut kommt man eigentlich doch zu dem schluss daß windows auf dauer sehr viele marktanteile verlieren wird. .NET und VB usw. sind eigentlich auch ein ganz grosser Scheiss (sorry :lol: ). Wer wirklich zukunftsorientiert arbeiten will kommt eigentlich an JAVA nicht mehr vorbei. und die these daß dort derzeit die entwicklung stagniert ist auch falsch. JAVA ist eigentlich die einzige sprache die wirklich lebt (opensource etc.).

und das was man als entwickler alles zur verfügung gestellt kriegt ist einfach unschlagbar.

und noch eins: JAVA ist eigentlich nicht langsam, es wird meistens erst zur langsamkeit programmiert.
 

Yogi_B

Member
Wie programmiert man etwas zur Langsamkeit?

Java ist viel langsamer als C und langsamer als C++. Aber welche Programmierer schreiben heute noch Programme bei denen das auffällt, bzw ins Gewicht fällt?
Java ist eine erstklassige Sprache für betriebswirtschaftliche Anwendungen. Hochlast-Anwendungen lassen sich auch schreiben, jedoch hat man wieder Probleme wie man sie immer hat.
Z.B. skalliert die VM 1.4.2 mit RH 9 wesentlich bescheidener als mit RH8.
(Warum? Frag Sun!)
Warum habe ich Probleme mit Hochlast-RMI-Server wenn der gc zu schlägt? Wenn Du schon Tage damit verbracht hast, alle gc-Optionen auswendig zu lernen weil alle paar Minuten Beschwerden der Anwender kommen das ihr Antwortenzeiten ab und zu fürn A*sch sind.

Überleg einfach was Du willst, JAVA reicht zu 90% für alle Anwendungen die man als normaler Programmierer in D-Land schreiben muss aus.

Wenn der Kunde rein Windows-User ist, und eine integration in M$-Office will nehme ich bestimmt kein JAVA.
Wenn er will, dass ich große Datenmengen aufbereite, Hardwarenah programmiere nehme ich kein JAVA.

Will er ne Fibu nehme ich JAVA

mfg
Yogi_B
 
ist alles eine frage der perspektive. ich könnte auch behaupten daß C die erste wahl sein müsste weil es (marginal) schneller als C++ ist. JAVA ist für mich derzeit erste wahl, obwohl ich eigentlich eingefleischter C/C++ Entwickler bin (war :)). das was ich meinte war das die leute sich oft beschweren daß JAVA langsam ist obwohl schon in der design-phase effizienz oftmals unterden tisch gekehrt wird. da liegt's dann kaum an der sprache. ich persönlich habe die erfahrung gemacht daß JAVA sehr flink ist und ich war teilweise selber überrascht. rein technisch ist C oder C++ natürlich nicht zu toppen, aber wenn man sich mal andere 3GL oder 4GL sprachen anschaut sieht's damit meist grottenschlecht aus.

und schlussendlich kann man für extrem zeitkritisch probleme immer noch auf JNI zurückgreifen. damit dürften dann wohl alle probs gelöst werden können. bei MS Office-Integration und anderen COM Geschichten gebe ich Dir allerdings völlig recht :)

und wenn du einen "hochleistungs-rmi-server" hast der langsam "in die knie geht" dann muss man JAVA auch irgendwo mal zugeständnisse machen (PS: wieviele clients laufen denn?). und dennoch: wenn die GC dich hier ausbremst dann gibt es doch sicherlich eine möglichkeit das effizienter zu gestalten. wenn du lange genug mit C/C++ im heap rumwühlst rattert das system auch auf der platte. :lol:


PS: kannst du nicht die last auf dem RMI-server auf mehrere RMI-Server verteilen, oder muss es definitiv auf einer maschine laufen?
 

Bonsai

Advanced Hacker
Java ist eine Insel! Deshalb wird Java noch eine ganze weile eine Rolle spielen.

Ist von Vorteil, wenn das Programm der Waschmaschine einfachso auf dem PC läuft! ;)

Jede Sprache für ihren Zweck! Auch lahme Krücken wie Interpretiertes BASIC sind in manchen Bereichen sinnvoll.
 

Yogi_B

Member
Der Server ist auf einem Rechner, das Ding habe ich so von meinem Vorgänger übernommen.

Wird jetzt auch komplett neu geschrieben, diesmal mit JBoss und schön verteilt.
Die Anzahl der Clients ist wenig, Anzahl der Anfrage ca. 100-150 pro Sekunde. Das Problem ist der DB Zugriff und die Menge an Daten. Pro Zugriff fallen zwischen 10kb bis zu 2MB an.

Da liegt ehr der Cosinus-Knacktus. Im allg. tut der Server recht gut, nur ab und zu wenn der gc zu schlägt merken das die Anwender und regen sich fürchterlich auf (Anwender halt :wink: )

Aber ich habe auch schon einen Cache geschreiben der wirklich lustig ist. Auf meinem Rechner baue ich eine Hashmap, schreibe die auf Platte. Die serialisierte Map wird dann im Server wieder geladen und zum suchen genutzt. Solche Schweinereien müssen einem erstmal einfallen :shock:
Aufbau der Map ging auf dem Server nicht, der Inhalt besteht zu 50% auf DB Inhalten und zu 50% auf Verzeichnis-Inhalten vonWebserver die in einer anderen DMZ liegen. Das bei 1,2Mio Einträgen machste mal nicht so eben. Aber da sich der Inhalt ehr nur alle paar Wochen mal ändert
Und die Architektur des Servers von einem absoluten Anfänger stammt, kannste da auch nicht so eben Erweiterungen Einbauen. :roll:

Scheisse programmieren kann man auch in Java.

Der Server wird übrigens mit -Xmx1024m gestartet :D
 
Yogi_B schrieb:
Der Server ist auf einem Rechner, das Ding habe ich so von meinem Vorgänger übernommen.

Wird jetzt auch komplett neu geschrieben, diesmal mit JBoss und schön verteilt.
Die Anzahl der Clients ist wenig, Anzahl der Anfrage ca. 100-150 pro Sekunde. Das Problem ist der DB Zugriff und die Menge an Daten. Pro Zugriff fallen zwischen 10kb bis zu 2MB an.
dann ist das doch wohl eher das problem :wink:

Yogi_B schrieb:
Da liegt ehr der Cosinus-Knacktus. Im allg. tut der Server recht gut, nur ab und zu wenn der gc zu schlägt merken das die Anwender und regen sich fürchterlich auf (Anwender halt :wink: )
gebe der VM doch mal wesentlich weniger speicher (statt dem GB das du ihm zuordnest). dann räumt der gc zwar öfters auf, aber es dauert auch nicht so lange und wird von den anwendern evtl. gar nicht bemerkt. :wink:


Yogi_B schrieb:
Aber ich habe auch schon einen Cache geschreiben der wirklich lustig ist. Auf meinem Rechner baue ich eine Hashmap, schreibe die auf Platte. Die serialisierte Map wird dann im Server wieder geladen und zum suchen genutzt. Solche Schweinereien müssen einem erstmal einfallen :shock:
Aufbau der Map ging auf dem Server nicht, der Inhalt besteht zu 50% auf DB Inhalten und zu 50% auf Verzeichnis-Inhalten vonWebserver die in einer anderen DMZ liegen. Das bei 1,2Mio Einträgen machste mal nicht so eben.
wie schauts mit dem verteilen der DB auf mehrere server aus?

Yogi_B schrieb:
Aber da sich der Inhalt ehr nur alle paar Wochen mal ändert
Und die Architektur des Servers von einem absoluten Anfänger stammt, kannste da auch nicht so eben Erweiterungen Einbauen. :roll:
dann schaut's architektonisch anscheinend ziemlich wüst aus. :wink: bevor ich mich mit sowas rumprügle kündige ich lieber oder, wenn zeitlich machbar, wird's neu gemacht....is' echt zum kotzen was da manche leute so machen.


Yogi_B schrieb:
Scheisse programmieren kann man auch in Java.
geht aber auch mit den ganzen anderen "sachen" die hier so aufgezählt wurden :lol:


Yogi_B schrieb:
Der Server wird übrigens mit -Xmx1024m gestartet :D
Starte in mal mit -Xmx16m :wink:

durch mehr speicherzuordnung verzögerst du nur den zeitpunkt bis die gc zuschlägt. und wenn er bei 1gb zuschlägt dauerts natürlich ne weile.
 

Yogi_B

Member
16M...

öhm, alleine die HashMap hat 130MB. Dann ist darin noch ein Static-Array mit ca. 590MB Größe

Dann rechne 100 Clients, mit durchschnitt 0,5MB Antwortdatensatzgröße.

Die Datenbank ist nicht das Problem (DB2 auf ner 4800 SUN). Ehr das Sammeln von Info auf 10Webserver, quer durch die DMZ mit JAVA-DiskIO. Nicht so richtig erfreulich

Aber bald wirds besser.
Und was das "bevor ich mich mit sowas rumprügle kündige ich lieber", mach das mal in der heutigen Zeit :roll:

Neubauen darf ich ja jetzt, nach ca. 2 Jahren.
 
Yogi_B schrieb:
16M...

öhm, alleine die HashMap hat 130MB. Dann ist darin noch ein Static-Array mit ca. 590MB Größe

Dann rechne 100 Clients, mit durchschnitt 0,5MB Antwortdatensatzgröße.

Die Datenbank ist nicht das Problem (DB2 auf ner 4800 SUN). Ehr das Sammeln von Info auf 10Webserver, quer durch die DMZ mit JAVA-DiskIO. Nicht so richtig erfreulich

Aber bald wirds besser.
Da kommt man rein rechnerisch immer noch nicht auf 1GB. versuch's doch mit kleineren werten und beobachte das verhalten.

Yogi_B schrieb:
Und was das "bevor ich mich mit sowas rumprügle kündige ich lieber", mach das mal in der heutigen Zeit :roll:
Ich hab's gemacht und bin glücklich mit der Entscheidung :lol:
Sich ständig mit Schwätzern abplagen zu müssen hat mich fast zum Choleriker gemacht. das isses mir nicht wert gewesen.

Yogi_B schrieb:
Neubauen darf ich ja jetzt, nach ca. 2 Jahren.
na das gibt doch hoffnung. :)
 

Yogi_B

Member
Killerfritte schrieb:
Ich hab's gemacht und bin glücklich mit der Entscheidung :lol:
Sich ständig mit Schwätzern abplagen zu müssen hat mich fast zum Choleriker gemacht. das isses mir nicht wert gewesen.

Und was machste jetzt?
Selbstständig?


Killerfritte schrieb:
na das gibt doch hoffnung. :)

Jau, deswegen werde ich in dieses *§4@"§-Ding auch keine Minute arbeit mehr investieren :D
 
Yogi_B schrieb:
Killerfritte schrieb:
Ich hab's gemacht und bin glücklich mit der Entscheidung :lol:
Sich ständig mit Schwätzern abplagen zu müssen hat mich fast zum Choleriker gemacht. das isses mir nicht wert gewesen.

Und was machste jetzt?
Selbstständig?
Jau. Bei dem Arbeitslosengeld daß ich bekomme habe ich durchaus Zeit genug um etwas aus dem Boden zu stampfen. Zufälligerweise hat's auch mit RMI-Servern zu tun. :lol:

Bei dem ganzen Mist den manche Firmen so anbieten mache ich mir da eigentlich auch gute Hoffnungen.
Ich bin mittlerweile überzeugt daß einer alleine besseres schaffen kann als 10 Leute bei denen niemand weiß was der andere macht. Wenn dann noch eine unfähige manager-birne permanent aus unkenntnis heraus falsche entscheidungen trifft dann kommt eigentlich nie was vernünftiges raus.

Yogi_B schrieb:
Killerfritte schrieb:
na das gibt doch hoffnung. :)

Jau, deswegen werde ich in dieses *§4@"§-Ding auch keine Minute arbeit mehr investieren :D
Sicherlich die richtige Entscheidung.
 

Yogi_B

Member
Killerfritte schrieb:
Jau. Bei dem Arbeitslosengeld daß ich bekomme habe ich durchaus Zeit genug um etwas aus dem Boden zu stampfen. Zufälligerweise hat's auch mit RMI-Servern zu tun. :lol:

Bei dem ganzen Mist den manche Firmen so anbieten mache ich mir da eigentlich auch gute Hoffnungen.
Ich bin mittlerweile überzeugt daß einer alleine besseres schaffen kann als 10 Leute bei denen niemand weiß was der andere macht. Wenn dann noch eine unfähige manager-birne permanent aus unkenntnis heraus falsche entscheidungen trifft dann kommt eigentlich nie was vernünftiges raus.

Naja, denk aber dran, dass diese Manager-Birnen die Leute sind die entscheiden ob Du eingekauft wirst, bzw dein Produkt gekauft wird.

Das ist ja auch mein Problem, man muss dann erstmal bei diesen Schlipsen Werbung machen, Geschenke kaufen etc.pp. Sonst wird das nie was :?
 
Oben