AW: Neue Sprachfeatures in Delphi?
Meine Güte, ist das wieder ein Jammern auf hohem Niveau! :shock:
Ihr müsst die neuen Sprachfeatures nicht nutzen! Am Ende ist es eine Gewohnheitssache. An so Teufelszeug wie Generics, Anonyme Methoden oder vereinfachte Arraybehandlung ist eurer Quelltext auch nicht gestorben, oder? |
AW: Neue Sprachfeatures in Delphi?
Zitat:
So wie du ausschließlich die Nachteile siehst, sehen andere eben nur die Vorteile. Der Eine sieht in Feuer Gefahr und der Andere Behaglichkeit. Hier ein Beispiel wo diese Inlines den Code besser lesbarer machen:
Delphi-Quellcode:
{ Das funktioniert so nicht, denn es wird nur 10 ausgegeben }
procedure TaskTest1( ); var i: Integer; tasks: TArray<ITask>; o: TObject; begin Writeln( 'TaskTest1' ); o := TObject.Create; try SetLength( tasks, 10 ); for i := 0 to 9 do begin tasks[i] := TTask.Run( procedure begin TMonitor.Enter( o ); try Writeln( i ); finally TMonitor.Exit( o ); end; end ); end; TTask.WaitForAll( tasks ); finally o.Free; end; end; { Das muss man aktuell so schreiben } function BuildTask( i: Integer; const o: TObject ): ITask; begin Result := TTask.Run( procedure begin TMonitor.Enter( o ); try Writeln( i ); finally TMonitor.Exit( o ); end; end ); end; procedure TaskTest2( ); var i: Integer; tasks: TArray<ITask>; o: TObject; begin Writeln( 'TaskTest2' ); o := TObject.Create; try SetLength( tasks, 10 ); for i := 0 to 9 do begin tasks[i] := BuildTask( i, o ); end; TTask.WaitForAll( tasks ); finally o.Free; end; end; { Oder mit den Inlines geht es eben so } procedure TaskTest3( ); var i: Integer; tasks: TArray<ITask>; o: TObject; begin Writeln( 'TaskTest1' ); o := TObject.Create; try SetLength( tasks, 10 ); for i := 0 to 9 do begin var val := i; tasks[i] := TTask.Run( procedure begin TMonitor.Enter( o ); try Writeln( val ); finally TMonitor.Exit( o ); end; end ); end; TTask.WaitForAll( tasks ); finally o.Free; end; end; |
AW: Neue Sprachfeatures in Delphi?
Ja es gibt viele, die sich das gewünscht haben.
Es gibt auf FB und G++ ja diverse Wunschlisten für neue Features. Dieses stand ganz oben. Aber nur weil viele ein Feature wünschen, ist es noch nicht sinnvoll: Ein weiteres Feature, dass sich viele wünschen ist die Ersetzung von
Delphi-Quellcode:
mit
begin..end
Code:
.
{}
|
AW: Neue Sprachfeatures in Delphi?
Zitat:
|
AW: Neue Sprachfeatures in Delphi?
Zitat:
Diese Ersetzung von
Delphi-Quellcode:
kann dieses (soweit ich das sehe) nicht liefern.
begin .. end
Darum wurden wohl auch die Inlines realisiert (es gibt einen konkreten Nutzen ohne den alten Code zu brechen) und die
Delphi-Quellcode:
eben nicht.
{}
(*) Ja, mit einem Hammer kann man ganz toll Nägel in die Wand kloppen oder sich lebensgefährlich verletzen. Ist der Hammer also jetzt nützlich oder gefährlich? |
AW: Neue Sprachfeatures in Delphi?
Zumindest kann man mit einer Inline-Variablendeklaration auch eine lokale Variable initialisieren (muss dann noch nicht mal eine Konstante sein!). Das geht bisher so jedenfalls nicht ohne mindestens eine zusätzliche Zeile Code.
|
AW: Neue Sprachfeatures in Delphi?
Die Initialisierung bei der Deklaraion und die Verwendung von scoped Variablen für Schleifen ist positiv.
Aber die freie Dekalarationsmöglichkeit im Text (anstatt in der Var-Sektion) finde ich eher negativ. |
AW: Neue Sprachfeatures in Delphi?
Zitat:
Zitat:
|
AW: Neue Sprachfeatures in Delphi?
Zitat:
Naja, mal abwarten was wirklich kommt... |
AW: Neue Sprachfeatures in Delphi?
Zitat:
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:03 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz