Was wünscht ihr euch für Pascal Features in der Zukunft

Für sonstige Unterhaltungen, welche nicht direkt mit Lazarus zu tun haben
Antworten
Michl
Beiträge: 2505
Registriert: Di 19. Jun 2012, 12:54

Re: Was wünscht ihr euch für Pascal Features in der Zukunft

Beitrag von Michl »

marcov hat geschrieben:

Code: Alles auswählen

 
  for i in [low(x)..high(x)]-[10] do
     ...
 
Es hätte nur den Vorteil, falls 10 in der Datenmenge enthalten ist, diese als erstes geholt würde. Eine Überprüfung, ob es sich dabei um den gesuchten Wert handelt muss trotzdem gemacht werden.

Besser lesbar ist es nicht und es ist sogar bei mir noch langsamer, als wenn man einfach das komplette Array durchsucht:

Code: Alles auswählen

procedure TForm1.Button1Click(Sender: TObject);
var
  MyData: Array of Integer;
  i, j , iSearch: Integer;
  Cnt: QWord;
begin
  SetLength(MyData, 100000000);
  for i := Low(MyData) to High(MyData) do
    MyData[i] := i;
 
  iSearch := 5000000;
  Cnt := GetTickCount64;
  for j := 0 to 1000000 do
    for i in [Low(MyData)..High(MyData)]-[iSearch] do
      if i = iSearch then begin
        Break;
      end;
  Caption := IntToStr(GetTickCount64 - Cnt);
end;
 
procedure TForm1.Button2Click(Sender: TObject);
var
  MyData: Array of Integer;
  i, j , iSearch: Integer;
  Cnt: QWord;
begin
  SetLength(MyData, 100000000);
  for i := Low(MyData) to High(MyData) do
    MyData[i] := i;
 
  iSearch := 5000000;
  Cnt := GetTickCount64;
  for j := 0 to 1000000 do
    for i in [Low(MyData)..High(MyData)] do
      if i = iSearch then begin
        Break;
      end;
  Caption := IntToStr(GetTickCount64 - Cnt);
end;

Es ist aber nur ein Vorschlag/Wunsch, weil es in diesem Thread um Synatxvorschläge geht. Ich komme auch mit der bisherigen Pascal-Syntax klar :)


mschnell hat geschrieben:Nennt sich "case"
:?:

Code: Alles auswählen

type
  TLiveSelection = (lsMoney, lsChilds, lsTime);
  TLive = Array[0..1] of TLiveSelection; 

Benutzeravatar
theo
Beiträge: 10498
Registriert: Mo 11. Sep 2006, 19:01

Re: Was wünscht ihr euch für Pascal Features in der Zukunft

Beitrag von theo »

Michl hat geschrieben:Das geht aber nur für Variablen, für Properties nicht

Habe ich ja geschrieben :?: :?:

Benutzeravatar
m.fuchs
Lazarusforum e. V.
Beiträge: 2640
Registriert: Fr 22. Sep 2006, 19:32
OS, Lazarus, FPC: Winux (Lazarus 2.0.10, FPC 3.2.0)
CPU-Target: x86, x64, arm
Wohnort: Berlin
Kontaktdaten:

Re: Was wünscht ihr euch für Pascal Features in der Zukunft

Beitrag von m.fuchs »

theo hat geschrieben:

Code: Alles auswählen

procedure TForm1.Button1Click(Sender: TObject);
var a,b:String;
begin
   a:='eins';
   b:=' zwei';
   a+=b;
   Caption:=a;
end;

Da wünsche ich mir, dass so etwas verboten wird. Warum will man so einen Quark in Pascal haben?
Software, Bibliotheken, Vorträge und mehr: https://www.ypa-software.de

Michl
Beiträge: 2505
Registriert: Di 19. Jun 2012, 12:54

Re: Was wünscht ihr euch für Pascal Features in der Zukunft

Beitrag von Michl »

theo hat geschrieben:Habe ich ja geschrieben :?: :?:
Ja, das habe ich glattweg übersehen. Sorry!!! Mir ging es hauptsächlich darum, dass man das Verhalten per Projekteinstellungen beeinflussen kann. :wink:

m.fuchs hat geschrieben:Da wünsche ich mir, dass so etwas verboten wird. Warum will man so einen Quark in Pascal haben?
+1 !!! Ich finde das auch nicht unbedingt lesefreundlich.
Zuletzt geändert von Michl am Mi 23. Sep 2015, 11:39, insgesamt 1-mal geändert.

Code: Alles auswählen

type
  TLiveSelection = (lsMoney, lsChilds, lsTime);
  TLive = Array[0..1] of TLiveSelection; 

marcov
Beiträge: 1100
Registriert: Di 5. Aug 2008, 09:37
OS, Lazarus, FPC: Windows ,Linux,FreeBSD,Dos (L trunk FPC trunk)
CPU-Target: 32/64,PPC(+64), ARM
Wohnort: Eindhoven (Niederlande)

Re: Was wünscht ihr euch für Pascal Features in der Zukunft

Beitrag von marcov »

theo hat geschrieben:
sierdolg hat geschrieben:Verbundzuweisungen (compound assignments) wie u.a. auch in Delphi:



Der URL hat es ueber DWScript, nicht Delphi:

vom website hat geschrieben:Here is a highlight of recent changes on the SVN side of DWScript:


FPC macht es, aber nicht fuer properties. Ich glaube es funktioniert in C++/C# auch nur für Properties die reine Assignments sein in einer funktionaler Notation (keine Properties die Kode können haben, wie .Text und .Caption).

Also das Äquivalent von gezeigte Vorbilden funktionieren nicht eben auf C++. Was funktioniert, funktioniert schon mit FPC (aber ist IMHO meistens Typen Mikrooptimalization wie gewöhnlich). Es ist aber ein nicht so exotischer Fall, ich denke noch immer das es eine schlechte Addition zu FPC ist, aber von alle C Syntax me-too's Typen optimalization einer der wenigst Schlimmen.
Zuletzt geändert von marcov am Mi 23. Sep 2015, 11:54, insgesamt 1-mal geändert.

Benutzeravatar
theo
Beiträge: 10498
Registriert: Mo 11. Sep 2006, 19:01

Re: Was wünscht ihr euch für Pascal Features in der Zukunft

Beitrag von theo »

Michl hat geschrieben:Mir ging es hauptsächlich darum, dass man das Verhalten per Projekteinstellungen beeinflussen kann. :wink:

Da es standardmäßig eingeschaltet ist, finde ich diesen Hinweis nicht so dringend. :wink:
Außerdem hat bei mir das Abschalten keinen Effekt (Lazarus 1.5 r49866M FPC 2.6.4 x86_64-linux-gtk 2). D.h. es kompiliert trotzdem.
Man kann sich sowieso streiten, ob Syntax Features dieser Art zuschaltbar sein sollen.
Man muss sie ja nicht verwenden und wenn man Code von Dritten hat, der das verwendet, soll der dann nicht compilieren? Wozu?

mschnell
Beiträge: 3444
Registriert: Mo 11. Sep 2006, 10:24
OS, Lazarus, FPC: svn (Window32, Linux x64, Linux ARM (QNAP) (cross+nativ)
CPU-Target: X32 / X64 / ARMv5
Wohnort: Krefeld

Re: Was wünscht ihr euch für Pascal Features in der Zukunft

Beitrag von mschnell »

theo hat geschrieben:
You can not use them on functions, properties, classes,


Es wäre mit Properties u.U. schon sinnvoll,
a.x +=1; intern in a.x = a.x + 1; zu übersetzen. Das gilt auch für interne Funktionen wie
inc(a.x);

Das Problem ist aber, dass eine Propery einen Nebeneffekt haben kann, wenn eine get und/oder set - Funktion definiert ist.

Das kann dann zu arger Verwirrung führen.

Es müsste also richtigerweise eine "pure" Property für Properties definierbar sein (wie das "pure" Attribut bei einer C-Funktion), die besagt, dass beim Zugriff keine Neben-Effekte auftreten.

-Michael

Michl
Beiträge: 2505
Registriert: Di 19. Jun 2012, 12:54

Re: Was wünscht ihr euch für Pascal Features in der Zukunft

Beitrag von Michl »

theo hat geschrieben:Außerdem hat bei mir das Abschalten keinen Effekt (Lazarus 1.5 r49866M FPC 2.6.4 x86_64-linux-gtk 2). D.h. es kompiliert trotzdem.
Ja, da war noch was, jetzt wo du es sagst, fällt es mir wieder ein. Man musste die fpc.cfg ebenfalls mit anpassen, wenn man dieses Verhalten unterbinden will.

In der fpc.cfg, aus der Zeile

Code: Alles auswählen

-Sgic
einfachmachen, dann schimpft der Compiler bei C-artigen Operatoren.

Code: Alles auswählen

type
  TLiveSelection = (lsMoney, lsChilds, lsTime);
  TLive = Array[0..1] of TLiveSelection; 

Benutzeravatar
theo
Beiträge: 10498
Registriert: Mo 11. Sep 2006, 19:01

Re: Was wünscht ihr euch für Pascal Features in der Zukunft

Beitrag von theo »

Michl hat geschrieben:dann schimpft der Compiler bei C-artigen Operatoren.

OK, gut. Das hatte ich nicht auf dem Schirm.
Bleibt die Frage: wozu?
Wenn dieses Syntax Feature nun mal da ist, warum soll ich es dann abschalten? (Selbst wenn ich es nicht mag).

marcov
Beiträge: 1100
Registriert: Di 5. Aug 2008, 09:37
OS, Lazarus, FPC: Windows ,Linux,FreeBSD,Dos (L trunk FPC trunk)
CPU-Target: 32/64,PPC(+64), ARM
Wohnort: Eindhoven (Niederlande)

Re: Was wünscht ihr euch für Pascal Features in der Zukunft

Beitrag von marcov »

mschnell hat geschrieben:Das Problem ist aber, dass eine Propery einen Nebeneffekt haben kann, wenn eine get und/oder set - Funktion definiert ist.


(Und es haben von Nebeneffekte oder nicht muss man mit allein der Interface deuten können, also das funktioniert nur mit inline Methoden im Interface/Header, eben in Theorie)

Michl
Beiträge: 2505
Registriert: Di 19. Jun 2012, 12:54

Re: Was wünscht ihr euch für Pascal Features in der Zukunft

Beitrag von Michl »

theo hat geschrieben:Bleibt die Frage: wozu?
Liegt doch auf der Hand: ...um in einem Teamprojekt seine Mitarbeiter zu einem einheitlichen Stil zu nötigen!

Code: Alles auswählen

type
  TLiveSelection = (lsMoney, lsChilds, lsTime);
  TLive = Array[0..1] of TLiveSelection; 

Benutzeravatar
theo
Beiträge: 10498
Registriert: Mo 11. Sep 2006, 19:01

Re: Was wünscht ihr euch für Pascal Features in der Zukunft

Beitrag von theo »

Michl hat geschrieben:
theo hat geschrieben:Bleibt die Frage: wozu?
Liegt doch auf der Hand: ...um in einem Teamprojekt seine Mitarbeiter zu einem einheitlichen Stil zu nötigen!

Achso, ich dachte das macht man mit Kaffeeentzug oder damit, Reißzwecken auf den Stuhl legen. :mrgreen:

Michl
Beiträge: 2505
Registriert: Di 19. Jun 2012, 12:54

Re: Was wünscht ihr euch für Pascal Features in der Zukunft

Beitrag von Michl »

:lol: ...wobei das bei zarten Mitarbeitern vielleicht schon als Mobbing betrachtet wird...

Code: Alles auswählen

type
  TLiveSelection = (lsMoney, lsChilds, lsTime);
  TLive = Array[0..1] of TLiveSelection; 

Frank Ranis
Beiträge: 201
Registriert: Do 24. Jan 2013, 21:22

Re: Was wünscht ihr euch für Pascal Features in der Zukunft

Beitrag von Frank Ranis »

Hallo ,

was ich mir wünschen würde , betrifft die Laz-Oberfläche und das Hilfesystem.

Ich finde es schon mal gut , das wenn ich mit der Maus auf einem Objekt stehe (z.B. im Quelltext oder im Objektinspektor) ein HINT-Fenster aufgemacht wird in dem Infos stehen.

Es wäre nun total genial , wenn ich die Maus in das HINT-Fenster führe und per Recht-Klick einen Auswahl-Punkt hätte (Hilfe editieren).
Ebenso in der InfoBox des Objektinspektors.
Darauf hin sollte sich dann eine Dokument (OpenOffice oder wer weis was) mit den derzeitigen Informationen öffnen.

Hier pack ich dann neue Infos rein (z.B. Kurze Demo-Quelltexte , Beschreibungen, am besten auch noch Bilder) und speicher das dann (am Ursprungsort) ab.
Sämtliche geänderten Help-Files sollten dann auch automatisch in einem separaten Ordner gesammelt werden, den man dann an zuständige Kollegen (keine Ahnung wer zuständig ist) senden kann , zur Einbindung in eine der nächsten Laz-Versionen.

Durch das derzeitige Hilfesystem bin ich leider noch nicht durchgestiegen, wüßte also auch nicht , wie man da aktiv mitwirken könnte.
Das ist für mich alles sehr verworren und undurchsichtig.
Auf welche Art und Weise sucht das Laz nach Hilfe-Informationen?

Einen ähnlichen Wunsch hätte ich für die CHM-Offline-Hilfe.
Ich steh z.B. im Quelltext mit der Maus auf TForm und drücke F1 , die CHM-Hilfe macht auf und ich bekommen nun recht magere Informationen.
Ich bin nicht in der Lage den angezeigten Text, ohne eine Studium, zu erweitern .
Gäbe es auch hier ein Rechts-Klick (Editieren) könne ich meinen Senf dazu schreiben , abspeichern (automatisch im separaten Ordner sammeln) und für die Allgemeinheit hochladen.

Dann eine weitere Unsicherheit.
Würde es nun eine einfache Möglichkeit geben , die Hilfe zu erweitern, steht da noch die Sprachhürde im Raum, mein Englisch ist wirklich megaschlecht.
Es scheint bei der Lazarus-Offline-Hilfe nur Englisch zu geben .
Wäre es denn verboten , da auch was in Deutsch dazu zu schreiben , oder kann man auch eine Sprachliche Trennung realisieren.
In der Wiki(deutsch) findet man ja auch häufiger mal ein Sprachenmischmasch vor , aber immer noch besser als gar keine Informationen.

Gruß

Frank
www.flz-vortex.de

BeniBela
Beiträge: 309
Registriert: Sa 21. Mär 2009, 17:31
OS, Lazarus, FPC: Linux (Lazarus SVN, FPC 2.4)
CPU-Target: 64 Bit

Re: Was wünscht ihr euch für Pascal Features in der Zukunft

Beitrag von BeniBela »

marcov hat geschrieben:
Ja, und wie wurdest du das Lösen? Also das Ende eines Linie soll keine Bedeutung haben, und ist Äquivalent zu eine Spalte.


Da stellt sich dann die Frage, warum es keine multiline strings gibt...

Irgendeine besondere Bedeutung hat es wohl schon

Antworten