Pas2js Umfrage zur Weiterentwicklung
-
- Lazarusforum e. V.
- Beiträge: 184
- Registriert: Do 22. Mai 2008, 15:14
- OS, Lazarus, FPC: LinuxOSX (L head FPC head)
- CPU-Target: xxBit
Pas2js Umfrage zur Weiterentwicklung
Hallo,
Pas2js nähert sich der Version 2.0.
Die wichtigsten Neuerungen sind:
- Attributes
- Generics
- Async/Await support
- Better exception interception
- Class constructors
Und wieder mal möchten wir wissen, was Ihr als nächstes in pas2js braucht:
https://forms.gle/VfLbgxd8fQrU2hia8
Ein paar Punkte bedürfen wahrscheinlich der Erklärung:
- Asm annotations sagen dem Compiler, welche Bezeichner vom asm-Block benutzt werden, also nicht wegoptimiert werden dürfen.
- Library support ist für NodeJS, VS Code, Atom and Electron plugin development, und W3 WebComponents
Mattias
Pas2js nähert sich der Version 2.0.
Die wichtigsten Neuerungen sind:
- Attributes
- Generics
- Async/Await support
- Better exception interception
- Class constructors
Und wieder mal möchten wir wissen, was Ihr als nächstes in pas2js braucht:
https://forms.gle/VfLbgxd8fQrU2hia8
Ein paar Punkte bedürfen wahrscheinlich der Erklärung:
- Asm annotations sagen dem Compiler, welche Bezeichner vom asm-Block benutzt werden, also nicht wegoptimiert werden dürfen.
- Library support ist für NodeJS, VS Code, Atom and Electron plugin development, und W3 WebComponents
Mattias
-
- Lazarusforum e. V.
- Beiträge: 3178
- Registriert: Di 22. Jul 2008, 19:27
- OS, Lazarus, FPC: Lazarus: SVN; FPC: svn; Win 10/Linux/Raspbian/openSUSE
- CPU-Target: 32bit x86 armhf
- Wohnort: Köln
- Kontaktdaten:
Re: Pas2js Umfrage zur Weiterentwicklung
Verstehst du unter "PWA" auch in anderen Browsern als Chromium lauffähige Webanwendungen? Ich würde mir hier den Lazarus-Gedanken wünschen: Ich entwickle eine App, die ich entweder auf einem Webserver deploye und dann per Browser/Smartphone aufrufen kann, aber auch als Smartphone-App paketieren oder als Desktop-Anwendung ausliefern kann.
Selbstverständlich alles auf einer gemeinsamen Codebasis.
Weiterhin würde ich mir ein wenig mehr Kompatibilität zwischen Pas2JS und FPC wünschen:
Selbstverständlich alles auf einer gemeinsamen Codebasis.
Weiterhin würde ich mir ein wenig mehr Kompatibilität zwischen Pas2JS und FPC wünschen:
- In Pas2JS habe ich nur einen "Integer" Typen; in FPC brauche ich aber für (annähernd) den selben Wertebereich Int64
- Wenn ich einen JSON-Array streamen/destreamen möchte, muss ich in FPC eine TCollection per fpjsonrtti serialisieren. In Pas2JS erhalte ich aber nativ einen Array.
MfG Socke
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein
-
- Lazarusforum e. V.
- Beiträge: 184
- Registriert: Do 22. Mai 2008, 15:14
- OS, Lazarus, FPC: LinuxOSX (L head FPC head)
- CPU-Target: xxBit
Re: Pas2js Umfrage zur Weiterentwicklung
Wie kommst du bei PWA auf "nur Chromium"? Laufen tut ein PWA in fast allen standard browsern.Socke hat geschrieben: Mi 3. Jun 2020, 11:53 Verstehst du unter "PWA" auch in anderen Browsern als Chromium lauffähige Webanwendungen? Ich würde mir hier den Lazarus-Gedanken wünschen: Ich entwickle eine App, die ich entweder auf einem Webserver deploye und dann per Browser/Smartphone aufrufen kann, aber auch als Smartphone-App paketieren oder als Desktop-Anwendung ausliefern kann.
Selbstverständlich alles auf einer gemeinsamen Codebasis.
Aus einer Electron app kann eine exe erzeugt werden. Da kann man sicherlich ein Lazarus addon schreiben, das dabei hilft.
Und ja, gemeinsame Codebasis wollen wir wohl alle.
-
- Lazarusforum e. V.
- Beiträge: 184
- Registriert: Do 22. Mai 2008, 15:14
- OS, Lazarus, FPC: LinuxOSX (L head FPC head)
- CPU-Target: xxBit
Re: Pas2js Umfrage zur Weiterentwicklung
Pas2js hat wie FPC shortint, byte, smallint, word, longint, longword.Socke hat geschrieben: Mi 3. Jun 2020, 11:53 In Pas2JS habe ich nur einen "Integer" Typen; in FPC brauche ich aber für (annähernd) den selben Wertebereich Int64
Beide haben nativeint und nativeuint, wobei diese je nach Plattform unterschiedlich viele bits enthalten.
In Pas2js hat es 54bits, in FPC auf 64bit Systemen 64bit.
Webassembly kennt 64bit integer.
-
- Lazarusforum e. V.
- Beiträge: 184
- Registriert: Do 22. Mai 2008, 15:14
- OS, Lazarus, FPC: LinuxOSX (L head FPC head)
- CPU-Target: xxBit
Re: Pas2js Umfrage zur Weiterentwicklung
Geht es um Array von Objekten von-nach JSON-Array streamen?Socke hat geschrieben: Mi 3. Jun 2020, 11:53 Wenn ich einen JSON-Array streamen/destreamen möchte, muss ich in FPC eine TCollection per fpjsonrtti serialisieren. In Pas2JS erhalte ich aber nativ einen Array.
Theoretisch könntest du in pas2js auch eine TCollection dafür nutzen, aber die nativen Funktionen sind einfach um Größenordnungen performanter.
Vielleicht kannst du ein kleines Code Beispiel angeben? Da kann man konkreter drüber reden.
-
- Beiträge: 6911
- Registriert: Do 2. Jan 2014, 17:21
- OS, Lazarus, FPC: Linux (die neusten Trunk)
- CPU-Target: 64Bit
- Wohnort: Schweiz
Re: Pas2js Umfrage zur Weiterentwicklung
Das Pas2js ist ein sehr interessantes Projekt, da sieht man sehr gut, was alles mit der Lazarus IDE möglich ist.
Dank dem Projekt konnte ich meine Ebedded GUI bauen.
Dank dem Projekt konnte ich meine Ebedded GUI bauen.
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot
Mit Java und C/C++ sehe ich rot
-
- Lazarusforum e. V.
- Beiträge: 3178
- Registriert: Di 22. Jul 2008, 19:27
- OS, Lazarus, FPC: Lazarus: SVN; FPC: svn; Win 10/Linux/Raspbian/openSUSE
- CPU-Target: 32bit x86 armhf
- Wohnort: Köln
- Kontaktdaten:
Re: Pas2js Umfrage zur Weiterentwicklung
Richtig. Ich ermittle auf dem Server (FPC) eine Menge von Objekten, die an den Client (Pas2JS) gesendet werden. Mein Anforderung ist dabei typsicher zu arbeiten. D.h. außer der Serialisierung/Deserialisierung der Requests muss der Datentyp im Quellcode ersichtlich sein.Mattias hat geschrieben: Mi 3. Jun 2020, 14:26Geht es um Array von Objekten von-nach JSON-Array streamen?
Theoretisch könntest du in pas2js auch eine TCollection dafür nutzen, aber die nativen Funktionen sind einfach um Größenordnungen performanter.
Vielleicht kannst du ein kleines Code Beispiel angeben? Da kann man konkreter drüber reden.
Aktuell läuft die Serialisierung auf Serverseite über ein Array of TPersistent. Dieser wird in einer eigenen Funktion in einen TJSONArray (Anforderung von JSON RPC) überführt. Die Entwicklung fühlt sich hier ein wenig altbacken an.
Auf Clientseite habe ich unterschiedlichde API ob ich mit TJSArray (Objekt) oder mit der Pascal-Syntax für Arrays arbeite. Bei TJSArray steht mir in Lazarus Code Completion zur Verfügung, dafür habe ich keinen typsicheren Code. D.h. pro Forma wäre für eine sichere Programmierung bei jedem Zugriff der Element-Datentyp zu prüfen.
Mit Pascal Arrays bin ich typsicher, muss für jeden Typen einen Type Helper bauen, da noch keine Generics unterstützt werden.
Aktuell stellt mich die gesamt Konstruktion nicht wirklich zufrieden.
MfG Socke
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein
-
- 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: Pas2js Umfrage zur Weiterentwicklung
Was mir einfällt:
- optional Webasm "executable" statt JavaScript
- "Parallel loop" und "future vartiable" (a la Oxygene) statt oder zusätzlich zu den "Asynchron Wait" Funktionen
- Websock basierte Standard-Kommunikations-Library um fpc Programme auf Browser und Server zu verbinden (als Einstieg zu einer Methodik in der ein verteiltes Programm aus einem gemeinsamen Projekt kompiliert wird, das sich auf einem Desktop PC testen lässt und dann ohne Sourcecode-Änderung auf Web-Client /Server umstellen lässt)
- Verwendung des GUI Builders von Lazarus mit der Möglichkeit eine GUI zu erstellen, die sopwohl auf dem Desktop als auch im Browser (einigermaßen) funktioniert