beste Sprache für Anwendungen

- gc unter java ist ein egozentrisches unaufhaltsames monster, und der damit verbundene
fehlende Destruktor Mechanismus zwingt einen OO Prinzipien zu verletzen

Ist dann jede Sprache mit GC eine schlechte Sprache? Welche OO-Prinzipien verletzt es denn? Schon mal was von der Methode finalize gehört?

-keine Mehrfachvererbung - zwingt einen mancchmal zu redundanten Code.....

Wenn man ein richtiges gut durchdachtes Programm-design hat, hat man auch keinen redundanten Code. Mehrfachvererbung ist auch eine zusätzliche Fehlerquelle.

-in ihrerer unendlichen weisheit verbieten mir die sun entwickler das parameter überladen
Ich wusste noch gar nicht dass man Parameter überladen kann.


MFG

zEriX
 
-wie überlade ich operatoren in java? MyObject + MyObject = MyObject?
-oh zusätzliche fehlerquelle, vieles ist eine Zusätzliche fehlerquelle, auch methodennamen....
Mehrfachvererbung kann enorm nützlich seib....
-ein fehlender destruktermechanismus und gc zwinkt die verwaltung der resourcen(nicht nur memeory) aus dem modul ...und das verletzt modul begrenzungen und ein Modul muss ein exakt definiertes verhalte während seiner Lebensdauer haben.....
 
Operatoren überladen ist was anderes. Aber ich sehe das nicht als mangel, dass man keine Operatoren überladen kann. Ich sehe da keine Einschränkung.

Statt der Mehrfachvererbung gibt es in Java Interfaces. Wenn man diese richtig einsetzt, sind Interfaces mindestens genau so nützlich wie Mehrfachvererbung.

In einem Destructor wird definiert, was geschehen soll, wenn das Object "vernichtet" wird. Das kann ich bei Java in der finalize-Methode tun. Das man sich nicht darum kümmern muss den Speicher frei zu geben, sehe ich eher als Vorteil.

MFG

zEriX
 
na das is ja genau der Punkt....es ist eben kein Vorteil...Modul Grenzen überschreiten bedeutet genau das: Ein Modul allokiert die Ressource und ein anderes gibt sie frei. In einem sauberen OO Stil ist es das selbe !! Modul, das den speicher wieder freigibt. Mit speicher selbst ist das weniger ein Problem. Aber hier geht es um allgemeine Ressourcen, also bsp. weise Sockets etc. .Mit anderen Worten: Durch den idiotischen Destruktor Mechanismus wird man gezwungen unsauber und ineffizient zu programmieren....
 
@hagbard23
In Java gibt es keine Destruktoren. Außerdem kann man in jeder Sprache inefizient Programmieren. Beispiel C. Rat mal was da passiert wenn man zu oft vergisst Speicher freizugeben
 
blub....ich meine den finalize aufruf bzw. den fehlenden destruktor. Also bitte erst lesen, dann labern. In jeder sprache kann man schon, in java muss ich aber...deshalb: bitte die postings lesen auf die du antwortest,,,,,
 
Allgemeine Ressourcen KANN man im Schnitt freigeben. SQL-Connections kann man durch Close freigeben, Streams schließt man auch so, für den Rest verhält sich das mehr oder minder ähnlich. Selbst für Sockets müsste es da sowas geben.
 
Zuletzt bearbeitet:
hallo...es geht ums prinzip! ich kann meine resourcen nicht béfreien ! huhu! ein gc kommt wie er will! ich kann nur dynamisch objekte allokieren.....d.h ein leeres java objekt (LEER) nimmt mindestens 4 Byte.....Aufgerechnet bedeut das ein vektor mit 100 mill. integers nimmt 1.5 gb speicher......in c++ sind das um die 400mb....so und jetzt definier mal nen pixel als klasse......genau geht nich.....gibt auch keine schnittsoftware in java.....auch keine grosse 3d applikation....auch kein 2d pixel tool....nich mal ne vernünftige textverarbeitung.......nur weils einfach ist....:rolleyes:
 

Neue Beiträge

Zurück