Was wünscht ihr euch für Pascal Features in der Zukunft
-
- Beiträge: 207
- Registriert: Do 15. Nov 2012, 19:13
- OS, Lazarus, FPC: Windows 10, Manjaro Linux, Lazarus 1.6.4 (32/64 Bit)
- CPU-Target: 32 Bit / 64 Bit
Re: Was wünscht ihr euch für Pascal Features in der Zukunft
Zuallererst finde ich Lazarus ganz super. Es ist der komplett richtige Ansatz. Hatte früher in C/C++ programmiert weil mir die Bezeichnung 'PASCAL' für eine Programmiersprache irgendwie seltsam klang und mir außerdem suggeriert wurde, dass C/C++ plattformübergreifend sein, naja. Mit C/C++ kann man zwar sehr viel machen, aber es hat so viele 'Macken' und macht es einem nicht wirklich leicht zu programmieren. Für mich sollte eine Programmiersprache leicht zu erlernen sein, dem Programmierer bei seiner Arbeit helfen durch gute Typenprüfung, plattformübergreifend sein, Garbage Collector und vor allem ... viel Arbeit abnehmen durch Unterstützung mittels geeigneter Tools. Wer würde sich heute einen Traktor kaufen wenn er mit einem anderen Fahrzeug bequemer zum Ziel kommt. Die Sprache sollte für den Programmierer da sein und nicht umgekehrt, also 'make it as easy as possible'. Die Kompatibilität zu Delphi mag eventuell einen Vorteil darstellen doch manchmal sind einige Funktionen doch ein wenig hintenrum durch's Knie. Hier wäre es schön wenn man sich um Konsistenz bemühen könnte, sodass grundlegende Funktionen einfach dem allgemeinen 'Bedienungsschema' entsprechen (z. B. sollte es auch ein TIpHtml.Clear geben und viele Subroutinen sollten einfach das tun was sie sprachlich suggerieren ohne irgendwelche vor- und nachbereitenden Funktionen benutzen zu müssen). Warum PASCAL als Sprache so unterrepräsentiert ist kann ich beim besten Willen nicht verstehen (nur weil es eine 'alte' Sprache ist?!?), es ist nicht schwerer als Python und ich kann den Hype um Python, Ruby und Konsorten absolut nicht verstehen. Es gibt kaum aktuelle Literatur zu PASCAL, dafür aber umso mehr für C/C++, obwohl eigentlich offensichtlich ist, dass (sehr) viele Programmierer mit C/C++ überfordert sind. Insgesamt würde ich mir für Lazarus wünschen, dass es zu einer Sprache FÜR den Programmierer wird, also insgesamt noch einfacher in Bedienung und Codierung.
Lazarus 1.6.4 32-Bit + 64-Bit, Windows 10 64-Bit, Manjaro Linux 64-Bit
-
- Beiträge: 308
- 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
Mathias hat geschrieben:Meinst du ich hätte ein Chance, wen ich 2.7.1 installiere ?
Wenn du den Patch manuell mergst
Die haben es wohl vergessen
-
- 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
...und des Minimums von 32 Elementen (für die interne Speichernung) - wenn man z.B. das Set z.B. auf ein Word oder Byte abbilden muß und dabie mit weniger Elementen leben kann.
welches minimum?
Code: Alles auswählen
{$mode delphi}
var x : set of 0..7;
begin
writeln(sizeof(x));
end.
gibt "1" aus.
Was du meinst ist ein "Feature" von objfpc.
-
- Beiträge: 6162
- Registriert: Do 2. Jan 2014, 17:21
- OS, Lazarus, FPC: Linux (die neusten Trunk)
- CPU-Target: 64Bit
- Wohnort: Schweiz
Re: Was wünscht ihr euch für Pascal Features in der Zukunft
BeniBela hat geschrieben:Mathias hat geschrieben:Meinst du ich hätte ein Chance, wen ich 2.7.1 installiere ?
Wenn du den Patch manuell mergst
Die haben es wohl vergessen
Was meinst du damit ?
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot
Mit Java und C/C++ sehe ich rot
-
- Beiträge: 308
- 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
Mathias hat geschrieben:BeniBela hat geschrieben:Mathias hat geschrieben:Meinst du ich hätte ein Chance, wen ich 2.7.1 installiere ?
Wenn du den Patch manuell mergst
Die haben es wohl vergessen
Was meinst du damit ?
Den Patch auf den ich oben verlinkt habe
-
- Beiträge: 6162
- Registriert: Do 2. Jan 2014, 17:21
- OS, Lazarus, FPC: Linux (die neusten Trunk)
- CPU-Target: 64Bit
- Wohnort: Schweiz
Re: Was wünscht ihr euch für Pascal Features in der Zukunft
Ich habe es endlich geschaft, FPC 3.1.1 zu installieren, aber so wie es aussieht, wird $INCLUDESTRING noch nicht unterstützt.
Muss ich dort die *.diff runterladen und irgendwie installieren ?
Den Patch auf den ich oben verlinkt habe
Muss ich dort die *.diff runterladen und irgendwie installieren ?
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot
Mit Java und C/C++ sehe ich rot
-
- Beiträge: 199
- Registriert: Di 20. Okt 2015, 23:13
Re: Was wünscht ihr euch für Pascal Features in der Zukunft
BeniBela hat geschrieben:m.fuchs hat geschrieben:Mathias hat geschrieben:Code: Alles auswählen
for int i := 0 to 10 do WriteLn();
Achso, du willst mitten im Quellcode eine Variable deklarien. Warum?
Ich bin echt erstaunt über einige Wünsche. Pascal ist so eine schöne saubere Sprache, warum wollt ihr sie immer mit soviel Unfug anreichern?
Damit das einen Syntaxfehler gibt:Code: Alles auswählen
for i := 0 to rowCount do begin
for j := 0 to colCount do
changeCell(i, j);
completeRow(j);
end;
Hier sollte satandardmäßig die Bereichsüberwachung eingeschaltet sein. Und der Compiler sollte dann hier einen Bereichsfehler melden, da Rowcount bereits außerhalb des Wertebereiches ligt. In einem größeren Programm sucht man sich dann dusselig, wegen so enes Fehlers.
-
- Beiträge: 199
- Registriert: Di 20. Okt 2015, 23:13
Re: Was wünscht ihr euch für Pascal Features in der Zukunft
Ich wünsche mir, daß die Direktive {mode objfpc} nicht mehr explzit gestzt werden muss, sondern bereits Standard ist. Ich versuche so manches Mal Freepascal Quellen nach Delphi zu portieren. Da stört diese Direktive dann gewaltig, weil ich sie in jeder Quelldatei umklammern muss.
Mach ich dann so hier: {$ifdef FPC} {$mode objfpc}{$H+}{$endif}
Ist aber nervig, wenn ich das in einer großen Bibliothek dann mit jeder Quelldatei machen muss.
Mach ich dann so hier: {$ifdef FPC} {$mode objfpc}{$H+}{$endif}
Ist aber nervig, wenn ich das in einer großen Bibliothek dann mit jeder Quelldatei machen muss.
-
- 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
fpGUIcoder hat geschrieben:Ich wünsche mir, daß die Direktive {mode objfpc} nicht mehr explzit gestzt werden muss, sondern bereits Standard ist. Ich versuche so manches Mal Freepascal Quellen nach Delphi zu portieren. Da stört diese Direktive dann gewaltig, weil ich sie in jeder Quelldatei umklammern muss.
Mach ich dann so hier: {$ifdef FPC} {$mode objfpc}{$H+}{$endif}
Ist aber nervig, wenn ich das in einer großen Bibliothek dann mit jeder Quelldatei machen muss.
Ich möchte gern eine Einstellung haben um Forms mit {$ifdef fpc} {$mode delphi} {$endif} herzustellen. Sonst muss man zb alle Events mit @ assignen.
-
- Beiträge: 6162
- Registriert: Do 2. Jan 2014, 17:21
- OS, Lazarus, FPC: Linux (die neusten Trunk)
- CPU-Target: 64Bit
- Wohnort: Schweiz
Re: Was wünscht ihr euch für Pascal Features in der Zukunft
Ich wäre noch für eine kleine Verbesserung von Lazarus.
Wen beim Entwickeln ein Laufzeitfehler kommt, z.B. SIGSEV, dann muss man immer Ctrl+F2 drücken, bevor man mit F9 neu starten kann.
Schön wäre es, wen man direkt F9 drücken könnten und sich automatisch das alte Programm beendet, so wie es Delphi macht.
Wen beim Entwickeln ein Laufzeitfehler kommt, z.B. SIGSEV, dann muss man immer Ctrl+F2 drücken, bevor man mit F9 neu starten kann.
Schön wäre es, wen man direkt F9 drücken könnten und sich automatisch das alte Programm beendet, so wie es Delphi macht.
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot
Mit Java und C/C++ sehe ich rot
-
- Beiträge: 199
- Registriert: Di 20. Okt 2015, 23:13
Re: Was wünscht ihr euch für Pascal Features in der Zukunft
Ich wünsch mir einfacheres Typecasting
Habe gerade eine Übersetzung laufen, da wird die Funktion
ptInRect(r, pt) aufgerufen.
Wenn ich das statt pt mit den Koordinaten Point(x,y) übergebe, weist das der Compiler ab, weil TPoint erwartet wird, wenn ich aber dann Topint schreibe, wird die Typumwandling nicht akzeptiert, obwohl doch klar sein sollte, was ich erreichen will, nämlich die beiden x,y Koordinaten in Point bzw. Tpoint Casten.
Ein anderer Fall:
Ich musste soeben die Deklaration einer Funktion DrawPolygon(Points: PPOint); andern in DrawPolygon(Points: array of TPoint);
Grund: Der Cpmpiler maldet mir Fehler:
Error: Incompatible Type for arg no. 1: Got dynamic array of TPoint expexted OpenArray of TPoint
Hatte gehofft, wenn ich den ursprünglichen Typ PPoint durch ein dynamisches Array ersetze, könne ich die Werte übergeben.
Die Frage nach der optimalen Lösung stelle ich in einem separaten Thread.
Hier nur der Feature Request, die Typkonvertierung programmiererfreundlicher zu gestalten.
Habe gerade eine Übersetzung laufen, da wird die Funktion
ptInRect(r, pt) aufgerufen.
Wenn ich das statt pt mit den Koordinaten Point(x,y) übergebe, weist das der Compiler ab, weil TPoint erwartet wird, wenn ich aber dann Topint schreibe, wird die Typumwandling nicht akzeptiert, obwohl doch klar sein sollte, was ich erreichen will, nämlich die beiden x,y Koordinaten in Point bzw. Tpoint Casten.
Ein anderer Fall:
Ich musste soeben die Deklaration einer Funktion DrawPolygon(Points: PPOint); andern in DrawPolygon(Points: array of TPoint);
Grund: Der Cpmpiler maldet mir Fehler:
Error: Incompatible Type for arg no. 1: Got dynamic array of TPoint expexted OpenArray of TPoint
Hatte gehofft, wenn ich den ursprünglichen Typ PPoint durch ein dynamisches Array ersetze, könne ich die Werte übergeben.
Die Frage nach der optimalen Lösung stelle ich in einem separaten Thread.
Hier nur der Feature Request, die Typkonvertierung programmiererfreundlicher zu gestalten.
Re: Was wünscht ihr euch für Pascal Features in der Zukunft
fpGUIcoder hat geschrieben:Wenn ich das statt pt mit den Koordinaten Point(x,y) übergebe, weist das der Compiler ab, weil TPoint erwartet wird
Code: Alles auswählen
var
x, y: Integer;
r: TRect;
begin
ptInRect(r, x, y); //geht nicht
ptInRect(r, Point(x, y)); //das schon
end;
Auch könnte man die Funktion ptInRect überladen, dass dies gänge.
Ich bin sehr zufrieden, wie Pascal das zur Zeit macht, es sind klare Strukturen - ein Vorteil von Pascal, den man nicht aufgeben sollte.
Code: Alles auswählen
type
TLiveSelection = (lsMoney, lsChilds, lsTime);
TLive = Array[0..1] of TLiveSelection;
-
- Beiträge: 6162
- Registriert: Do 2. Jan 2014, 17:21
- OS, Lazarus, FPC: Linux (die neusten Trunk)
- CPU-Target: 64Bit
- Wohnort: Schweiz
Re: Was wünscht ihr euch für Pascal Features in der Zukunft
So wäre auch noch praktisch.
Code: Alles auswählen
var
testArray: array[0..7] of byte;
procedure TForm1.Button1Click(Sender: TObject);
begin
testArray := [0, 1, 2, 3, 4, 5, 6, 7]; // gibt Fehler
end;
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot
Mit Java und C/C++ sehe ich rot
-
- Beiträge: 199
- Registriert: Di 20. Okt 2015, 23:13
Re: Was wünscht ihr euch für Pascal Features in der Zukunft
Michl hat geschrieben:fpGUIcoder hat geschrieben:Wenn ich das statt pt mit den Koordinaten Point(x,y) übergebe, weist das der Compiler ab, weil TPoint erwartet wirdCode: Alles auswählen
var
x, y: Integer;
r: TRect;
begin
ptInRect(r, x, y); //geht nicht
ptInRect(r, Point(x, y)); //das schon
end;
Auch könnte man die Funktion ptInRect überladen, dass dies gänge.
Ich bin sehr zufrieden, wie Pascal das zur Zeit macht, es sind klare Strukturen - ein Vorteil von Pascal, den man nicht aufgeben sollte.
Ich übersetze gerade die fpGUI neu, hab da paar Änderungen vorgenommen. In keiner der Units funktionirt da die zweite Variante. Möcht gerne wissen welche Zusatzoption ich da einstellen muss damit das wirder klappt, jede Unit der fpGUI ruft ein bis mehrmals die Funktion ptInRecht auf.
Erwartet wird TPoint, das Casting aber liefert POint. Aber auf TPoint andern bringt nix.
Da muss ich doch bestimmt bloß ganz simpel einen Compierschalter setzen, nicht wahr?
Aber welchen. Was also muss ich das setzen?
Derzeit ändere ich jeden Aufruf so ab:
Code: Alles auswählen
procedure Irgendwas(x,y: Integer);
var
pt: TPoint;
r: TRect;
begin
pt.x := x;
pt.y := y;
PtInRect(r, pt);
end;
Weil das Typcasting Point(x,y) nicht geht!
Wenn es bei Dir aber geht, dann ist es doch bestimmt nur eine simple Einstellung, die ich nicht habe? Aber welche?
Ich habe:
Lazarus Version #: 1.2.6
Date 2015-7-12
FPC Version 2.6.4
SVN Revision: 46529
i386-win32-win32/win64
CPU -> 32Bit
-
- Beiträge: 1908
- Registriert: Di 23. Sep 2014, 17:46
- OS, Lazarus, FPC: Win10 | Linux
- CPU-Target: x86_64
Re: Was wünscht ihr euch für Pascal Features in der Zukunft
fpGUIcoder hat geschrieben:Michl hat geschrieben:fpGUIcoder hat geschrieben:Wenn ich das statt pt mit den Koordinaten Point(x,y) übergebe, weist das der Compiler ab, weil TPoint erwartet wirdCode: Alles auswählen
var
x, y: Integer;
r: TRect;
begin
ptInRect(r, x, y); //geht nicht
ptInRect(r, Point(x, y)); //das schon
end;
Auch könnte man die Funktion ptInRect überladen, dass dies gänge.
Ich bin sehr zufrieden, wie Pascal das zur Zeit macht, es sind klare Strukturen - ein Vorteil von Pascal, den man nicht aufgeben sollte.
Ich übersetze gerade die fpGUI neu, hab da paar Änderungen vorgenommen. In keiner der Units funktionirt da die zweite Variante. Möcht gerne wissen welche Zusatzoption ich da einstellen muss damit das wirder klappt, jede Unit der fpGUI ruft ein bis mehrmals die Funktion ptInRecht auf.
Erwartet wird TPoint, das Casting aber liefert POint. Aber auf TPoint andern bringt nix.
Da muss ich doch bestimmt bloß ganz simpel einen Compierschalter setzen, nicht wahr?
Aber welchen. Was also muss ich das setzen?
Derzeit ändere ich jeden Aufruf so ab:Code: Alles auswählen
procedure Irgendwas(x,y: Integer);
var
pt: TPoint;
r: TRect;
begin
pt.x := x;
pt.y := y;
PtInRect(r, pt);
end;
Weil das Typcasting Point(x,y) nicht geht!
Wenn es bei Dir aber geht, dann ist es doch bestimmt nur eine simple Einstellung, die ich nicht habe? Aber welche?
Ich habe:
Lazarus Version #: 1.2.6
Date 2015-7-12
FPC Version 2.6.4
SVN Revision: 46529
i386-win32-win32/win64
CPU -> 32Bit
Die Funktion Point(X, Y: Integer) ist in der Classes unit Implementiert, hast du diese vielleicht nicht eingebunden?
Außerdem gibt es einen Unterschied zwischen dem typen TPoint aus der Classes Unit und dem typen TPOINT aus der windows Unit, daran könnte es auch liegen
Zuletzt geändert von Warf am Fr 30. Okt 2015, 18:43, insgesamt 3-mal geändert.