[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Anfangsbuchstaben in Großbuchstaben ändern [OT]



Andreas Juch wrote:
> Bjoern Schliessmann wrote:
 
>> Wie kann man eine Sprache "rein objektorientiert" nennen, wenn
>> die Basistypen keine Objekte sind und man zum Konvertieren mit
>> Containerobjekten rumfrickeln muss?
 
> Würde ich schon so nennen.

Mit welcher Begründung, wenn z.B. Basistypen keine Objekte
sind? "Rein" ist das keinesfalls.

> Man kann nicht rein prozedural/funktional programmieren, sondern
> braucht immer eine Klasse. Deshalb würde ich Java schon als rein
> objektorientiert bezeichnen.

Funktionen sind aber in Java beispielsweise keine Objekte.

> In Smalltalk auch. Aber ich steigere mich da ungern rein. Mit
> einigen Leuten könnte man ja stundenlange Diskussionen über den
> Unterschied von Objekt und Instanz führen. Ich verwende die
> Begriffe eigentlich synonym. 

Ja, in Java kann man es sich so einfach machen, da dort nur
Klasseninstanzen Objekte sind ... ;)

> Mir würde jetzt auch spontan nichts einfallen welche
> Objektmethoden mir bei int abgehen. 

Dann sieh mal nach, was java.lang.Integer für Methoden hat.
 
> Klauen ist hier eigentlich nicht das richtige Wort. 

IMHO doch, ich verwende es aber nicht "moralisch gefärbt" sondern
neutral.

>> Zum Beispiel hätte man sich das mit dem new-Operator aus C++ in
>> Java echt sparen können. In C++ braucht man ihn zwingend zur
>> Erfüllung bestimmter Aufgaben (dynamische Speicherreservierung);
>> in Java ist es nur mitgeschleppter syntaktischer Aufwand (da alle
>> Bezeichner vom Typ eines Objektes automatisch Zeiger sind).
 
> Das habe ich bis jetzt eigentlich nicht als besonders störend
> empfunden...

Hast du dich nie gefragt, warum man in Java schreiben muss

int a = 5;

aber bei Objekten

Integer a = new Integer(5);

?

In C++ geht beides, und man kann sich aussuchen wo und wie man das
Objekt haben möchte.

int a1 = 5;
int& a2 = new int(5);

string b1("Honk");
string& b2 = new string("Honk");

In Java ist das "new" IMHO völlig überflüssig und macht die Sprache
uneinheitlich.
 
> Fand ich auch sehr ellegant!

Ist es auch, nur für Pythonfremde eher kryptisch.

> Die Diskussion ist insofern eigentlich sinnlos weil so ziemlich
> jede Programmiersprache (IMO außer Basic) ihre Stärken hat. 

Was sind denn die Stärken der Sprache Java? Dass Operatorüberladung
und Mehrfachvererbung verboten sind? Dass jede Klasse zwangsweise
in eine eigene Datei muss? Dass jeder Anfänger auf die
CLASSPATH-Geschichte reinfällt? :) Für mich ist Java ein
kastriertes C++. Vielleicht sehe ich auch nur die verborgenen
Vorteile dieser Sprache nicht, also wenn jemandem welche einfallen,
nur her damit.

Vorteil von Java als Plattform ist sicher die Portabilität und die
Möglichkeit der Benutzung auf WWW-Seiten. Das hat aber mit der
Sprache selbst nichts zu tun.

Grüße,


Björn

-- 
BOFH excuse #339:

manager in the cable duct



Reply to: