<Split aus "C/C++ oder C#">
-
Jester schrieb:
Natürlich ist sie nicht mächtiger. Einfachvererbung ist auch nicht mächtiger als garkeine Vererbung. [...]
ohoh...ich wette das ist ein Gerücht.
-
Jester schrieb:
Nimm doch mal an Du hast eine Bibliothek. Damit Du mit der arbeiten kannst mußt Du von einer Basisklasse arbeiten. Und bei einer zweiten Bibliothekt genauso. Uned jetzt möchtest Du eine Klasse bauen, die von beiden Bibliotheken polymorph verwendet wird. Dann hast Du eine Situation wo Du ohne MI nicht so gut wegkommst.
Wenn man keine MI hat, dann programmiert man doch ganz anders. Geht übrigens super aus meinem Link hervor

Ich war auch noch nie in einer Situation wo ich von 2 verschiedenen Bibliotheken gleichzeitig erben wollte - und wenn man das muss und keine MI hat - dann hat man Interfaces

Es sind einfach 2 unterschiedliche herangehensweisen. Ich denke dass es sinnlos ist darüber zu reden ob man MI braucht oder ob Interfaces reichen. Es sind einfach 2 komplett verschiedene Wege ein Problem zu lösen. Deshalb sehen Klassenhierachien in Java meistens anders aus als in C++

-
*unterschreib*
Ist glaub ich das beste Ergebniss, was wir hieraus ziehen können.
-
Jo, lassen wir es dabei.
Online: Mit welchen Opcodes unterstütz Dein Prozessor Vererbung?
-
Jester schrieb:
Jo, lassen wir es dabei.
Online: Mit welchen Opcodes unterstütz Dein Prozessor Vererbung?
na dann....ran an ASM.wenn du meinst das Mächtigkeit sich nur in der Ausführung des Codes wiederspiegelt ok.
Aber was ist mit der Programmierung? Ohne Vererbung könntest du die Klassen nicht einfach weiterverwenden nur kopieren und was ist wenn du jetzt in der Klasse nach Monaten was ändern musst und du den COde dann schon einige male kopiert hast da ist nix mehr mit Basisklasse schnell mal reperieren...also ist das für mich auch Mächtig.
Was ist mit Polymorphie? Ohne Vererbung nichts zu machen. Das ist auch Mächtig für mich.Ob jetzt Merfachvererbung mehr bringt als einfach sei dahingestellt. Aber ohne Vererbung. OOP-Model dahin
-
Ja, das will ich ja auch nicht bestreiten. Ich wollte hauptsächlich darauf hinweisen, daß es nicht wirklich sinnig ist in diesem Zusammenhang von "mächtiger" zu sprechen ohne das genauer zu definieren. Wenn wir meinem was man damit für Programme schreiben kann, dann ist die Antwort einfach: mit jedem sind alle möglich. Deshalb kann keine Vererbung nicht weniger als Vererbung. Sie sind also in diesem Sinne gleichmächtig.
Ein anderes quantitatives Kriterium fällt mir ehrlich nicht ein. Wir können schlecht darüber diskutieren wie "schön" etwas ist. Zumindest nicht wenn wir einen objektiven Vergleich haben wollen. Aber wenn Dir ein gutes Kriterium einfällt immer her damit.
-
Jester schrieb:
[...]
Wenn wir meinem was man damit für Programme schreiben kann, dann ist die Antwort einfach: mit jedem sind alle möglich. Deshalb kann keine Vererbung nicht weniger als Vererbung. Sie sind also in diesem Sinne gleichmächtig.
[...]jop du hast da natürlich recht. Mit jedem kann man jedes Programm schreiben
aber schreiben ist nicht gleich schreiben, es geht auch um den Aufwand denn ich betriebn muss. Und in der heutigen Kultur heißt Aufwand Zeit und Zeit ist Geld und Geld hat niemand...Vererbung macht vieles einfacher und somit schneller im sinne des fertigstellens des Programms und der Wartbarkeit und dadurch produktiver
wie du immer Mächtigkeit definierst. Eine Programmiersprache zeichnet sich nicht nur dadurch aus das man am ende ein schnelles Programm hat. Der Weg dahin ist meistens entscheidender. Vererbung hat da nun viele Vorteile
-
Mir ging es auch nicht Geschwindigkeit. Wenn ich sage A ist mächtiger als B, dann heißt das für micht: Mit A kann man mehr machen als mit B. Und das funktioniert in diesem Szenario einfach nicht.
Wir könnten natürlich sagen: mit Vererbung kann man schneller entwickeln als ohne... das ist aber wohl nicht immer richtig (Ausnahmen bestätigen schließlich die Regel), und zum Zweiten hilft uns das nicht viel weiter. Denn auf die Frage ob man mit MI jetzt schneller entwickeln kann als ohne... tja, da entsteht höchstens ein Glaubenskrieg aber kein guter Vergleich.
-
Jester schrieb:
Natürlich ist sie nicht mächtiger. Einfachvererbung ist auch nicht mächtiger als garkeine Vererbung. [...]
nun ich bin auf diesen Satz von dir eingegangen weil ich mächtiger = besser gesetzt hab.
und ich bin der meinung das Vererbung um längen besser ist als keine Vererbung. Aber das ist meine Meinung.
Natürlich gibts Gründe wo ich selbst sagen würde: Vererbung, wofür?
Mir ging es auch nicht Geschwindigkeit. Wenn ich sage A ist mächtiger als B, dann heißt das für micht: Mit A kann man mehr machen als mit B. Und das funktioniert in diesem Szenario einfach nicht.
Ich kann mehr Programme schreiben als du weil ich durch Vererbung Zeit einsparre

jetzt mal im ernst:
warum sollst du mit Vererbung nicht mehr machen können als ohne?
Mit Vererbung kann ich mich der Natur annähren
Ich kann mir eine Klassenstruktur aufbauen
(und dann noch die wieteren Punkte die ich schon aufgeschrieben hab)Alleine Polymorphie wiederspricht deiner Aussage ("Wenn ich sage A ist mächtiger als B, dann heißt das für micht: Mit A kann man mehr machen als mit B. Und das funktioniert in diesem Szenario einfach nicht.")
gut, wenn du alles auf den gemeinsammen Nenner bringen willst:
Mit welchen Opcodes unterstütz Dein Prozessor Vererbung?
dann kann keine Programmiersprache mehr als alle die anderen. Sind doch alles sowieso Bits
-
Wir reden glaub ich aneinander vorbei: ich hab nie bestritten, daß Vererbung sinnvoll ist. Aber versuch mal das quantitativ zu fassen!
Meßbar ist: was ist realisierbar. Antwort: mit Vererbung alles und ohne auch. => kein Unterschied
also brauchen wir einen andere Maßstab. Nehmen wir Entwicklungsgeschwindigkeit. Prima man könnte also sagen mit Vererbung kann man schneller entwickeln also ohne.
Gut, eigentlich wollten wir mi mit si vergleichen. Kann man jetzt ohne mi schneller entwickeln also mit mi?
Tja keine Ahnung, man kann das einfach nicht objektiv vergleichen. Der eine sagt so, der andere so.Nebenbei bemerkt: ich hatte bei "mächtiger als" zunächst nen anderen Begriff im Kopf. Der besagt aber, daß ich mit dem einen genau das andere auch nachbauen kann. Sozusagen als Spezialfall enthalten. Das konnte aber nicht sein, da sonst mi mächtiger wäre als si und umgekehrt nicht. Das konnte Optimizer also nicht gemeint haben.
Letztlich ist es also schlicht quatsch zu versuchen die Mächtigkeit von sowas als formales Argument anzuführen. Mehr will ich garnicht sagen.
Aber zu sagen: "mit Vererbung kann man viel mehr machen, das müßte man ja sonst alles von Hand zusammenbasteln..." und andererseits: "mi braucht man nicht, kann man mit si alles zusammenbasteln." ist doch irgendwie schizophren, oder?
-
Letztlich ist es also schlicht quatsch zu versuchen die Mächtigkeit von sowas als formales Argument anzuführen.
also wenn du vorher nicht definierst was du unter mächtig verstehst ist es wohl zuerst als Vergleich zu sehen
und ein Vergleich setzt nun mal pro/contra aussagen voraus. Du hast mit deiner Aussage Verergung == nicht Vererbung gesetzt also sind die gleichwertig. Das können sie aber nur sein wenn sie in allen Punkten gleich sind. Das sind wir uns wohl Einig das das nicht der Fall sein kann.
welche Rolle die Mehrfachvererbung nun gegenüber der Vererbung spielt...das kann ich dir nicht sagen, darum ging es mir auch nie.
Villeicht hab ich dich wirklich falsch verstanden...
aber:
was ist realisierbar. Antwort: mit Vererbung alles und ohne auch. => kein Unterschied
diese Aussage ist wohl absolut Relativ. Es stellt sich nicht die Frage was ist realisierbar sondern was will ich machen und wie kann ich es realisieren.
Wie willst du .Net z.B. realiesieren mit dem Konzept das es beinhaltet. Es bassiert absolut auf Vererbung, also wäre es ohne diese nicht zu realisieren!
-
Wenn man nicht definiert was "gleichmächtig" heißt, dann kann man auch nicht sagen wann zwei Dinge gleichmächtig sind. Ich habe also mal eine Definition zugrundegelegt. Und zwar eine die man wenigstens ordentlich nachprüfen kann. Und es kam irgendwie nichts brauchbares raus. Wenn wir aber ein Definition wählen die nicht nachprüfbar ist, dann kann jeder alles behaupten und wir sind kein Stück weiter.
Realisierbar sollte hier heißen: Welche denkbaren Programme sind damit implementierbar. Im Sinne von Turing-Mächtigkeit. Das ist Absolut, nicht relativ.

Wie gesagt, wenn Dir eine schlaue Vergleichsmöglichkeit einfällt, die *nicht* subjektiv ist und die sich einfach nachprüfen läßt... nur her damit. Ich finde keine. Und ich glaube auch nicht, daß es wirklich ne gute gibt. Darauf wollte ich hinweisen.
-
Jester schrieb:
[...]
Realisierbar sollte hier heißen: Welche denkbaren Programme sind damit implementierbar. Im Sinne von Turing-Mächtigkeit. Das ist Absolut, nicht relativ.

ich könnte jetzt behaupten das du deine allgemeine Aussage jetzt so subjektiv umformst das sie deinen Kriterien entspricht

Wie gesagt, wenn Dir eine schlaue Vergleichsmöglichkeit einfällt, die *nicht* subjektiv ist und die sich einfach nachprüfen läßt... nur her damit. Ich finde keine. Und ich glaube auch nicht, daß es wirklich ne gute gibt. Darauf wollte ich hinweisen.
Man kann kein abgeschlossenes System messen. Jede Messung hat einen subjektiven Einfluss auf das Ergebnis.
-
Online schrieb:
Man kann kein abgeschlossenes System messen. Jede Messung hat einen subjektiven Einfluss auf das Ergebnis.
Wenn ich eine zwei Programmiersprachen habe kann ich mir anschaun ob beide Turing-Mächtig sind. Ist es eine nicht, so ist die andere klar mächtiger. Wo da irgendwelche subjektiven Einflüsse reinkommen ist mir schleiferhaft. Eine Sprache wird nicht turingmächtig weil ich mir das so arg wünsche.
-
Was ist mit Polymorphie? Ohne Vererbung nichts zu machen.
Ach? Dann versuchs mal mit 'ner Scriptsprache wie PHP. ODer versuchs mal mit 'ner Sprache, die auf strukturelles statt nominatives Subtyping setzt, wie O'Caml oder die abstract interfacces von Nice.
-
Jester schrieb:
Online schrieb:
Man kann kein abgeschlossenes System messen. Jede Messung hat einen subjektiven Einfluss auf das Ergebnis.
Wenn ich eine zwei Programmiersprachen habe kann ich mir anschaun ob beide Turing-Mächtig sind. Ist es eine nicht, so ist die andere klar mächtiger. Wo da irgendwelche subjektiven Einflüsse reinkommen ist mir schleiferhaft. Eine Sprache wird nicht turingmächtig weil ich mir das so arg wünsche.
das und das hier:
[...]Welche denkbaren Programme sind damit implementierbar. Im Sinne von Turing-Mächtigkeit.[...]
...das wiederspricht sich irgendwie oder? Du schreibst was von denkbaren Programmen und gleichzeitig schreibst du [...]irgendwelche subjektiven Einflüsse reinkommen ist mir schleiferhaft
Du denkst dir also das Messverfahren aus und hast keine Subjektiven Einflüße drin? Hast du schon mal in irgendeiner Weise Messtechnik gehabt?
Leitspruch: wer misst, misst Mist!Helium schrieb:
Ach? Dann versuchs mal mit 'ner Scriptsprache wie PHP.
kenn mich mit PHP nicht aus aber ich könnte jetzt schreien "ist doch keine P." ich lass das Thema mal lieber.
Helium schrieb:
die auf strukturelles statt nominatives Subtyping setzt,
keine Ahnung wo der Unterschied ist.
Helium schrieb:
abstract interfacces von Nice.
ich kenn Nice nicht aber muss man die Interface nicht vererben damit man was mit denen anfangen kann?
Na ja gut, vielleicht hab ich Polymorphie nur falsch verstanden oder ich benutze die falschen Sprachen.
-
Online: Du willst es nicht kapieren oder?
Turing-Mächtig heißt: Jedes Programm das man schreiben kann kann man auch damit schreiben. Das ist eine Eigenschaft, die man nachweisen oder widerlegen kann.
Genauso wie man von einer Zahl feststellen kann, ob sie >=5 ist oder nicht. Da gibt es keine Fehler!
Ich messe hier nichts, ich vergleiche was. Sagst Du, wenn auch, wenn Du 3+4 ausgerechnet hast und es kommt 7 raus, daß das wahrscheinlich fehlerbehaftet ist und möglicherweise 17 richtig ist?
Und genau solche Kriterie suche ich (und versuche Dir das seit 2 Tagen zu erklären). Ich will nicht solche die butterweich sind, sondern solche die man nachprüfen kann.
-
die auf strukturelles statt nominatives Subtyping setzt,
keine Ahnung wo der Unterschied ist.
Bei ersterem kommt es auf die Struktur an. Wenn etwas die entsprechenden Methoden bietet ist es ein Subtyp.
Bei letzterem kommt es an, ob ich namentlich angegeben habe, dass es sich um einen Subtyp handelt.
-
Online schrieb:
Na ja gut, vielleicht hab ich Polymorphie nur falsch verstanden oder ich benutze die falschen Sprachen.
Ne, weder falsch verstanden (zumindest lässt sich das nicht hieraus schließen) noch beutzt die falschen Sprachen (zumindest lässt sich das nicht hieraus schließen) - aber dein Horizont reicht nicht weit genug.
-
Jester schrieb:
Online: Du willst es nicht kapieren oder?
Turing-Mächtig heißt: Jedes Programm das man schreiben kann kann man auch damit schreiben. Das ist eine Eigenschaft, die man nachweisen oder widerlegen kann.
[..]
das war mir schon klar, du kannst viel theoretisch auseinandernehmen
ich versuche dir die gaze Zeit zu sagen das Theorie oft an der Praxis vorbei geht. Würde Vererbung gleichwertig sein mit "Nichtvererbung" so hätte es Vererbung nie in diesem Umfang gegeben.
Du hast in theoretischen Punkt recht aber an der Parxis geht das total vorbei
Shade Of Mine schrieb:
aber dein Horizont reicht nicht weit genug
vielleicht schaue ich in eine andere Richtung