Delphi-PRAXiS
Seite 5 von 10   « Erste     345 67     Letzte »    

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Neue Sprachfeatures in Delphi? (https://www.delphipraxis.net/198317-neue-sprachfeatures-delphi.html)

TiGü 25. Okt 2018 08:10

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?

Schokohase 25. Okt 2018 08:11

AW: Neue Sprachfeatures in Delphi?
 
Zitat:

Zitat von Sherlock (Beitrag 1416624)
Delphi ist am Ende halt doch ein Pascal. Ich sehe daher keinen Zwang, (Un)Möglichkeiten anderer Sprachfamilien hinein panschen zu müssen.

Es muss aber eine gewisse Menge an Delphi-Programmierern gegeben haben, die sich dieses Feature gewünscht haben.

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;

mkinzler 25. Okt 2018 08:19

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:
begin..end
mit
Code:
{}
.

Ralf Kaiser 25. Okt 2018 08:28

AW: Neue Sprachfeatures in Delphi?
 
Zitat:

Zitat von mkinzler (Beitrag 1416631)
Ein weiteres Feature, dass sich viele wünschen ist die Ersetzung von
Delphi-Quellcode:
begin..end
mit
Code:
{}
.

Er hat Jehova gesagt. Steinigt ihn! :twisted:

Schokohase 25. Okt 2018 08:37

AW: Neue Sprachfeatures in Delphi?
 
Zitat:

Zitat von mkinzler (Beitrag 1416631)
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:
begin..end
mit
Code:
{}
.

Allerdings unterscheiden sich beide Anforderungen doch erheblich. Die Inlines können nachweislich (s.o.) helfen den Code schlanker und übersichtlicher zu halten. (*)

Diese Ersetzung von
Delphi-Quellcode:
begin .. end
kann dieses (soweit ich das sehe) nicht liefern.

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?

Uwe Raabe 25. Okt 2018 08:42

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.

mkinzler 25. Okt 2018 08:50

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.

Codehunter 25. Okt 2018 09:11

AW: Neue Sprachfeatures in Delphi?
 
Zitat:

Zitat von TiGü (Beitrag 1416628)
Ihr müsst die neuen Sprachfeatures nicht nutzen!

Am Ende ist es eine Gewohnheitssache.

Letztlich ja doch, wenn im Team einer damit anfängt müssen zwangsläufig alle anderen auch. Spätestens beim Entkäfern wenn der Kollege im Urlaub ist.

Zitat:

Zitat von TiGü (Beitrag 1416628)
An so Teufelszeug wie Generics, Anonyme Methoden oder vereinfachte Arraybehandlung ist eurer Quelltext auch nicht gestorben, oder?

Hmm ja, wenns denn richtig funktionieren würde... Aber dann sind wir ganz schnell wieder bei der Pro-Kontra-Diskussion "Featuritis vs. Stabilität"

bytecook 25. Okt 2018 09:56

AW: Neue Sprachfeatures in Delphi?
 
Zitat:

Zitat von Codehunter (Beitrag 1416645)
Letztlich ja doch, wenn im Team einer damit anfängt müssen zwangsläufig alle anderen auch. Spätestens beim Entkäfern wenn der Kollege im Urlaub ist.

Warum denk ich da jetzt urplötzlich an MySatan Roundup zum DeBeetlen? :twisted:
Naja, mal abwarten was wirklich kommt...

Codehunter 25. Okt 2018 10:20

AW: Neue Sprachfeatures in Delphi?
 
Zitat:

Zitat von bytecook (Beitrag 1416646)
Zitat:

Zitat von Codehunter (Beitrag 1416645)
Letztlich ja doch, wenn im Team einer damit anfängt müssen zwangsläufig alle anderen auch. Spätestens beim Entkäfern wenn der Kollege im Urlaub ist.

Warum denk ich da jetzt urplötzlich an MySatan Roundup zum DeBeetlen? :twisted:

Da verwechselst du was. Roundup entkäfert nicht. Höchstens indirekt weils Käfergetier nix mehr zu futtern findet. 8-)
Zitat:

Zitat von bytecook (Beitrag 1416646)
Naja, mal abwarten was wirklich kommt...

Das denke ich auch. Die ganze Aktion kommt mir doch sehr seltsam vor. Inoffizielle Kanälen ist nicht unbedingt zu trauen. Wer weiß, wir machen uns hier verrückt und dann wars nur ein Sturm im Wasserglas.


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:03 Uhr.
Seite 5 von 10   « Erste     345 67     Letzte »    

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