Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Wenn man sich was wünschen dürfte... (https://www.delphipraxis.net/186630-wenn-man-sich-wuenschen-duerfte.html)

jobo 19. Sep 2015 11:37

AW: Wenn man sich was wünschen dürfte...
 
Zitat:

Zitat von Sir Rufo (Beitrag 1316315)
Zitat:

Zitat von jobo (Beitrag 1316314)
Eine Sichtweise, die ich nie verstanden habe und auch nie verstehen werde.
Mein erster Geburtstag ist für mich der Tag meiner Geburt, aber damit gehöre ich vermutlich zu einer sehr kleinen Minderheit weltweit!

Die Feier eines Gedenktages erfordert einen Tag, dem man gedenken kann und das geht eben nur für Tage, die in der Vergangenheit liegen. Somit haben wir den konkreten Geburtstag (der Tag an dem es geschehen ist) und die Tage an denen wir uns dieses Ereignisses gedenken...

Also so richtig kann ich mit dieser Erklärung nicht warm werden.
Wenn Du von Gedenktag sprichst, dann ist das ja schon eine Begriffsinterpretation und da möchte ich mal ansetzen.
Ich finde bspw. den Ausdruck das "1. Lebensjahr" zu feiern sehr korrekt ( statt den 1. Geburtstag). Gedenktage, da gebe ich Dir Recht, beziehen sich idR auf Ereignisse in der Vergangenheit und können 1 bis N Mal stattfinden, also das 1. Mal z.B. ein Jahr nach dem denkwürdigen Ereignis.
Ich feiere aber irgendwie -gefühlt- keinen Gedenktag an meinem Geburtstag. Das machen vielleicht mal irgendwelche Leute, falls ich noch berühmt werde.
Ok, ich selbst habe auch am Tag meiner Geburt nicht richtig die Sau rausgelassen, so sagt man. Aber gefeiert wurde schon etwas. Was haben diejenigen also gefeiert? Meinen Geburtstag? Meinen wievielten?

P.S.
"14 einhalb" ist auch vollkommen richtig, damit habe ich kein Problem, denn hier sind Lebensjahre gemeint.

nahpets 19. Sep 2015 11:42

AW: Wenn man sich was wünschen dürfte...
 
Zitat:

Zitat von jobo (Beitrag 1316319)
Was haben diejenigen also gefeiert? Meinen Geburtstag? Meinen wievielten?

Deine Geburt, also das Ereignis, dessen alle Jahre wieder gedacht wird.

Der 1. Geburtstag entspricht also dem 1. Jahrgedächtnis Deiner Geburt, der 2. Geburtstag dem 2. Jahrgedächtnis Deiner Geburt...

Daniel 19. Sep 2015 11:45

AW: Wenn man sich was wünschen dürfte...
 
Ihr kommt etwas von den eingangs angestellten Überlegungen ab.

stahli 19. Sep 2015 11:53

AW: Wenn man sich was wünschen dürfte...
 
Zitat:

Zitat von Hansa (Beitrag 1316318)
Da hat Bernhard auch Recht. Aber : es gibt ein Binärsystem. Um 256 Zahlen darzustellen komme ich mit einem Byte aus, aber nur, sofern ich die 0 mitnehme.

Speicherbezogen hast Du Recht.
Wenn Du 256 Einträge in einer Liste speichern willst ist das erste natürlich auch am Speicherplatz[0] zu finden.

Aber das heißt ja nicht, dass eine Hochsprache dafür nicht die 1 vorsehen könnte.
Der tatsächliche Zugriff muss dann natürlich auf die Speicherstelle[0] erfolgen.

Statt
Delphi-Quellcode:
for I := 0 to 255
schreibst Du dann halt
Delphi-Quellcode:
for I := 1 to 256
.
Unterm Strich ändert sich nichts, weil der Maschinencode dann gleich aussieht.

Die einzige Frage ist, was für den Menschen das logischere ist. Offenbar gehen die Meinungen da auseinander.
Technische Überlegungen wie Binärsystem ab 0 sind aber m.E. kein wirkliches Argument für Listenzähler.


Label.Text := 'Text' ist ja auch nichts, was irgendeinen natürlichen Bedzug zum Speicheraufbau hat. Die Entwicklungsumgebung gaukelt uns das nur vor. Hier sagt ja auch niemand: Im Speicher gibt es keine Labels, deshalb sind die nicht sinnvoll.

Hansa 19. Sep 2015 12:01

AW: Wenn man sich was wünschen dürfte...
 
Luckies Beitrag nicht gesehen. :shock:
Zitat:

Zitat von Luckie (Beitrag 1316300)
Die Franzosen haben es nach der Revolution mal mit dem Dezimalsystem probiert. Das Ergebnis dürfte klar sein. ;)

Da kann ich noch einen draufsetzen (jaja, ich weiss OT) : rot ist ja die Farbe der Kommunisten. Und die chinesischen Mao-Kommunisten konnten sich nicht damit abfinden, dass rot an der Ampel für Stop steht. Also wurde in China rot an der Ampel für fahren und grün für Stop eingeführt. Glücklicherweise hatten sie damals noch mehr Fahrräder. 8-)

samso 19. Sep 2015 12:25

AW: Wenn man sich was wünschen dürfte...
 
Da es ja um quasi philosophische Überlegungen geht:

Offensichtlich hängt doch der sinnvolle Index von den Daten ab, die verwaltet werden. Wenn ich ein array von Farbintensitäten haben, formulieren ich irgendetwas wie
Delphi-Quellcode:
Farbwerte: array [Farben] of Integer
. Nicht umsonst wurde die Wahl des Index bei statischen Arrays dem Programmierer überlassen. Den Rest hat der Compiler erledigt. Bei den dynamischen Arrays wollte man sich diesen Aufwand sparen und hat sie schlicht als 0-Basiert definiert. Aus meiner Sicht wäre es konsequent gewesen, wenn man den Basiswert auch bei dynamischen Arrays umgesetzt hätte.

Wäre es nicht eigentlich viel besser, gleich auf arrays zu verzichten und diese statt dessen als Listen-Objekte zu implementieren? Und brauche ich dann Strings (AnsiStrings sind ja eh schon gestorben)? Sollte nicht einfach alles ein Objekt sein?

Perlsau 19. Sep 2015 12:34

AW: Wenn man sich was wünschen dürfte...
 
Zitat:

Zitat von Hansa (Beitrag 1316318)
Aber : es gibt ein Binärsystem. Um 256 Zahlen darzustellen komme ich mit einem Byte aus, aber nur, sofern ich die 0 mitnehme.

... und genau deshalb wird in Programmiersprachen in der Regel ab 0 indexiert ... :thumb:

mquadrat 21. Sep 2015 08:29

AW: Wenn man sich was wünschen dürfte...
 
Delphi sollte sich wie alle anderen Sprachen verhalten. Und dort wird nun mal 0-indiziert. Fände ich auch bei den Strings besser, weil konsistenter für Leute wie mich, die am Tag in drei verschiedenen Sprachen programmieren.

Referenzen und "echte" Variablen wird man auch nicht ändern könne, ohne einen Haufen Programme zu zerlegen.

Ersetzen von Variablen in Strings ist durchaus eine nette Sache. Kann aber natürlich auch dazu führen, dass es wie in PHP z.B. einen Unterschied macht, ob man seine Strings in " oder ' einfasst. Auch nicht gerade anfängerfreundlich

implementation 21. Sep 2015 10:46

AW: Wenn man sich was wünschen dürfte...
 
Zitat:

Zitat von mquadrat (Beitrag 1316445)
Delphi sollte sich wie alle anderen Sprachen verhalten.

Das halte ich im Allgemeinen für einen ziemlich unsinnigen Ansatz.
  1. setzt das voraus, dass alle andere Sprachen gleich verhalten (wie soll ich mich wie alle anderen Sprachen verhalten, wenn die schon nicht einheitlich sind?)
  2. brauchst du dann keine eigene Sprache. Es ist vollkommen unsinnig, eine eigene Sprache am Leben zu halten, wenn diese sich nicht unterscheiden darf. Wenn ich in X programmieren möchte, dann programmiere ich in X, und nicht in Y mit der Forderung dass diese sich wie X verhält, da ist doch kein Sinn hinter :gruebel:

Ich weiß, dass das gerade nur auf die Arrayindizes bezogen war, aber wenn man das für einen Punkt anwendet, fordert man es schnell auch im Allgemeinen, in jeder Frage. Deswegen gehört der Gedankengang m.E. schon vorher in die Mülltonne.

BUG 21. Sep 2015 10:57

AW: Wenn man sich was wünschen dürfte...
 
Zitat:

Zitat von SMO (Beitrag 1316292)
Das ist sowohl in der englischen als auch der deutschen Sprache falsch, aber man sieht es in beiden immer wieder, besonders bei Abkürzungen. Es heißt "eine CPU, zwei CPUs" und nicht etwa "zwei CPU's" oder schlimmer noch "zwei CPU´s".

"Ein CPU, zwei CPUtzen" ist eindeutig die richtige Antwort. Geprochen wird das dann "Zeh-peh-juhtzen" :stupid:

Zitat:

Zitat von mquadrat (Beitrag 1316445)
Delphi sollte sich wie alle anderen Sprachen verhalten.

Wie Stahli schon mehrfach gesagt hat: hier geht es nicht um Delphi/Pascal ...
Zitat:

Zitat von stahli (Beitrag 1316125)
Ich will hier keine Pascal-Änderungen anregen, sondern einfach mal ein paar grundsätzliche (quasi philosophische) Überlegungen anstellen und diskutieren - wem das gelingt auch gern unter Berücksichtigung der Sicht eines Programmieranfängers.


Wenn man eine moderne Lehrsprache sehen möchte, muss man sich Python anschauen: Interpreter, geringe Einstiegsschwelle, klare Syntax, große Ausdruckskraft für Algorithmen; aber auch Anwendbarkeit in der echten Welt.
Ich halte es für schwierig (gerade für eine Einstiegssprache) Konzepte wie 1-basierte Arrays einzuführen, die es dann erschweren andere Konzept (Zeigerarithmetik, usw.) zu verstehen.

Dejan Vu 21. Sep 2015 19:46

AW: Wenn man sich was wünschen dürfte...
 
Zitat:

Zitat von implementation (Beitrag 1316473)
Zitat:

Zitat von mquadrat (Beitrag 1316445)
Delphi sollte sich wie alle anderen Sprachen verhalten.

Das halte ich im Allgemeinen für einen ziemlich unsinnigen Ansatz.

Ich nicht. Es gibt ja nicht unterschiedliche Programmiersprachen, weil sie sich in elementaren Dingen unterschiedlich verhalten (sollen), sondern weil es unterschiedliche Anforderungen gibt, und sich daher auch die gebotenen Features unterscheiden (müssen).

Klar, man kann darüber streiten, weshalb man einen Unterschied in der Zuweisung machen sollte, je nachdem, ob es sich um einen Basistypen (oder Systemtypen oder wie auch immer) handelt, oder nicht.

Bei den einschlägigen Basisfunktionen sollte jedoch Einigkeit herrschen, zumal eine Indizierung mit 1 nun auch keine fundamentale Funktionsverbesserung mit sich bringt.

Meflin 21. Sep 2015 21:13

AW: Wenn man sich was wünschen dürfte...
 
Zitat:

Zitat von mquadrat (Beitrag 1316445)
Delphi sollte sich wie alle anderen Sprachen verhalten. Und dort wird nun mal 0-indiziert.

Ach echt? Also mir fiele da spontan Smalltalk ein, da ist alles konsistent 1-indexiert!

Mir persönlich geht die komplette Index-Diskussion aber an der eigentlichen Problematik vorbei. Ich persönlich will eine Programmiersprache (und zumindest das gibt es auch schon zu genüge), die expressiv genug ist, dass ich mir um Indexe keine Gedanken mehr machen muss. Denn in 99,97% der Anwendungsfälle braucht man den Index nicht wirklich, sondern als Hilfsmittel, um auf bestimmte Elemente zuzugreifen. Das kann ich mit foreach, map, ... aber genausogut ohne Index, weniger fehleranfällig, und besser lesbar.

My 2 Cents zum Thema Indizes :stupid:

mquadrat 22. Sep 2015 07:39

AW: Wenn man sich was wünschen dürfte...
 
Als Lehrsprache wird auch oft Ruby verwendet. Das ist am Anfang etwas gewöhnungsbedürftig, aber geht dann ganz gut, wenn man die Grundidee mal verstanden hat.

Unterschiedliche Sprachen haben immer unterschiedliche Feature-Sets. Aber es gibt ein Minimum an Grundkonzepten, die alle haben. Ich würde die Sprachen eher in Klassen einteilen. Und wenn man sich nun mal innerhalb einer Sprachklasse (z.B. Desktop-Entwicklung) umschaut, dann bieten fast alle Sprachen ähnliche Features, was ich persönlich auch gut finde.

Luckie 23. Sep 2015 03:00

AW: Wenn man sich was wünschen dürfte...
 
Wo soll dieser Thread jetzt hinführen? "Was ich mir wünsche."? "Wie es perfekt für mich wäre."? "Last uns mal träumen."?

Lange Zeit wurde Basic ja als Lehrsprache gehandelt, weil sie auch ursprünglich dazu erfunden wurde. Was braucht eine Lehrsprache heutzutage? Schleifen (for, while, ...), Verzweigungen (if, case, switch, ...), Klassen und Objekte. Ist Pointer Arithmetik noch zeitgemäßes? Wie viel muss ich intern wissen, um das Grundverständnis zu bekommen? Stichwort rückwärts laufende for-Schleifen wegen der Maschinensprachen Optimierung? (Prüfen, ob ein Register null ist, ist einfache als eine Überprüfung auf einen bestimmten Wert.)
Nebenbei sei diese komische Schildkröte erwähnt, die man über den Bildschirm hat laufen lassen. :mrgreen:

Ich habe mit nullbasierenden Arrays kein Problem, weil ich es gewohnt bin. Ist nun mal so. Basta. Neulingen wird es etwas "strange" anmuten. Man fängt ja auch mit eins anzuzählen. Aber Maschinen arbeiten eben etwas anders intern. Mit eins funktioniert die Poinerarethmetik nicht mehr.

Ein Zugeständnis an die Mathematik hat Delphi ja schon gemacht. Der Zuweisungsoperator. In Delphi := in C =. = ist mathematisch unlogisch. a = 2 ist unlogisch. a ist ja erst nach der Zuweisung 2. Und == als Vergleich ist eine Krücke, um die Unzulänglichkeit auszubügeln.

Also was fordert ihr jetzt eigentlich hier?

hoika 23. Sep 2015 05:21

AW: Wenn man sich was wünschen dürfte...
 
Hallo,
bei Benutzung von Low und High kann doch jeder seinen Startindex wählen,
wie er möchte ...

PS: Ich bin für 0 :)


Heiko

Luckie 23. Sep 2015 05:23

AW: Wenn man sich was wünschen dürfte...
 
Zitat:

Zitat von hoika (Beitrag 1316679)
PS: Ich bin für 0 :)Heiko

Ich auch. Ist nerdig. :mrgreen:

jobo 23. Sep 2015 05:30

AW: Wenn man sich was wünschen dürfte...
 
Zitat:

Zitat von Luckie (Beitrag 1316675)
Lange Zeit wurde Basic ja als Lehrsprache gehandelt, ..
diese komische Schildkröte erwähnt, die man über den Bildschirm hat laufen lassen. :mrgreen:

Lehrsprachen dürften ja beim Thema wünsch Dir was nicht so hoch im Kurs stehen. Da sollte es doch hier eher um die richtig guten Frameworks (Konstistenz, Leistungsfähigkeit, usw.) gehen.
Ich betrachte das auch eher mit Distanz. Vielleicht hilft ja eine Kellerabteilung, wo das richtig böse Werkzeug liegt, Schraubenzieher für Pointer usw.
Es ist auch eine Frage des Bereichs. Grafikschine ist immer an der Kante, während DB basierte Systeme da ganz anders ticken.

Die Schildkröte war cool, damals, fand ich, wenn sie (endlich) über die Mauern liefer und recursiv wieder zurück.

Luckie 23. Sep 2015 05:33

AW: Wenn man sich was wünschen dürfte...
 
Freak. Ich war glücklich, wenn sie das "Haus des Nikolaus" gezeichnet hat.

jobo 23. Sep 2015 05:51

AW: Wenn man sich was wünschen dürfte...
 
Zitat:

Zitat von Luckie (Beitrag 1316683)
Freak.

Vorsicht! ;)
Das war unser Lehrer schuld (der war echt gut, damals schon). Ich wäre niemals auf die Idee gekommen, das sei ein Scheixx geht.
Aber das sind wir ja wieder beim Thema Träumen bzw. wünschen...

schöni 23. Sep 2015 08:44

AW: Wenn man sich was wünschen dürfte...
 
Mit Nullbasierten Listen habe ich kein Problem. @Sir Rufo erlärt das gut mit dem Geburtsproblem.

Wenn ich auf dem Bildschirm die X;Y Position adressieren will, mache ich das oft mit:

Line := Abslute_Position div XResolution;
Column := Abslute_Position mod XResolution;

Das klappt aber nur, wenn das erste Pixel des Bildschirmes an Position NULL liegt.

Jemans schrieb, das ein Byte 256 Werte annehmen kann, was nur geht, wenn die NULL berücksichtigt wird.

Zitat:

Zitat von Luckie
Ich war glücklich, wenn sie das "Haus des Nikolaus" gezeichnet hat.

Das ist die kindgerechte Form des Salaesman Problems. Jeder Weg soll öglichst nur einmal gegangen werden.


Ich wüchsche mir vielmehr einen Compiler, der die Initialisierung und Freigabe der verwendeten Objekte automatisiert. Ich habe sehr oft EAccessViolations. Weil wohl irgendein Objekt nicht korrekt erzeigt worden ist. Dann geht die frustrierende Fehlersuche los.

Die Prozessoeren werden immer leistungsfähiger, da könnte doch der Compiler Konstruktorcode und Destruktorcode automatisch einfügen.

Für Abwärtskompatibilität könnte der im Quellcode formulierte Konstruktor und Destruktor noch zugelassen werden, fehlt das jedoch in der Klassendefinition muss der Compiler den passenden Code dafür erzeugen.

jfheins 23. Sep 2015 20:01

AW: Wenn man sich was wünschen dürfte...
 
Zitat:

Die Prozessoren werden immer leistungsfähiger, da könnte doch der Compiler Konstruktorcode und Destruktorcode automatisch einfügen.
Das ist in der Tat ein (in meinen Augen) wichtiger Punkt. Konstruktoren zu automatisieren finde ich unglücklich, weil dadurch wieder schwer zu findende Fehler passieren. Destruktoren finde ich inzwischen überflüssig/nervig.

Viele Sprachen (gerade junge) gehen ja stark in die Richtung. C# und Java machen es ja vor, da gibt es einen Garbage Collector. In Rust prüft (meines Wissens) der Compiler statisch (also beim compilieren) ob es sein könnte, dass du auf ein freigegebenes Objekt zugreift. Falls das sein kann, compiliert das Programm nicht.

Manche beschweren sich, dass moderne Programme immer mehr Bloatware sind, aber zu einem Teil ist das einfach nur ein Tradeoff von "Entwicklerzeit/kosten" gegen Laufzeitperformance/Größe. Und bei modernen CPUs finde ich, darf man den Kompromiss auch graduell Richtung Reduktion der Entwicklungszeit steuern.

Leider ist es sehr schwierig, eine Sprache, die von jeher auf manuelle Speicherverwaltung setzt, auf automatische Speicherverwaltung zu ändern. Sieht man ja bei C++ und den neuen Smart Pointern: http://stackoverflow.com/questions/5...oost-explained

Luckie 23. Sep 2015 20:35

AW: Wenn man sich was wünschen dürfte...
 
Garbage Collector. :wink: Ein Garage Collector wäre ein Autowerkstatt Sammler.

jfheins 23. Sep 2015 20:45

AW: Wenn man sich was wünschen dürfte...
 
Zitat:

Zitat von Luckie (Beitrag 1316786)
Garbage Collector. :wink: Ein Garage Collector wäre ein Autowerkstatt Sammler.

Ach verdammt :mrgreen: Mit der Rechtschreibprüfung im Browser wird man echt dazu verleitet, nur noch die rot unterstrichenen Sachen zu überprüfen. :oops:

Hansa 23. Sep 2015 20:49

AW: Wenn man sich was wünschen dürfte...
 
Zitat:

Zitat von jfheins (Beitrag 1316785)
..dass moderne Programme immer mehr Bloatware sind, aber zu einem Teil ist das einfach nur ein Tradeoff von ,,,

Da wird über Computersprachen diskutiert, ist ja auch richtig, aber erkläre mir mal (auf deutsch), was Bloatware ist, oder Tradeoff. Das ist (keine Angst : 9 Jahre Englisch dürften reichen) so nicht verständlich, nicht mal im Zusammenhang. Wenn in einem Team in solch einem Stil kommuniziert wird, tja, dann gute Nacht. Starke Erhöhung der Entwicklungszeit. Da ist man ja mehr damit beschäftigt, zu überlegen, was einer meint oder wälzt womöglich noch Wörterbücher. Es gibt eingedeutschtes. Ich sage auch gelegentlich "Klicke mal den geschickten Link an". Link ist schon kürzer als z.B. "Daten-Fernübertragungs-Darstellungs-Zugriffspunkt". :mrgreen: In Deutsch neue halb-englische Wortschöpfungen zu erfinden, das ist imho allerdings wirklich überflüssig. "Handy" lässt grüssen, das versteht nicht mal ein Amerikaner. :shock:

Luckie 23. Sep 2015 21:11

AW: Wenn man sich was wünschen dürfte...
 
Was hat dein Beitrag über die deutsch-englischen Bgerifflichkeiten mit dem Thema zu tun?

Stevie 23. Sep 2015 21:18

AW: Wenn man sich was wünschen dürfte...
 
Zitat:

Zitat von Hansa (Beitrag 1316788)
erkläre mir mal (auf deutsch), was Bloatware ist, oder Tradeoff.

Echt jetz? Markieren, Googlesuche, deutschen(!) Wikipedia Artikel lesen :)

Hansa 23. Sep 2015 21:46

AW: Wenn man sich was wünschen dürfte...
 
Und das soll die Produktivität erhöhen ? Ich habe doch da alles geschrieben. Und nochwas : es gibt hier Leute, die extra betonen, wenig oder gar kein Englisch zu können. Na und ? Oder ist das jetzt Pflicht ? Sollen die nichts mehr verstehen, keine Fragen / Antworten lesen können oder was ? :shock: Das Denglisch ist eine Katastrophe. Schlimm, wenn dieses Wischiwaschi so weitergeht. Or shall it happens ? Der ein oder andere wird sich jetzt wohl fragen, was der letzte Satz heisst. Scheint so sein zu müssen.

Stevie 23. Sep 2015 22:08

AW: Wenn man sich was wünschen dürfte...
 
Zitat:

Zitat von Hansa (Beitrag 1316792)
Or shall it happens ? Der ein oder andere wird sich jetzt wohl fragen, was der letzte Satz heisst. Scheint so sein zu müssen.

happen, ohne s, weil es hier im Infinitiv genutzt wird - sorry could not resist, tut mir leid, ich konnte nicht widerstehen. :mrgreen:

Hansa 23. Sep 2015 22:46

AW: Wenn man sich was wünschen dürfte...
 
Ah ja, das kann tatsächlich so sein. :lol: Aber ich sag ja : deutsch reden in D. Der Rest macht keinen Sinn. Man redet nur aneinander vorbei oder irritiert unnötigerweise. Was soll daran gut sein ? Gut, man kann Google etwas unterstützen, die haben es ja nötig.Warum sagt man nicht einfach "unnötig aufgeblähtes Programm" ? Nein, es muss wohl "Bloatware" sein, um sich wohl wichtiger zu machen, als man ist. Nicht vorhandenes Wissen vorzugaukeln usw. Das ist ja für jfheins nicht so schlimm (auch nicht persönlich gemeint), allerdings : man muss sich hier wohl immer wiederholen, es ist kontraproduktiv.

Stevie 23. Sep 2015 22:54

AW: Wenn man sich was wünschen dürfte...
 
"Englisch wird die Arbeitssprache" (Günther Oettinger) :lol:

bernau 24. Sep 2015 01:09

AW: Wenn man sich was wünschen dürfte...
 
Zitat:

Zitat von schöni (Beitrag 1316702)
Ich wüchsche mir vielmehr einen Compiler, der die Initialisierung und Freigabe der verwendeten Objekte automatisiert. Ich habe sehr oft EAccessViolations. Weil wohl irgendein Objekt nicht korrekt erzeigt worden ist. Dann geht die frustrierende Fehlersuche los.

Ich weis nicht wo die Probleme sind. Es ist doch echt kein Problem ein Objekt zu erzeugen und vor allem freizugeben.

Meine Devise ist: Nur anhand dem Müll, den ich aufräume (free), sehe ich welchen Müll ich überhaupt produziere (create). An ARC, GarbageCollector und Konsorten kann ich mich nicht wirklich gewöhnen.

Ich hätte aber eine andere Idee. Schön wäre es, wenn der Compiler es hinkriegen würde, den Pointer eines freigegebenen Objektes so lange nicht neu zu belegen, bis es keine Referenz mehr auf diesen Pointer gibt. Ein free sollte den Pointer mit der Adresse eines TDestroyedObject belegen, der dann eine "schöne Exception" erzeugt und keine nichtssagende Schmutzverletzung. Ein Zugriff auf NIL sollte auch mit einer besseren Fehlermeldung belegt werden.

mkinzler 24. Sep 2015 04:56

AW: Wenn man sich was wünschen dürfte...
 
Zitat:

Zitat von Stevie (Beitrag 1316796)
"Englisch wird die Arbeitssprache" (Günther Oettinger) :lol:

Ist ja auch kein Problem, wenn man wie er englisch perfekt kann. :mrgreen:

Dejan Vu 24. Sep 2015 06:13

AW: Wenn man sich was wünschen dürfte...
 
Zitat:

Zitat von bernau (Beitrag 1316799)
Ich hätte aber eine andere Idee. Schön wäre es, wenn der Compiler es hinkriegen würde, den Pointer eines freigegebenen Objektes so lange nicht neu zu belegen, bis es keine Referenz mehr auf diesen Pointer gibt. Ein free sollte den Pointer mit der Adresse eines TDestroyedObject belegen, der dann eine "schöne Exception" erzeugt und keine nichtssagende Schmutzverletzung. Ein Zugriff auf NIL sollte auch mit einer besseren Fehlermeldung belegt werden.

Willst Du Unzulänglichkeiten im Design wirklich kaschieren? Die Fehlermeldung auf Nil ist schon genau genug. Du meinst sicherlich die Access Violations bei 0x00000012.

PS: Wenn der Compiler schon Referenzzählung integriert, dann kann er die Objekte auch gleich selbst freigeben. Genau das passiert bei Interfaces und unter Android. Und bei anderen Sprachen.

Allerdings entbindet dich die automatische Freigabe nicht von sorgfältigem Design. Es reicht schon, wenn zwei ansonsten nicht mehr verwendete Objekte noch Verweise auf das jeweils andere haben.

Stevie 24. Sep 2015 06:56

AW: Wenn man sich was wünschen dürfte...
 
Zitat:

Zitat von bernau (Beitrag 1316799)
Ich hätte aber eine andere Idee. Schön wäre es, wenn der Compiler es hinkriegen würde, den Pointer eines freigegebenen Objektes so lange nicht neu zu belegen, bis es keine Referenz mehr auf diesen Pointer gibt. Ein free sollte den Pointer mit der Adresse eines TDestroyedObject belegen, der dann eine "schöne Exception" erzeugt und keine nichtssagende Schmutzverletzung. Ein Zugriff auf NIL sollte auch mit einer besseren Fehlermeldung belegt werden.

Das gibts schon und nennt sich FastMM FullDebug oder LeakCheck als memory Manager ersatz während der Entwicklung.


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:01 Uhr.
Seite 2 von 2     12   

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz