
Ist ja auch klar, das hier keiner schreibt, Object-Pascal ist Sch..., weil, warum wäre er dann hier?
Aber von der Syntax her ist Pascal eine sehr klare Sprache.
Ob der Mangel an Mehrfach-Vererbung eine Schwäche ist, kann man kontrovers diskutieren. Hiermit kann man zwar nette Sachen machen, aber auch ungewollt erhebliches Chaos veranstalten. Bei Objekt-Pascal kann man mit Interface so etwas ähnliches aber in gezähmter Art machen.pluto hat geschrieben: ich kenne bisher nur zwei schwächen, die mir aber nix ausmachen:
- Zikluärer Aufruf von unit
- Keine Mehrfach Vererbung.
Ohne Property ist für mich keine echte Objekt-Orientierung.pluto hat geschrieben: Als Stärken finde ich die Property Eigenschaft praktisch.
Genau wie C -> C++ bzw C -> Java oder C -> C# .pluto hat geschrieben: Und im laufe des Gesrpäch sagte er noch, ja OOP kam ja dazu es wahr ja nicht geplant gewesen.... und das Konzept würde in "Object Pascal" auch kein echtes OOP sein.
Wenn man auf ein Objekt zugreift, das nicht existiert, bekommt man nicht mit Sicherheit eine access violation. Es kann auch beliebiges Chaoas passieren:Christian hat geschrieben:das wenn du auf ein objekt zugreifst das nicht existiert du eine access violation bekommst du das also auch nicht machen kannst.
Code: Alles auswählen
a := TStringList.create;
a.free;
a.add('test');
Da kann man sich auch d'rüber streiten. In Python verwendet man untypisierte Variablen. Das finde ich alles andere als "gezwungen eine gewisse Sorgfalt zu benutzen".pluto hat geschrieben: in Phytong ist das nicht so, wie ich es unter Wiki nach gelesen habe. Dort wirst du gezwungen eine gewisse Sorgfalt zu benutzen.
Heute wird gerad Python für Anfänger empfohlen. Finde ich nicht so gut, vor allem da dort keine strenge Typisierung verwendet wird, und gerade das m.E. eine Erziehung zu einem sauberen Programmier-Stil darstellt.John hat geschrieben:Mann muss auch noch dazu sagen das einer der Vorteile ist, ist das es einfach zu erlernen ist und deshalb auch für Anfänger gut geeignet ist.
Wenn dem so ist, dann tu es bitte.Schwer ist das mit Sicherheit nicht einzubauen
Wie meinst du "braucht" ?pluto hat geschrieben:Das sagst du so einfach. Ich habe z.b. jetzt drei units eine Bases Klasse ist in unit1 drin in unit2 ist jetzt eine Klasse von der Bases Klasse abgeleitet. Aber diese Klasse braucht eine klasse aus unit3 und unit3 braucht wieder rum eine klasse von unit1.... schon ist das Problem da.
Code: Alles auswählen
TX = class;
TY = class
public
X: TX;
end;
TX = class
public
Y: TY;
end;
Nö, da ist gar kein problem die einzige Unit wo in die interface section ein uses rein muss ist unit2, unit 1,3 können jewails die uses für die anderen units in der implementation stehen haben und es gibt nie ne cirkulare referenz.Das sagst du so einfach. Ich habe z.b. jetzt drei units eine Bases Klasse ist in unit1 drin in unit2 ist jetzt eine Klasse von der Bases Klasse abgeleitet. Aber diese Klasse braucht eine klasse aus unit3 und unit3 braucht wieder rum eine klasse von unit1.... schon ist das Problem da.
Quark, jede deklaration im interface teil ist übergreifend. Du solltest mal Pascal lernen und nicht nur code kopieren.nur schade das keine Forwad defniationen unit übergreifend sind.