OOP-Wrapper für PB

Du brauchst Grafiken, gute Programme oder Leute die dir helfen? Frag hier.
Benutzeravatar
X0r
Beiträge: 2770
Registriert: 15.03.2007 21:47
Kontaktdaten:

OOP-Wrapper für PB

Beitrag von X0r »

Hi,
nachdem ich nun diverse OOP Precompiler ausprobiert habe und zum Entschluss gekommen bin, dass SimpleOOP für meine Bedürfnisse wohl am geeignetsten ist, dachte ich mir, dass es wohl Zeit wäre, einen OOP-Wrapper für sämtliche PB-Libs zu schreiben, wobei ich mich zu Beginn hauptsächlich auf die GUI-Lib konzentrieren würde.
Meine Frage wäre nun, wer denn alles Interesse an so einem Wrapper hätte. Eventuell könnte man daraus ja auch ein Community-Projekt machen.
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Re: OOP-Wrapper für PB

Beitrag von ts-soft »

Was sollte das für einen Sinn haben? PB Libs wrappen? Du verwaltest also die Eigenschaften
der Libs in Deinem Object, welche PB sowieso verwaltet?

Nur Overhead und zusätzliche Fehlerquelle. Nur der Syntax wegen :freak:

Lieber blase ich Luftballons auf, als meine Exe.
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Benutzeravatar
STARGÅTE
Kommando SG1
Beiträge: 6999
Registriert: 01.11.2005 13:34
Wohnort: Glienicke
Kontaktdaten:

Re: OOP-Wrapper für PB

Beitrag von STARGÅTE »

ne ich glaube er will einfach nur nicht mehr:

SetGadgetText(#Gadget, Text$)

machen, sonden:

GadgetID\SetText(Text$)

oder ?

naja ich in kein fan von OOP.

Aber er hat ja gefragt wer Interesse hat ! nicht wer sie nicht hat ^^
PB 6.01 ― Win 10, 21H2 ― Ryzen 9 3900X, 32 GB ― NVIDIA GeForce RTX 3080 ― Vivaldi 6.0 ― www.unionbytes.de
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Re: OOP-Wrapper für PB

Beitrag von ts-soft »

STARGÅTE hat geschrieben:ne ich glaube er will einfach nur nicht mehr:

SetGadgetText(#Gadget, Text$)

machen, sonden:

GadgetID\SetText(Text$)

oder ?

naja ich in kein fan von OOP.

Aber er hat ja gefragt wer Interesse hat ! nicht wer sie nicht hat ^^
Das alleine ist ja schon Overhead, aber zusätzlich müßte im Object des Gadgets ja auch alle
anderen Werte stehen, die PB intern schon verwaltet, x, y, w, h usw.

OOP ist ja eine feine Sache, aber PB Libs zu wrappen macht keinen sonderlichen Sinn. Es bringt nur Nachteile,
abgesehen von der Syntax.
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Benutzeravatar
inc.
Beiträge: 348
Registriert: 27.10.2004 12:25

Re: OOP-Wrapper für PB

Beitrag von inc. »

Alle OOP Frameworks wrappen letztendlich die Systemnative API.
Es wird lediglich der OOP-Komfort dadurch ermöglicht. Und das ist eben dann der Kompromiss, den man eingehen muss.

Ist quasi wie bei GTK -> GTKmm

Ist aber alles Quark, PB ist prozedural, ein OOP Pre-Compiler macht Sinn, um rum zu probieren und zu basteln.
Und wenn du alles gewrappt hast, musst du sodann alles in der IDE mit der "F1" PB Hilfe verbinden, denn die ist für viele unabdingbar.
Was nutzt mir ein Framework, wenn es nicht gut kommentiert, und jederzeit aus dem Code heraus abrufbar ist.

Und, was nützt die ganze Energie wenn es kaum jemand nutzt :-)
Wenn du ein hochqualitatives platformübergreifendes, bereits exisitiernedes OOP-Framework mit allem Komfort haben willst, dann nutze QT.
Hier gibts die OOP Option für PureBasic.
Benutzeravatar
X0r
Beiträge: 2770
Registriert: 15.03.2007 21:47
Kontaktdaten:

Re: OOP-Wrapper für PB

Beitrag von X0r »

Code: Alles auswählen

SetGadgetText(#Gadget, Text$)

machen, sonden:

GadgetID\SetText(Text$)
Naja, fast. :mrgreen:
Dieses Projekt würde eigentlich nicht nur einfach einen bloßen Wrapper darstellen, da ich mir auch schon Gedanken über ein neues "Event-Handling-System" gemacht hab. Hier mal als Ansatz:

Code: Alles auswählen

...

This\ExitButton\SetEvent(This\Exit_Event())

...
Wäre doch ganz interessant, nich?

Code: Alles auswählen

Nur Overhead und zusätzliche Fehlerquelle. Nur der Syntax wegen :freak: 
Was hat das mit der Syntax zu tun? Meinste, dass ich einen auf coolen OOP-coder machen will? :freak:
Du müsstest selber wissen, welche Vorteile einem OOP verschafft. Und speziell bei großen Anwendungen kommt man mit den ganzen Events etc. irgendwann ins Schleudern. Ein ordentliches OOP-Framework dürfte einem da so manches erleichtern...
Ist aber alles Quark, PB ist prozedural, ein OOP Pre-Compiler macht Sinn, um rum zu probieren und zu basteln.
So? Du verschwendest also deine Energie für die Entwicklung eines Precompilers, damit hinterher 2,3 Leute rumprobieren können?
Machst du dich mit dieser Aussage nicht irgendwie selbst fertig?

Und, was nützt die ganze Energie wenn es kaum jemand nutzt :-)
Soweit ich weiß, wurde hier schon etliche Male rumgeheult und rumgebettelt, dass PB endlich mal OOP unterstützen soll. Gut, dieser Wunsch ist zwar nicht in Erfüllung gegangen, aber dafür haben wir ja immerhin die zahlreichen guten Precompiler aus der Community. Fehlen halt noch die entsprechenden Frameworks...

Mit dieser Einstellung wirds mit OOP und PB nie etwas...traurig
Gibt ja noch BlitzMax, nich? :lol:
Benutzeravatar
neotoma
Beiträge: 202
Registriert: 13.09.2004 16:16
Kontaktdaten:

Re: OOP-Wrapper für PB

Beitrag von neotoma »

Als gnadenloser OOP-Vertreter gebe ich Xor recht.
Prozeduale Sprachen sind gerade bei größeren Projekten sehr Feheranfällig.
Die Kapselung in OOP und die wiederversendung von Klassen hilt sich auf das
wesentliche zu konzentrieren.

Die PB-Befehle Wrappen?
Naja OOP ist nicht gerade zum Wrappen gemacht. Umgekehrt wird ein Schuh daraus:
Man kann ein OOP-Framework für die GUI bauen.
Also ähnlich dem MFC von Microsoft.
Das wäre bestimmt spannend. Dadurch bekäme PB-Coding eine besondere note.

SimpleOOP ist wirklich sehr gut. Jeder der sich für OOP in PB interessiert, sollte es ausprobieren.

Mike
Alle Rechtschreibfehler unterliegen der GPL und dürfen frei kopiert und modifiziert werden.
Benutzeravatar
X0r
Beiträge: 2770
Registriert: 15.03.2007 21:47
Kontaktdaten:

Re: OOP-Wrapper für PB

Beitrag von X0r »

Naja OOP ist nicht gerade zum Wrappen gemacht.
Siehe oben. Das Framework würde nicht unbedingt einen reinen Wrapper darstellen. Denn dieser würde z.B. so aussehen:
http://pb-oop.origo.ethz.ch/node/40 (von inc.)
Ausschnitt:

Code: Alles auswählen

Procedure WINDOW.WaitEvent(Timeout.l = 0)
  If Timeout
    ProcedureReturn WaitWindowEvent(Timeout)
  Else
    ProcedureReturn WaitWindowEvent()
  EndIf
EndProcedure
Dass bloßes Wrapping also im Endeffekt sogar völlig sinnfrei wäre, zeigt obiger Code-Ausschnitt.
Also, nochmal: gemeint war kein reiner Wrapper, sondern ein ordentliches, sinnvolles Framework, welches jedoch auf die Funktionalität der PB-GUI-Lib zurückgreift.
Somit würde es neben der Standard-Lib noch eine Version in OOP-Fassung geben.

Hingegen bestünde bei einem Framework, welches direkt auf der WinAPI basiert und nicht mal ansatzweise einen Wrapper der PB-Lib darstellt, die Gefahr, dass sich daraus ein komplett individuelles, von der Standard-Lib weit entferntes Produkt entwickeln und somit Nutzer abschrecken würde.
Versteht ihr?
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Re: OOP-Wrapper für PB

Beitrag von ts-soft »

Der Code-Abschnitt enthält überflüssigen Code:

Code: Alles auswählen

Procedure  WINDOW.WaitEvent(Timeout = -1)
  ProcedureReturn WaitWindowEvent(Timeout)
EndProcedure 
macht dasselbe und zeigt das es bloßes wrappen ist!
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Benutzeravatar
X0r
Beiträge: 2770
Registriert: 15.03.2007 21:47
Kontaktdaten:

Re: OOP-Wrapper für PB

Beitrag von X0r »

WTF :?
Lies dir meinen Beitrag bitte noch einmal durch...
1. ist der Code nicht von mir
und
2. wollte ich nur zeigen, wie ein sinnloser Wrapper aussehen würde, um nochmals zu betonen, dass ich im Gegensatz dazu ein ordentliches Framework vor Augen hatte...

Hast du dir auch mal meinen obigen Beitrag durchgelesen:
Dieses Projekt würde eigentlich nicht nur einfach einen bloßen Wrapper darstellen, da ich mir auch schon Gedanken über ein neues "Event-Handling-System" gemacht hab. Hier mal als Ansatz:

Code: Alles auswählen

...

This\ExitButton\SetEvent(This\Exit_Event())

...
Nennst du das überflüssig?
Antworten