Verfasst: 21.08.2006 12:07
Hallo freak,
ich kann Deine Argumente gegen eine Offenlegung der PB-Strukturen in gewisser Weise schon verstehen.
Wo ich jedoch nicht mit Dir übereinstimme ist die Aussage, dass PB bereits für alle Informationen die man aus diesen Strukturen erhalten könnte entsprechende Funktionen bereit stellt.
In diesem Punkt muss ich also ts-soft ganz klar zustimmen - da fehlt leider noch so einiges. Vor allem im Bereich Gadgets. Aber auch so Dinge wie "wo liegt der SpecialEffects-Buffer" oder "ist StartDrawing() bereits aufgerufen worden" oder "auf welchen OutputBuffer greift StartDrawing() momentan zu" bleiben ohne die Strukturen unbeantwortet.
Und solche Dinge sind eben nicht nur für Libraries interessant, sondern auch schon für eigene, etwas allgemein gehaltenere Prozeduren.
Nehmen wir an, ich möchte eine allgemeingültige Prozedur schreiben, die Zugriff auf alle Windows und Gadgets des Programms haben muss (soll heissen, dass sie automatisch alle Gadgets ansprechen und deren Details abrufen kann).
Momentan ist es in reinem PB-Code nicht möglich an diese Informationen zu gelangen, da man halt keinen Zugriff auf die Liste aller Gadgets hat.
Da ich mal annehme, das PB intern diese Informationen bereits in einer Liste speichert, wäre es ein leichtes, diese Informationen mit Hilfe de der Strukturen abzurufen.
Die einzige momentane Alternative wäre nur, das mit großem API Aufwand zu machen - wodurch man dann wieder jenseits von PB programmieren müsste und wieder nur an Windows gebunden wäre.
Und genau in diesem Punkt stimme ich Dir dann wieder zu, dass das Konzept von PB eben die Platformunabhängigkeit ist.
Denn genau aus diesem Grunde habe zum Beispiel ich mich extra FÜR PureBasic entschieden.
Nur leider stößt man bei der Entwicklung zumindest etwas anspruchsvollerer Anwendungen mangels vorhandener PB-Befehle immer wieder auf einige Schwachstellen, wo man dann doch wieder nicht umhin kommt die API zu bemühen.
Dies macht PB in meinen Augen (zumindest momentan) leider zu einer reinen Einzel-Plattform Sprache - und das finde ich sehr schade.
Das ihr nicht komplett jede API-Funktion in einen PB-Befehl nachbilden könnt ist klar, aber gerade da würde dann der Zugriff auf die PB-Strukturen zumindest ein weinig weiterhelfen. Da man dann für viele Dinge die man so noch benötigen würde eben NICHT eine OS-spezifische Funktion bemühen müsste, sondern durch Zugriff auf die Strukturen innerhalb von PB bleiben könnte.
Wenn Du eine Liste mit Funktionen haben möchtest, die im Grunde in PB noch so alle fehlen, kann man ja gerne mal eine zusammen stellen.
In der Hauptsache werden es wohl fehlende Get-Befehle sein, also Befehle, wodurch man Informationen abfragen kann (und genau das könnte man dann ja selber, wenn man Zugriff auf die Strukturen hätte).
Aber diese Liste umzusetzen würde für Euch wohl viel Aufwand bedeuten, und mangels Zeit wohl auch noch etliche Monate dauern.
Ich frage mich, wo liegt denn wirklich das Problem, interessierten Usern die benötigten Strukturen mitzuteilen? Das sowas dann unsupported ist und sich die Strukturen ggfl. ändern können dürfte doch jedem klar sein. Aber ohne diese Strukturen bleiben einem (zumindest den etwas ambitionierteren PB-Usern) halt leider viele Möglichkeiten, die man mit ihnen hätte, verschlossen.
Also meine Bitte lautet nach wie vor: Stellt doch den fortgeschrittenen Usern diese Strukturen zur Verfügung. Auch wenn es nur auf explizite Anfrage ist.
Macht es dann aber bitte so, dass dann auch aufstrebende Neuling und evtl. angehende PB-PowerUser erfahren können, dass es solche Strukturen gibt und wo man diese erfragen kann.
Ich befürchte nur, dass diese Einzelanfragen Euch mehr Arbeit machen würden, als wenn Ihr die Strukturen einfach im SDK-Verzeichnis mitliefern würdet.
In diesem Sinnne noch einen schönen Gruß,
PL.
ich kann Deine Argumente gegen eine Offenlegung der PB-Strukturen in gewisser Weise schon verstehen.
Wo ich jedoch nicht mit Dir übereinstimme ist die Aussage, dass PB bereits für alle Informationen die man aus diesen Strukturen erhalten könnte entsprechende Funktionen bereit stellt.
In diesem Punkt muss ich also ts-soft ganz klar zustimmen - da fehlt leider noch so einiges. Vor allem im Bereich Gadgets. Aber auch so Dinge wie "wo liegt der SpecialEffects-Buffer" oder "ist StartDrawing() bereits aufgerufen worden" oder "auf welchen OutputBuffer greift StartDrawing() momentan zu" bleiben ohne die Strukturen unbeantwortet.
Und solche Dinge sind eben nicht nur für Libraries interessant, sondern auch schon für eigene, etwas allgemein gehaltenere Prozeduren.
Nehmen wir an, ich möchte eine allgemeingültige Prozedur schreiben, die Zugriff auf alle Windows und Gadgets des Programms haben muss (soll heissen, dass sie automatisch alle Gadgets ansprechen und deren Details abrufen kann).
Momentan ist es in reinem PB-Code nicht möglich an diese Informationen zu gelangen, da man halt keinen Zugriff auf die Liste aller Gadgets hat.
Da ich mal annehme, das PB intern diese Informationen bereits in einer Liste speichert, wäre es ein leichtes, diese Informationen mit Hilfe de der Strukturen abzurufen.
Die einzige momentane Alternative wäre nur, das mit großem API Aufwand zu machen - wodurch man dann wieder jenseits von PB programmieren müsste und wieder nur an Windows gebunden wäre.
Und genau in diesem Punkt stimme ich Dir dann wieder zu, dass das Konzept von PB eben die Platformunabhängigkeit ist.
Denn genau aus diesem Grunde habe zum Beispiel ich mich extra FÜR PureBasic entschieden.
Nur leider stößt man bei der Entwicklung zumindest etwas anspruchsvollerer Anwendungen mangels vorhandener PB-Befehle immer wieder auf einige Schwachstellen, wo man dann doch wieder nicht umhin kommt die API zu bemühen.
Dies macht PB in meinen Augen (zumindest momentan) leider zu einer reinen Einzel-Plattform Sprache - und das finde ich sehr schade.
Das ihr nicht komplett jede API-Funktion in einen PB-Befehl nachbilden könnt ist klar, aber gerade da würde dann der Zugriff auf die PB-Strukturen zumindest ein weinig weiterhelfen. Da man dann für viele Dinge die man so noch benötigen würde eben NICHT eine OS-spezifische Funktion bemühen müsste, sondern durch Zugriff auf die Strukturen innerhalb von PB bleiben könnte.
Wenn Du eine Liste mit Funktionen haben möchtest, die im Grunde in PB noch so alle fehlen, kann man ja gerne mal eine zusammen stellen.
In der Hauptsache werden es wohl fehlende Get-Befehle sein, also Befehle, wodurch man Informationen abfragen kann (und genau das könnte man dann ja selber, wenn man Zugriff auf die Strukturen hätte).
Aber diese Liste umzusetzen würde für Euch wohl viel Aufwand bedeuten, und mangels Zeit wohl auch noch etliche Monate dauern.
Ich frage mich, wo liegt denn wirklich das Problem, interessierten Usern die benötigten Strukturen mitzuteilen? Das sowas dann unsupported ist und sich die Strukturen ggfl. ändern können dürfte doch jedem klar sein. Aber ohne diese Strukturen bleiben einem (zumindest den etwas ambitionierteren PB-Usern) halt leider viele Möglichkeiten, die man mit ihnen hätte, verschlossen.
Also meine Bitte lautet nach wie vor: Stellt doch den fortgeschrittenen Usern diese Strukturen zur Verfügung. Auch wenn es nur auf explizite Anfrage ist.
Macht es dann aber bitte so, dass dann auch aufstrebende Neuling und evtl. angehende PB-PowerUser erfahren können, dass es solche Strukturen gibt und wo man diese erfragen kann.
Ich befürchte nur, dass diese Einzelanfragen Euch mehr Arbeit machen würden, als wenn Ihr die Strukturen einfach im SDK-Verzeichnis mitliefern würdet.

In diesem Sinnne noch einen schönen Gruß,
PL.