![]() |
AW: Wenn man sich was wünschen dürfte...
Also ob Listen nun 0- oder 1-basiert sind, das ist mir eigentlich ziemlich egal. Stören tut mich allenthalben, dass das so inkonsistent ist. Die meisten TIrgendwasList sind 0-basiert, Strings sind 1-basiert. Ich will gar nicht wissen wie oft ich mich schon bei Copy() verheddert habe weil ich unbewusst immer 0-basiert denke.
Aber das heute noch zu ändern dürfte kaum mehr möglich sein ohne die Kompatibilität über Board zu werden. Und umschaltbar per Compilerschalter macht die Sache nur noch unsinniger. Bzgl. Referenzen und Speicherkopien: Ich frage mich schon lange, warum es in Delphi drei Varianten gibt:
Delphi-Quellcode:
Hier dürften doch Variante 1 und 3 so ziemlich das selbe sein. So richtig schick wird das dann in diesem Fall:
procedure Foo(A: Typ);
procedure Foo(var A: Typ); procedure Foo(const A: Typ);
Delphi-Quellcode:
Mir ist schon klar WARUM das funktioniert. Mich nervt nur der Stil, den man in vielen (kommerziellen) Units findet. Da wird zwischen Referenzen und Zeigern wild hin und her gecastet. Das geht sogar soweit dass man Zeiger auf Zeiger referenziert.
procedure Foo(const A: PString);
begin A^:= 'XYZ'; end; procedure Bar; var B: String; begin B:= 'ABC'; ShowMessage(B); // "ABC" Foo(@B); ShowMessage(B); // "XYZ" end; Bzgl. Lokalisierung stimme ich euch voll und ganz zu. Es gibt tausendundeine Möglichkeit wie man das realisieren kann. Der offizielle (Borland-) Weg über Resourcen-DLLs hat mir noch nie gefallen. Viel zu sperrig das ganze. Ich nutze dafür lieber INI-Dateien und hatte mir seinerzeit (für Delphi 7) einen ![]() |
AW: Wenn man sich was wünschen dürfte...
Zitat:
Delphi-Quellcode:
Parametern. Denn der Wert ist der Zeiger und nicht das worauf der Zeiger zeigt. Den Zeiger kann ich dort nicht verändern, aber sehr wohl das, worauf der Zeiger da zeigt. ;)
const
|
AW: Wenn man sich was wünschen dürfte...
Zitat:
Delphi-Quellcode:
procedure Foo(out A: Typ);
|
AW: Wenn man sich was wünschen dürfte...
Fände es SEHR wünschenswert, wenn man sich an Beiträge angehängte Screenshots ohne Anmeldung/Registrierung ansehen könnte!
|
AW: Wenn man sich was wünschen dürfte...
So, bin jetzt ohne Aufsicht und kann mir etwas mehr Zeit nehmen...
Also ich akzeptiere natürlich alle Argumente, sehe das aber immer noch etwas anders. Vielleicht kann ich das noch etwas genauer erklären... 1) 0-basiert Wenn man in Listen Blöcke unterbringen will muss man natürlich mit 0 rechnen um zu einer bestimmten Position zu kommen. Man kann zu dem Ergebnis aber dann auch problemlos 1 hinzu zählen, auf den tatsächlichen Eintrag zu kommen. Dafür spart man sich das sonst immer wiederkehrende ... to List.Count - 1. Ok, bei foreach ist das auch nicht mehr so interessant. Letztlich ist es Geschmackssache. Ich sehe es in dem Falle eher aus Beginner-Sicht. Wenn ein Schüler eine Liste mit 10 Einträgen durchlaufen soll wird er bei 1 anfangen. 2) Zuweisungen Das ist schon etwas schwieriger. Aber wenn man auch hier einem Schüler über die Schulter schauen würde, würde er sich mit einer "vermeintlichen" unterschiedlichen Handhabung anfänglich eher schwer tun. Natürlich wird der Pointer kopiert aber es fühlt sich anders an (für mich jedenfalls ;-)). 3) Strings + Bezeichner im Quelltext Die Lokalisierung hatte ich da gar nicht im Fokus sondern einfach die Lesbarkeit des Quelltextes. Der Quelltexteditor ist ja auch eine graphische Schnittstelle - halt für den Programmierer. Im Sinne von WYSIWYG könnte doch der Codeeditor hier auch eine Roh- und eine formatierte Sicht auf den Code bieten. Im Normalfall werden dann die Formatierungsdetails ausgeblendet und wenn man sie braucht zeigt man sie halt an und kann sie bearbeiten. [EDIT] Ein Refactoring von FirstNamme in FirstName könnte die IDE auch realisieren, wenn der Bezeichner in spitzen Klammern steht. Dazu muss halt sowohl der Editor als auch der Parser damit umgehen können. Aus meiner Sicht wäre das eine klare Erleichterung der Arbeit. ... ok, zumindest weiß ich jetzt, dass ich keine Begeisterung ausgelöst habe. :stupid: @Bernd2015 Also es ging schon um Sprachkonstrukte in der Programmierung. ALLE DENKBAREN Wünsche können in dem Thread hier nicht erfüllt werden. ;-) |
AW: Wenn man sich was wünschen dürfte...
Warum soll das Begeisterung auslösen ? Wenn man jetzt hingeht und zählt ab 1 statt 0 (ich stimme Stahli da zu, dass das logischer wäre !), aber mathematisch korrekter wäre es wohl nicht. Der Hauptpunkt ist aber : never change a running system. Würde man das ändern, au Mann, das gäbe Riesen-Durcheinander, Kompatibilitätsprobleme usw. bis in die letzte Programmeckee.
|
AW: Wenn man sich was wünschen dürfte...
Es heulen doch jetzt schon alle über ZBS - obwohl das wohl endlich konsistent ist!
Von allen Dingen, die ich mir wünschen würde kämen die Sachen wohl nicht in meiner Liste vor - wenn jemand nicht zwischen Wert und Referenztypen unterscheiden kann, dann soll er wieder mit Playmobil spielen gehen :twisted: Und nein, ich werd meine Wunschliste hier nicht mit euch diskutieren, weil es nichts bringt und ich da keinen Nerv drauf habe - die, die davon etwas umsetzen könnten, wissen davon und das ist entscheidend. |
AW: Wenn man sich was wünschen dürfte...
Zitat:
|
AW: Wenn man sich was wünschen dürfte...
|
AW: Wenn man sich was wünschen dürfte...
Zitat:
Ich würde mir wünschen, dass Leute nicht den Akut (´) als Apostroph (') ![]() Wieso sich die Arbeit machen und ein oder zwei Tasten mehr als nötig drücken, um ein Zeichen zu produzieren, das da gar nicht hingehört? Ein Wort wird nicht entstellt wenn ein kleines S direkt angehängt wird. Wie implementation schön in ![]() Zitat:
Zum Thema 0-basiert vs. 1-basiert: ich bevorzuge ersteres. Ist logischer und auch weiter verbreitet. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:06 Uhr. |
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