Delphi-PRAXiS
Seite 11 von 15   « Erste     91011 1213     Letzte » 

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Klatsch und Tratsch (https://www.delphipraxis.net/34-klatsch-und-tratsch/)
-   -   Delphi ist unbeliebt...angeblich (https://www.delphipraxis.net/194246-delphi-ist-unbeliebt-angeblich.html)

Neutral General 8. Nov 2017 13:36

AW: Delphi ist unbeliebt...angeblich
 
Zitat:

Zitat von Der schöne Günther (Beitrag 1385630)
Hm, Pascal ist teilweise so läääänglich, aber das ist nicht schlecht. Vielleicht mache ich zu viel Delphi, aber manchmal finde ich eine vier Zeilen lange anonyme Methode trotzdem lesbarer als ein kurzes Lambda.

Die C# Form ist zwar korrekt aber 1:1 übersetzt wäre es eher
Code:
delegate(byte left, byte right)
{
  return (right - left);
}
Und in der Form ist es dann nicht mehr so viel kürzer als Delphi.

Stevie 8. Nov 2017 14:18

AW: Delphi ist unbeliebt...angeblich
 
Zitat:

Zitat von Der schöne Günther (Beitrag 1385630)
Hm, Pascal ist teilweise so läääänglich, aber das ist nicht schlecht. Vielleicht mache ich zu viel Delphi, aber manchmal finde ich eine vier Zeilen lange anonyme Methode trotzdem lesbarer als ein kurzes Lambda.


Problem 1: in der RTL bietet TArray.Sort keine Überladung für TComparison<T>, so dass man das schreiben könnte:

Delphi-Quellcode:
TArray.Sort<Byte>(values,
  function(const left, right: Byte): Integer
  begin
    Result := (right - left)
  end);
Lösung: Spring.pas nutzen (oder selbst schreiben meinetwegen), das fügt diesen Oberload hinzu.


Problem 2: Anonyme Methoden sind halt keine Lamdbas und der Compiler ist dämlich (entschuldige, ich meine single pass mit begrenztem Look ahead), so dass er nur sehr begrenzt Type Inference betreiben kann und er somit die explizite Angabe der Signatur braucht um das dann in die entsprechende Methode zu packen. Der C# Compiler geht da vereinfacht ausgedrückt hin und nimmt erstmal die Lambda auseinander und konstruiert daraus dann die Signaturen und testet sie gegen die möglichen Overloads der aufzurufenden Methode (Eric Lippert erklärt das etwas in seinem Blog etwas besser - gibt noch zahlreiche weitere Artikel von ihm zu der Thematik).

Zitat:

Zitat von Der schöne Günther (Beitrag 1385630)
Ob man nun begin/end, Klammern oder Emojis für Blöcke nimmt, darüber wird sich ja niemand ernsthaft streiten wollen.

Nicht nur begin/end, aber gibt genug, die meinen, nur weil man in Pascal z.B. Variablen vor dem begin deklarieren muss, macht es den Code irgendwie besser. Klar, Code mit drölfzig Variablen wird übersichtlicher als derselbe Code mit jeder Variable inline über zig Zeilen Code deklariert, aber das kann wohl kaum der Grund sein. Ich bekomm immer Herpes, wenn ich nur weil ich ne for Schleife habe, diese Variable oben deklarieren muss, anstatt an der Stelle wo ich sie brauchte (zusätzlich ergibt sich in C-Sprachen durch das scoping nicht die Problematik, mal einfach die Variable außerhalb der Schleife zu missbrauchen). Und ja, ich weiß, dass es IDE Tooling (aka "Code Vomit") für das automatische Deklarieren dieser Variablen gibt.

Zusätzlich gibt es keine Möglichkeit, eine Variable direkt mit einem Sinnvollen Wert zu befüllen. D.h. sie ist entweder solange in einem undefinierten Zustand (managed Typen mal ausgeklammert), bis ich ihr einen Wert zuweise. Was dazu führt, dass man entweder Unsinnscode schreibt, um erstmal alles auf Null/Leer zu setzen oder Bugs in Kauf nimmt oder auf den Compiler hofft, einem die Verwendung einer unitialisierten Variable aufzuzeigen (was im übrigen z.B. in C# by default ein Fehler und nicht nur eine Warnung ist).

Sherlock 8. Nov 2017 14:42

AW: Delphi ist unbeliebt...angeblich
 
Zitat:

Zitat von Der schöne Günther (Beitrag 1385630)
Ob man nun begin/end, Klammern oder Emojis für Blöcke nimmt, darüber wird sich ja niemand ernsthaft streiten wollen.

Es gibt Sprachen, die Klammern über die Einrückung. Was hab ich schon für amüsante Stunden in Python verbracht, wo mal per Tab, mal per Leerzeichen und dann auch mal falsch eingerückt wurde (Entwicklung mit mehreren Kollegen), und der Code sich vollkommen "unerwartet" verhalten hatte. Da habe ich mit begin..end oder wenigstens Klammern herbeigesehnt!

Sherlock

ATS3788 24. Nov 2017 18:09

AW: Delphi ist unbeliebt...angeblich
 
Also, weil ich in letzter Zeit µC programmiere muss man ein wenig C/C++ konnen und was soll ich sagen
Eclipse ist Open Source aber es hat seine Krankheiten und undefiniertes Verhalten hin und wieder.
Microsoft Visual Studio ist meiner Meinung zum vergleich mit Delphi einfach nur schlecht.
Außerdem haben die nicht so ein tolles Forum wie dieses hier. LOL:thumb:

LTE5 24. Nov 2017 18:13

AW: Delphi ist unbeliebt...angeblich
 
Zitat:

Microsoft Visual Studio ist meiner Meinung zum vergleich mit Delphi einfach nur schlecht.
Außerdem haben die nicht so ein tolles Forum wie dieses hier. LOL
Nicht Delphi hat das Forum sondern ein einziger Mann Namens Daniel, der das aus Lust, Laune, Hobby.. wie auch immer.. betreibt.
Der Vergleich, eigentlich beide, hinken also.

himitsu 27. Nov 2017 16:18

AW: Delphi ist unbeliebt...angeblich
 
"Delphi" hat ein Forum, aber .... naja :stupid:

https://forums.embarcadero.com

TBx 28. Nov 2017 08:26

AW: Delphi ist unbeliebt...angeblich
 
und es gibt da noch ein paar Männer mehr mit Foren ...
z. B.: Entwickler-Ecke und Delphi-Treff :wink:

ATS3788 30. Nov 2017 19:13

AW: Delphi ist unbeliebt...angeblich
 
Ich habe von diesem Forum geredet und kann das mit anderen Foren vergleichen,
ich habe mal eine Noop Frage bei PHP gefragt und da bekommt man als Antwort, lerne das erst richtig dannn kannst Du fragen.
Den Script habe ich hinbekommen, aber lernen wollte ich PHP deshalb nicht.

Was mich nur an Delphi stört, da hätte man was an der Syntax ändern können
zum Beispiel finde ich es toll in so vielen anderen Sprachen mit Klammer das begin{ end} zu machen,
warum hat sich da die Pascal Syntax nicht weiter Evolutioniert.
Auch die for (i = 0;i<5;i++) Syntax finde ich besser als in Pascal. Ich glaube wenn da jemand dahinter gewesen wäre um Pascal
Moderner, der Zeit anzupassen wäre Pascal auch bei den jüngeren populärer. Also Java ist doch der lezte Dreck und ich konnte mich nie dafür
begeistern.

Have a good one

Bernhard Geyer 30. Nov 2017 19:25

AW: Delphi ist unbeliebt...angeblich
 
Zitat:

Zitat von ATS3788 (Beitrag 1387644)
Was mich nur an Delphi stört, da hätte man was an der Syntax ändern können
zum Beispiel finde ich es toll in so vielen anderen Sprachen mit Klammer das begin{ end} zu machen,

Das ist Geschmacksache. Ich finde begin...end schöner. Gabs nicht auch Firmen die haben per Makro begin und end in C/C++ nachgerüstet?

Zitat:

Zitat von ATS3788 (Beitrag 1387644)
warum hat sich da die Pascal Syntax nicht weiter Evolutioniert.

Hat man doch. Generics, Anonyme Methoden, for each, ...

Zitat:

Zitat von ATS3788 (Beitrag 1387644)
Auch die for (i = 0;i<5;i++) Syntax finde ich besser als in Pascal.

Da finde ich wichtiger das es mittlerweile das for-each Konstrukt gibt.

Zitat:

Zitat von ATS3788 (Beitrag 1387644)
Ich glaube wenn da jemand dahinter gewesen wäre um Pascal Moderner, der Zeit anzupassen wäre Pascal auch bei den jüngeren populärer

Macht man doch. Zur obigen Liste auch noch ARC (auch wenn es noch nicht überall gibt), inline, Record-Konstruktoren, und vermutlich gibts bald Nullable Types.

Zitat:

Zitat von ATS3788 (Beitrag 1387644)
Also Java ist doch der lezte Dreck und ich konnte mich nie dafür begeistern.

Java ist doch nicht schlecht. Ein paar Unschönheiten hat es (Keine gute Property-Umsetzung), aber solche Dinge wie Enum-Klassen ist schon super.

samso 30. Nov 2017 20:03

AW: Delphi ist unbeliebt...angeblich
 
Zitat:

Zitat von ATS3788 (Beitrag 1387644)
Was mich nur an Delphi stört, da hätte man was an der Syntax ändern können
zum Beispiel finde ich es toll in so vielen anderen Sprachen mit Klammer das begin{ end} zu machen,
warum hat sich da die Pascal Syntax nicht weiter Evolutioniert.

Nun ja, Pascal wurde bereits 1978 weiter entwickelt. Bei Modula-2 hatte Niklaus Wirth auf das "begin" hinter "then", "do", "else" usw. verzichtet, da ja ohnehin klar ist dass hinter dem "then" ein neuer Block beginnt. Lediglich das "end" ist erforderlich um das Ende des Blocks zu kennzeichnen. Also:

Code:
     
  IF Index1 < 4 THEN (* Simple IF statement *)
         WriteString("Index1 is less than 4.");
         WriteInt(Index1,4);
         WriteLn;
  END; (* end of first IF statement *)
Im Grunde war Delphi also schon gnadenlos veraltet, als es 1994 das Licht der Welt erblickte.


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:32 Uhr.
Seite 11 von 15   « Erste     91011 1213     Letzte » 

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