Syntaxerweiterung von Pascal

Für Fragen zur Programmiersprache auf welcher Lazarus aufbaut

Re: Syntaxerweiterung von Pascal

Beitragvon braunbär » 19. Jun 2017, 15:34 Re: Syntaxerweiterung von Pascal

mse hat geschrieben: ein sicheres "with" Statement ist nicht aufsehenerregend genug um implementiert zu werden

"nicht aufsehenerregend" ist schon richtig, aber der Aufwand, um das umzusetzen, wäre minimal, und zwar noch um einiges geringer als das wenige Aufsehen. :D

Die Frage ist zwar off topic, aber was du gegen Generics einzuwenden hast, erschließt sich mir auch nicht. Ich bin der Meinung, dass eine Programmiersprache dem Programmierer seine Arbeit so einfach wie möglich machen sollte, ein sicheres with-Statement trägt dazu genau so bei, wie Generics dazu beitragen.

m.fuchs hat geschrieben:Und deswegen widerspreche ich dir: es ist eben häufig der Fall, dass eine kurze Prozedur/Funktion auch lesbarer ist.

Das habe ich nicht bestritten. Aber es ist auch häufig der Fall, dass das Auslagern von Programmzeilen in Unterprogramme nichts zur Lesbarkeit beiträgt.

m.fuchs hat geschrieben:Wie gesagt: heutzutage wird objektorientiert entwickelt.

Ja. Man kann es aber auch übertreiben.

m.fuchs hat geschrieben:Ich habe noch immer nicht verstanden was der Vorteil sein soll, das reicht mir erst mal als Gegenargument.

Wenn du nicht verstehst, worin der Vorteil besteht, aus einem unsicheren Sprachkonstrukt ein sicheres zu machen (statt zu sagen: das Konstrukt gibt es, aber verwendet es bitte nicht), kann ich dir nicht helfen.

m.fuchs hat geschrieben:Wenn eine Verbesserung des with-Blocks nötig ist, würde ich einfach folgendes vorschlagen: ...

With Blöcke können verschachtelt sein und es können in einem with-Statement mehrere Objekte angesprochen werden: "with Object1, Object2 do ...". Da bleibt der Code dann genauso schlecht lesbar wie jetzt, und vor allem ist es dann immer noch möglich, dass eine Typveränderung an einer anderen Stelle im Programm das Verhalten des with-Blocks unbemerkt verändert..

m.fuchs hat geschrieben:Es gibt übrigens auch Goto in Pascal. Nimmt ja auch kein geistig gesunder Mensch mehr heutzutage.

Es scheint eine Manie von dir zu sein, mit Beleidigungen herum zu werfen. Manchmal (selten, aber eben doch in manchen Sonderfällen) ist ein goto deutlich lesbarer als abenteuerliche Konstrukte mit unnötigen boolean Variablen, die kreuz und quer gesetzt und abgefragt werden - speziell wenn man verschachtelte Schleifen verlassen muss.

m.fuchs hat geschrieben:Für deinen zweiten Vorschlag Zuweisungen in Teilexpressions habe ich nicht einmal eine Alternativlösung. Das ist einfach nur unleserlich und bringt überhaupt keine Vorteile.

Es bringt in manchen Fällen deutlich kompakteren Code (siehe das while Beispiel im Eingangspost). Und was soll daran unleserlich sein?

marcov hat geschrieben:Ich bin es darüber noch immer mit mein Professor einig; man darf goto nutzen, man muss nur ein 1 A4 Seite Aufsatz über warum es unbedingt nötig ist schreiben.

Unbedingt nötig ist es nie, aber es gibt Fälle, in denen es besser (also kürzer und besser lesbar) ist als alle goto-freien Alternativen.
Zuletzt geändert von braunbär am 19. Jun 2017, 15:42, insgesamt 1-mal geändert.
braunbär
 
Beiträge: 162
Registriert: 8. Jun 2017, 17:21

Beitragvon mse » 19. Jun 2017, 15:40 Re: Syntaxerweiterung von Pascal

Das verpönte "goto" richtig angewendet ist sinnvoll und manchmal die beste und eleganteste Lösung. Auf jeden Fall ist es besser als "exit" welches man beim überfliegen des codes sehr leicht übersehen kann. Bei "goto" gibt es eine "label" Vereinbarung zu Beginn der Prozedure und ein Ziellabel am linken Rand welches man leicht findet. Nicht alles was für viele Programmierer in Stein gemeisselt ist hält einer kritischen Hinterfragung stand.
mse
 
Beiträge: 1638
Registriert: 16. Okt 2008, 09:22
OS, Lazarus, FPC: Linux,Windows,FreeBSD,(MSEide+MSEgui 4.4.2,git master FPC 3.0,fixes_3_0) | 
CPU-Target: x86,x64,ARM
Nach oben

Beitragvon mse » 19. Jun 2017, 17:02 Re: Syntaxerweiterung von Pascal

braunbär hat geschrieben:Die Frage ist zwar off topic, aber was du gegen Generics einzuwenden hast, erschließt sich mir auch nicht.

Der Nutzen ist klein, der Aufwand im Compiler gross und der Sprachumfang wird beträchtlich ausgeweitet. Generics dienen haupsächlich dazu den Toolkit-Machern das Leben zu erleichtern und die sind harte Arbeit gewohnt. ;-)
mse
 
Beiträge: 1638
Registriert: 16. Okt 2008, 09:22
OS, Lazarus, FPC: Linux,Windows,FreeBSD,(MSEide+MSEgui 4.4.2,git master FPC 3.0,fixes_3_0) | 
CPU-Target: x86,x64,ARM
Nach oben

Beitragvon m.fuchs » 19. Jun 2017, 17:07 Re: Syntaxerweiterung von Pascal

braunbär hat geschrieben:
m.fuchs hat geschrieben:Wenn eine Verbesserung des with-Blocks nötig ist, würde ich einfach folgendes vorschlagen: ...

With Blöcke können verschachtelt sein und es können in einem with-Statement mehrere Objekte angesprochen werden: "with Object1, Object2 do ...". Da bleibt der Code dann genauso schlecht lesbar wie jetzt, und vor allem ist es dann immer noch möglich, dass eine Typveränderung an einer anderen Stelle im Programm das Verhalten des with-Blocks unbemerkt verändert..

Und jetzt merkst du hoffentlich langsam, warum with keine gute Idee ist. Wenn du diese Blöcke verschachtelst oder eben mehrere Variablen ansprichst dann steigt die lesende Komplexität. Sorry, das nichts mehr mit sauberen Quellcode zu tun. Zu was das führt sehen wir bei jeder neuen Sicherheitslücke.

braunbär hat geschrieben:
m.fuchs hat geschrieben:Es gibt übrigens auch Goto in Pascal. Nimmt ja auch kein geistig gesunder Mensch mehr heutzutage.

Es scheint eine Manie von dir zu sein, mit Beleidigungen herum zu werfen.

Hm, geistig nicht gesund ist in deinen Augen eine Beleidigung. Interessantes Menschenbild.

braunbär hat geschrieben:Manchmal (selten, aber eben doch in manchen Sonderfällen) ist ein goto deutlich lesbarer als abenteuerliche Konstrukte mit unnötigen boolean Variablen, die kreuz und quer gesetzt und abgefragt werden - speziell wenn man verschachtelte Schleifen verlassen muss.

Na für diese sehr seltenen Fälle, könnte der Entwickler ja dann diese besagt A4-seitige Begründung schreiben.
@marcov: Diese Variante des Goto-Einschränkens gefällt mir sehr gut.

braunbär hat geschrieben:
m.fuchs hat geschrieben:Für deinen zweiten Vorschlag Zuweisungen in Teilexpressions habe ich nicht einmal eine Alternativlösung. Das ist einfach nur unleserlich und bringt überhaupt keine Vorteile.

Es bringt in manchen Fällen deutlich kompakteren Code (siehe das while Beispiel im Eingangspost). Und was soll daran unleserlich sein?

Dann wiederhole ich meine Empfehlung (die übrigens nicht aggressiv gemeint ist): Wenn du kompakten Code schreiben willst solltest du zu einer entsprechenden Sprache wechseln. Pascal zeichnet ja gerade aus, dass es etwas weitschweifiger und dafür lesbarer ist.
Was an deinem Beispiel unleserlich ist? Du machst mehrere Dinge in einer Zeile, das ist unnötig. Jede zusätzliche Aktion erfordert zusätzlichen Lese- und Verständnisaufwand.

braunbär hat geschrieben:
marcov hat geschrieben:Ich bin es darüber noch immer mit mein Professor einig; man darf goto nutzen, man muss nur ein 1 A4 Seite Aufsatz über warum es unbedingt nötig ist schreiben.

Unbedingt nötig ist es nie, aber es gibt Fälle, in denen es besser (also kürzer und besser lesbar) ist als alle goto-freien Alternativen.

Zeig doch mal ein Beispiel.
Software, Bibliotheken, Vorträge und mehr: https://www.ypa-software.de
m.fuchs
 
Beiträge: 1634
Registriert: 22. Sep 2006, 18:32
Wohnort: Berlin
OS, Lazarus, FPC: Winux (L 1.6, FPC 3.0) | 
CPU-Target: x86, x64, arm
Nach oben

Beitragvon m.fuchs » 19. Jun 2017, 17:08 Re: Syntaxerweiterung von Pascal

mse hat geschrieben:Generics dienen haupsächlich dazu den Toolkit-Machern das Leben zu erleichtern und die sind harte Arbeit gewohnt. ;-)

Und allen Menschen die ihre Datenhaltung per OOP erledigen. Es geht kaum leichter sich typensichere Listenklassen zu machen.
Software, Bibliotheken, Vorträge und mehr: https://www.ypa-software.de
m.fuchs
 
Beiträge: 1634
Registriert: 22. Sep 2006, 18:32
Wohnort: Berlin
OS, Lazarus, FPC: Winux (L 1.6, FPC 3.0) | 
CPU-Target: x86, x64, arm
Nach oben

Beitragvon braunbär » 19. Jun 2017, 23:30 Re: Syntaxerweiterung von Pascal

m.fuchs hat geschrieben:Und jetzt merkst du hoffentlich langsam, warum with keine gute Idee ist. Wenn du diese Blöcke verschachtelst oder eben mehrere Variablen ansprichst dann steigt die lesende Komplexität.

Es gibt Aufgabenstellungen, die etwas komplexer sind. Dem kannst du auch nicht ausweichen, indem du kein with verwendest. Wenn du bei einer Aktion mehrere Objekte ansprechen musst, ist die with-Version, die ich vorgeschlagen habe, sogar die lesbarste Lösung. Und mit dem Thema "sauberer Quellcode" hat die ganze Frage in der Tat überhaupt nichts zu tun.

m.fuchs hat geschrieben:Hm, geistig nicht gesund ist in deinen Augen eine Beleidigung. Interessantes Menschenbild.

Ja, es ist eine Beleidigung, geistig völlig gesunde Menschen als geistig nicht gesund zu bezeichnen. Was soll es denn sonst sein? Und die Verwendung von goto hat nichts mit geistiger Gesundheit zu tun. Nicht einmal Leuten, die abstruse Code-Konstrukte bilden, um krampfhaft jedes goto zu vemeiden, würde ich deshalb die geistige Gesundheit absprechen.

m.fuchs hat geschrieben:Na für diese sehr seltenen Fälle, könnte der Entwickler ja dann diese besagt A4-seitige Begründung schreiben.

Wozu? Um goto-Phobiker zu beruhigen?

m.fuchs hat geschrieben:Was an deinem Beispiel unleserlich ist? Du machst mehrere Dinge in einer Zeile, das ist unnötig. Jede zusätzliche Aktion erfordert zusätzlichen Lese- und Verständnisaufwand.

Ob die Aktion in einer oder auf zwei Teilen aufgeteilt da steht, ändert nicht wirklich etwas am Lese- und Verständnisaufwand. Es ist allerdings ein Feature, an das man sich gewöhnen müsste. Das gilt aber für so ziemlich alle Features, die in einer Programiersprache neu eingeführt werden.

m.fuchs hat geschrieben:Dann wiederhole ich meine Empfehlung (die übrigens nicht aggressiv gemeint ist): Wenn du kompakten Code schreiben willst solltest du zu einer entsprechenden Sprache wechseln. Pascal zeichnet ja gerade aus, dass es etwas weitschweifiger und dafür lesbarer ist.

Lesbarer als C ist Pascal ohne jede Frage, allerdings nicht wegen der "Weitschweifigkeit", sondern weil die Konstrukte näher an natürlichen Sprachen angelehnt sind. Weitschweifigkeit ist nicht per se ein Vorteil.

m.fuchs hat geschrieben:
mse hat geschrieben:Generics dienen haupsächlich dazu den Toolkit-Machern das Leben zu erleichtern und die sind harte Arbeit gewohnt. ;-)

Und allen Menschen die ihre Datenhaltung per OOP erledigen. Es geht kaum leichter sich typensichere Listenklassen zu machen.

Ja, das sehe ich im Prinzip auch so. Ich habe mir etwas auf die Art von Generics schon gewünscht, wie es das noch in keiner gängigen Programmiersprache gegeben hat. Das hat eigentlich nicht einmal unmittelbar mit OOP zu tun. Der Zusatzaufwand zur Laufzeit, den Generics erfordern, ist meines Erachtens marginal und vernachlässigbar. Und auch für die, die die Compiler programmieren müssen, sollte diese zusätzliche Herausforderung zu bewältigen sein.
braunbär
 
Beiträge: 162
Registriert: 8. Jun 2017, 17:21

Beitragvon m.fuchs » 20. Jun 2017, 07:25 Re: Syntaxerweiterung von Pascal

braunbär hat geschrieben:Es gibt Aufgabenstellungen, die etwas komplexer sind. Dem kannst du auch nicht ausweichen, indem du kein with verwendest.

Es gibt unglaublich komplexe Aufgabenstellung. Mir fällt bloß nicht eine ein, die ein with erfordert.

braunbär hat geschrieben:Und mit dem Thema "sauberer Quellcode" hat die ganze Frage in der Tat überhaupt nichts zu tun.

Tja, das ist aber häufig ein sehr wichtiges Thema.

braunbär hat geschrieben:Nicht einmal Leuten, die abstruse Code-Konstrukte bilden, um krampfhaft jedes goto zu vemeiden, würde ich deshalb die geistige Gesundheit absprechen.
m.fuchs hat geschrieben:Na für diese sehr seltenen Fälle, könnte der Entwickler ja dann diese besagt A4-seitige Begründung schreiben.

Wozu? Um goto-Phobiker zu beruhigen?

Witzig, du behauptest Goto-Vermeidern nicht die geistige Gesundheit abzusprechen, tust es aber dann im nächsten Abschnitt doch. Ist alles gar nicht so einfach?

Um deine Frage zu beantworten: Das sollte man machen, damit man sich Gedanken darüber macht ob diese Konstruktion wirklich notwendig ist. In der Zeit, in der man darüber nachdenkt kommt man häufig zu besseren (lesbaren) Lösungen.

braunbär hat geschrieben:
m.fuchs hat geschrieben:Was an deinem Beispiel unleserlich ist? Du machst mehrere Dinge in einer Zeile, das ist unnötig. Jede zusätzliche Aktion erfordert zusätzlichen Lese- und Verständnisaufwand.

Ob die Aktion in einer oder auf zwei Teilen aufgeteilt da steht, ändert nicht wirklich etwas am Lese- und Verständnisaufwand.

Doch natürlich ändert das was. Oder schreibst du deine Programme Semikolon-getrennt in eine Zeile? Würde gehen und spart Zeilen.

braunbär hat geschrieben:Es ist allerdings ein Feature, an das man sich gewöhnen müsste. Das gilt aber für so ziemlich alle Features, die in einer Programiersprache neu eingeführt werden.

Das ist klar, aber ein Feature was die Lesbarkeit verringert wird nicht auf große Begeisterung stoßen. Aber es ist ja recht einfach, du kannst ja einen Feature-Request aufmachen und einen Patch einreichen. Vielleicht sehen die Kern-Entwickler das auch ganz anders als ich und übernehmen diese Erweiterung.

braunbär hat geschrieben:
m.fuchs hat geschrieben:Dann wiederhole ich meine Empfehlung (die übrigens nicht aggressiv gemeint ist): Wenn du kompakten Code schreiben willst solltest du zu einer entsprechenden Sprache wechseln. Pascal zeichnet ja gerade aus, dass es etwas weitschweifiger und dafür lesbarer ist.

Lesbarer als C ist Pascal ohne jede Frage, allerdings nicht wegen der "Weitschweifigkeit", sondern weil die Konstrukte näher an natürlichen Sprachen angelehnt sind. Weitschweifigkeit ist nicht per se ein Vorteil.
Das macht die Weitschweifigkeit doch aus. Natürliche Worte wie begin und end sind halt länger als krude Klammer-Konstrukte.

braunbär hat geschrieben:Der Zusatzaufwand zur Laufzeit, den Generics erfordern, ist meines Erachtens marginal und vernachlässigbar.

Hm, da bin ich mir nicht einmal sicher ob zur Laufzeit Zusatzaufwand entsteht. @marcov: Kannst du dazu etwas sagen?

Zum Schluss noch eine Frage um meine Neugier bei dem Thema zu befriedigen (ist weder abwertend noch aggressiv gemeint): Ich vermute mal du programmierst beruflich. Ist das ein großes Unternehmen? Hast du da ein Entwicklungsteam mit dem du gemeinsam an dem Code arbeitest oder bist du als Einzelkämpfer unterwegs?
Software, Bibliotheken, Vorträge und mehr: https://www.ypa-software.de
m.fuchs
 
Beiträge: 1634
Registriert: 22. Sep 2006, 18:32
Wohnort: Berlin
OS, Lazarus, FPC: Winux (L 1.6, FPC 3.0) | 
CPU-Target: x86, x64, arm
Nach oben

Beitragvon mschnell » 20. Jun 2017, 09:03 Re: Syntaxerweiterung von Pascal

braunbär hat geschrieben: Manchmal (selten, aber eben doch in manchen Sonderfällen) ist ein goto deutlich lesbarer als abenteuerliche Konstrukte mit unnötigen boolean Variablen, die kreuz und quer gesetzt und abgefragt werden - speziell wenn man verschachtelte Schleifen verlassen muss.

Eine "sicherere" Konstruktion wäre es, die Schleifen zu benennen und explizit verlassen zu können.

Wenn wir schon rumspinnen....

Code: Alles auswählen
loop1: for.... begin
  for .... begin
    if ... then break loop1;
    if ... then continue  loop1;
  end;
end;
 


-Michael
mschnell
 
Beiträge: 3150
Registriert: 11. Sep 2006, 09:24
Wohnort: Krefeld
OS, Lazarus, FPC: svn (Window32, Linux x64, Linux ARM (QNAP) (cross+nativ) | 
CPU-Target: X32 / X64 / ARMv5
Nach oben

Beitragvon braunbär » 20. Jun 2017, 11:49 Re: Syntaxerweiterung von Pascal

mschnell hat geschrieben:Eine "sicherere" Konstruktion wäre es, die Schleifen zu benennen und explizit verlassen zu können.

Ja, damit würden FAST alle derzeit sinnvollen Goto-Befehle überflüssig. Ich würde auch eine Spracherweiterung in der Richtung befürworten.

m.fuchs hat geschrieben:Es gibt unglaublich komplexe Aufgabenstellung. Mir fällt bloß nicht eine ein, die ein with erfordert.

Es gibt auch keine, die Pascal erfordert. Lässt sich alles in Assembler machen.

m.fuchs hat geschrieben:
Und mit dem Thema "sauberer Quellcode" hat die ganze Frage in der Tat überhaupt nichts zu tun.

Tja, das ist aber häufig ein sehr wichtiges Thema.

Dass es ein "wichtiges" Thema ist, ändert nichts daran, dass es mit dem Thema "with" nichts zu tun hat. Oder nur insofern, als mein Vorschlag aus dem derzeit unsauberen with ein sauberes with machen würde.

m.fuchs hat geschrieben:Witzig, du behauptest Goto-Vermeidern nicht die geistige Gesundheit abzusprechen, tust es aber dann im nächsten Abschnitt doch. Ist alles gar nicht so einfach?

Auch wegen einer harmlosen Phobie würde ich niemand die geistige Gesundheit absprechen. So ziemlich jeder hat irgend etwas, was ihm grundlos Angst macht. Meine Freundin hat panische Angst vorm Zahnarzt. Das hat nichts mit geistiger Gesundheit zu tun.

m.fuchs hat geschrieben:Um deine Frage zu beantworten: Das sollte man machen, damit man sich Gedanken darüber macht ob diese Konstruktion wirklich notwendig ist. In der Zeit, in der man darüber nachdenkt kommt man häufig zu besseren (lesbaren) Lösungen.

Ich programmiere seit über 40 Jahren, professionell und in den unterschiedlichsten Sprachen. Ich brauche mir keine Gedanken darüber zu machen, ob eine Konstruktion "wirklich notwendig" ist, sondern ich setze an jeder Stelle eines Programms die bestmögliche Konstruktion ein, die die Sprache bietet. Manchmal, eher selten, ist das ein goto.

m.fuchs hat geschrieben:Doch natürlich ändert das was. Oder schreibst du deine Programme Semikolon-getrennt in eine Zeile? Würde gehen und spart Zeilen.

Manche inhaltlich zusammengehörige Zuweisungen schreibe ich durchaus in eine Zeile, wie z.B. x:=0; y:=0;
Wenn jemand Probleme damit hat, das zu lesen - zurück in die Grundschule...

m.fuchs hat geschrieben:Zum Schluss noch eine Frage um meine Neugier bei dem Thema zu befriedigen (ist weder abwertend noch aggressiv gemeint): Ich vermute mal du programmierst beruflich. Ist das ein großes Unternehmen? Hast du da ein Entwicklungsteam mit dem du gemeinsam an dem Code arbeitest oder bist du als Einzelkämpfer unterwegs?

Ich hatte lange Zeit eine kleine Computerfirma mit 5-7 fest angestellten Programmierern und ca 10 wechselnden freien Mitarbeitern. War natürlich kein "großes Unternehmen". Ich sehe auch durchaus, dass man hinsichtlich formaler Vorgaben für die Programmierer umso strikter werden muss, je mehr Leute mitmischen. Aber so viel ich weiß, ist ja der Einsatz von Free Pascal nicht auf Groß-EDV-Abteilungen mit >100 Programmierern beschränkt. Wenn die die Verwendung gewisser Sprachfeatures ausschließen wollen, weil sie meinen, dass ihnen das in irgend einer Weise zu besseren Code verhilft - jeder wie er glaubt. Das heißt aber nicht, dass die Sprache solche bei vernünftiger Verwendung sinnvolle Features für die, die sie verwenden wollen, nicht bieten soll. Wenn jemand sagt "brauch ich nicht", ist das natürlich zu akzeptieren, das ist aber kein Argument gegen ein Sprachfeature.
braunbär
 
Beiträge: 162
Registriert: 8. Jun 2017, 17:21

Beitragvon m.fuchs » 20. Jun 2017, 12:23 Re: Syntaxerweiterung von Pascal

braunbär hat geschrieben:
m.fuchs hat geschrieben:Witzig, du behauptest Goto-Vermeidern nicht die geistige Gesundheit abzusprechen, tust es aber dann im nächsten Abschnitt doch. Ist alles gar nicht so einfach?

Auch wegen einer harmlosen Phobie würde ich niemand die geistige Gesundheit absprechen.

https://de.wikipedia.org/wiki/Angstst%C3%B6rung

braunbär hat geschrieben:Ich programmiere seit über 40 Jahren, professionell und in den unterschiedlichsten Sprachen. Ich brauche mir keine Gedanken darüber zu machen, ob eine Konstruktion "wirklich notwendig" ist, sondern ich setze an jeder Stelle eines Programms die bestmögliche Konstruktion ein, die die Sprache bietet.

Ach so, das klassische "das habe ich schon immer so gemacht". Ich sehe, ich werde dir meine Ansichten nicht näher bringen können, allerdings habe ich auch bloß 28 Jahre Erfahrung.

braunbär hat geschrieben:Manche inhaltlich zusammengehörige Zuweisungen schreibe ich durchaus in eine Zeile, wie z.B. x:=0; y:=0;

Was durchaus leicht lesbar ist, dein ursprüngliches Konstrukt ist es nicht.

braunbär hat geschrieben:Ich hatte lange Zeit eine kleine Computerfirma mit 5-7 fest angestellten Programmierern und ca 10 wechselnden freien Mitarbeitern. War natürlich kein "großes Unternehmen".

Naja, im Vergleich zu einer Ein-Mann-Bude ist das schon groß. Auch Firmen mit tausenden Mitarbeitern bilden ja kleinere Teams in vergleichbarer Größenordnung.

braunbär hat geschrieben:Ich sehe auch durchaus, dass man hinsichtlich formaler Vorgaben für die Programmierer umso strikter werden muss, je mehr Leute mitmischen. Aber so viel ich weiß, ist ja der Einsatz von Free Pascal nicht auf Groß-EDV-Abteilungen mit >100 Programmierern beschränkt. Wenn die die Verwendung gewisser Sprachfeatures ausschließen wollen, weil sie meinen, dass ihnen das in irgend einer Weise zu besseren Code verhilft - jeder wie er glaubt.

Richtlinien gibt es schon bei zwei Personen, sinnvoll ist es auch schon bei einer.

braunbär hat geschrieben:Das heißt aber nicht, dass die Sprache solche bei vernünftiger Verwendung sinnvolle Features für die, die sie verwenden wollen, nicht bieten soll. Wenn jemand sagt "brauch ich nicht", ist das natürlich zu akzeptieren, das ist aber kein Argument gegen ein Sprachfeature.

Der Weg ist ein umgekehrter. Du musst ja überzeugen warum du ein bestimmtes Feature haben willst. Aus dem Grund hast du doch die ursprüngliche Anfrage gestellt? Ich denke die Argumente sind hier auch erschöpfend genannt worden. Jetzt wäre dann der Weg Featurerequest und Patch einzureichen. Mal sehen was die Entwickler daraus machen.
Software, Bibliotheken, Vorträge und mehr: https://www.ypa-software.de
m.fuchs
 
Beiträge: 1634
Registriert: 22. Sep 2006, 18:32
Wohnort: Berlin
OS, Lazarus, FPC: Winux (L 1.6, FPC 3.0) | 
CPU-Target: x86, x64, arm
Nach oben

Beitragvon wp_xyz » 20. Jun 2017, 13:02 Re: Syntaxerweiterung von Pascal

braunbär hat geschrieben:1. "with x:=object do" alternativ zu "with object do" - wobei x nicht extra an anderer Stelle deklariert werden müsste und der Gültigkeitsbereich sich auf den with-Block beschränken würde - würde die Probleme, die mit dem with-Statement in seiner jetzigen Form verbunden sind, auf einfache und elegante Art lösen.
2. Zuweisungen sollten generell als Teilexpressions erlaubt sein. Dann wären Konstrukte möglich wie: "while (l:=length(s)) < 10 do insert('x',s,l div 2)"

Das ist eine nutzlose Diskussion, die wie eine Stammtischrunde vielleicht Spaß macht, weil die die Kontrahenden so schön aufeinander losgehen, aber letztendlich nichts bringt. Das hier ist das falsche Forum für eine solche Diskussion. Braunbär, wenn du ernsthaft diese Features in der Sprache haben willst, musst du dich an der fpc-devel-MailingList (http://lists.freepascal.org/cgi-bin/mai ... /fpc-devel) anmelden und deinen Vorschlag dort einreichen und direkt mit den FPC-Entwicklern diskutieren. Alles andere ist Zeitverschwendung und führt über ein "hätt-ich-tät-ich-wär-ich" nicht hinaus.

Meine persönliche Meinung als Komponentenentwickler ist, dass ich sowas nie einsetzen werde, weil es den User mit älteren FPC-Versionen ausschließt, die gerade in der Linux-Welt gang und gäbe sind.
wp_xyz
 
Beiträge: 2186
Registriert: 8. Apr 2011, 08:01

Beitragvon Michl » 20. Jun 2017, 13:03 Re: Syntaxerweiterung von Pascal

m.fuchs hat geschrieben:Ich denke die Argumente sind hier auch erschöpfend genannt worden. Jetzt wäre dann der Weg Featurerequest und Patch einzureichen. Mal sehen was die Entwickler daraus machen.
Ich nutze zumeist kein "with", daher wäre das Feature mir eigentlich egal. Ein sauberes "with" wäre sicherlich sinnvoll, nur glaube ich nicht, daß es implementiert wird, hauptsächlich deshalb, weil es das so in Delphi nicht gibt.

Idealerweise führt Delphi dieses ein, wenn es einmal vorhanden ist, wird das Freepascal Team sicher folgen. Blöd wäre es, wenn Freepascal sich allein dafür entscheidet und später Embarcadero (oder wer auch immer) dies in Delphi einpflegt und man zwei verschiedene Syntaxen hat.

Delphi-Compatibilität ist für Freepascal/Lazarus sehr wichtig (um den Code-Portierungsaufwand so gering wie möglich zu halten). Weiß nicht, ob Martin Schreiber diesen Syntax so in seinem Produkt einpflegen will? Es gibt auch noch NewPascal, Codetyphon (Forks von FreePascal/Lazarus), vielleicht haben sie Interesse?
Code: Alles auswählen
type
  TLiveSelection = (lsMoney, lsChilds, lsTime);
  TLive = Array[0..1] of TLiveSelection; 
Michl
 
Beiträge: 2168
Registriert: 19. Jun 2012, 11:54
OS, Lazarus, FPC: Win7 Laz 1.7 Trunk FPC 3.1.1 Trunk | 
CPU-Target: 32Bit/64bit
Nach oben

Beitragvon braunbär » 20. Jun 2017, 13:59 Re: Syntaxerweiterung von Pascal

wp_xyz hat geschrieben:Braunbär, wenn du ernsthaft diese Features in der Sprache haben willst, musst du dich an der fpc-devel-MailingList (http://lists.freepascal.org/cgi-bin/mai ... /fpc-devel) anmelden und deinen Vorschlag dort einreichen

Ich habe mich jetzt bei der Mailing Liste angemeldet und werde mir das erst einmal anschauen.

m.fuchs hat geschrieben:Ach so, das klassische "das habe ich schon immer so gemacht".

Nein.

m.fuchs hat geschrieben:Was durchaus leicht lesbar ist, dein ursprüngliches Konstrukt ist es nicht.

Es ist, wie vieles andere, natürlich auch eine Frage der Gewohnheit.

wp_xyz hat geschrieben:Meine persönliche Meinung als Komponentenentwickler ist, dass ich sowas nie einsetzen werde, weil es den User mit älteren FPC-Versionen ausschließt, die gerade in der Linux-Welt gang und gäbe sind.

Wenn du auf Abwärtskompatibilität Bedacht nehmen musst, kannst du prinzipiell überhaupt keine neuen Features einsetzen.
Wobei mir eigentlich keine Gründe dafür einfallen, dass jemand nicht auf die neueste Compilerversion von FPC umsteigen wollen würde (vorausgesetzt, die ist stabil und abwärtskompatibel). Im Gegensatz zu Delphi ist ja nicht jeder Versionswechsel mit Kosten verbunden.
braunbär
 
Beiträge: 162
Registriert: 8. Jun 2017, 17:21

Beitragvon Thandor » 21. Jun 2017, 07:27 Re: Syntaxerweiterung von Pascal

Die Linux-Distributionen hängen mit ihrer Paketverwaltung teilweise stark hinterher, was die Aktualität der FreePascal und Lazarus-Versionen angeht.
Thandor
 
Beiträge: 101
Registriert: 30. Jan 2010, 18:17
Wohnort: Berlin
OS, Lazarus, FPC: Windows 10 64Bit/ lazarus 1.6 mit FPC 3.0.0 (32Bit) | 
CPU-Target: 64Bit
Nach oben

Beitragvon Timm Thaler » 21. Jun 2017, 12:50 Re: Syntaxerweiterung von Pascal

Thandor hat geschrieben:Die Linux-Distributionen hängen mit ihrer Paketverwaltung teilweise stark hinterher, was die Aktualität der FreePascal und Lazarus-Versionen angeht.


Auf dem Raspberry in Jessie ist es immer noch FPC 2.6.4 mit Lazarus 1.2.4.

Es gibt ein Script, welches die aktuelle Version installiert, aber das hat mir beim letzten Mal dev, bin und lib einfach ins Homeverzeichnis gekübelt statt ins root. Und ich hatte noch keine Lust, das nochmal zu machen, weil das Script 45min braucht um durchzulaufen und ich vorher alles von Hand aufräumen muss.

Unter Windows: Programm in aktueller Version downloaden, Programm installieren, Programm benutzen. Ich kann echt nicht nachvollziehen, was die Leute an veralteten Repos so toll finden.
Timm Thaler
 
Beiträge: 361
Registriert: 20. Mär 2016, 22:14
OS, Lazarus, FPC: Win7-64bit Laz1.6 FPC3.0.0, Raspbian Jessie Laz1.6 FPC3.0.0 | 
CPU-Target: Raspberry Pi 3
Nach oben

» Weitere Beiträge siehe nächste Seite »
VorherigeNächste

Zurück zu Freepascal



Wer ist online?

Mitglieder in diesem Forum: Baidu [Spider] und 3 Gäste

porpoises-institution
accuracy-worried