Global Procedure Include

Für allgemeine Fragen zur Programmierung mit PureBasic.
Benutzeravatar
STARGÅTE
Kommando SG1
Beiträge: 7028
Registriert: 01.11.2005 13:34
Wohnort: Glienicke
Kontaktdaten:

Re: Global Procedure Include

Beitrag von STARGÅTE »

Also ich halte eine "große" Include mit "all möglichen" Prozeduren für sehr unpracktisch.

Was jeder selbst in seinen Projekten macht, ist mir relativ egal, aber aus eigener Erfahrung weißt ich, dass ein "general.pbi" sehr unhandlich ist. Zum einen würde das Include sehr groß werden und zum anderen brauch man auf der anderen Seite immer weniger Anteil aus dem Include.

Das PureBasic-Forum bietet eine Code-Ecke an, in dem sehr viele Codes bereits gepostet wurden, die man auch über die Suche finden kann. Klar ist die Kompatibilität mit der neusten PB Version gerade bei alten Codes nicht immer gegeben, aber das wäre es ja auch nicht bei einem riesen Include.

Für Einzelfunktionen kannst Du/man selbst nun Code-Bausteine in der IDE zusammensammeln, die du mit einem Klick in dein Code einfügen kannst. Für Funktionsgruppen bietet sich ein eigenes Include zur Thematik an, die teilweise auch vollständig im Forum zu finden sind.

Allerdings möchte ich mich deiner Idee nicht in den Weg stellen, von daher kannst du von deiner Seite ruhig anfangen ein General.pbi zu erstellen, und wer mag, kann dran teilnehmen. Ich für meinen Teil habe aber bereits alle Prozeduren (die ich teilen möchte) bereits hier im Forum veröffentlicht, und werde es nicht in diesem Thread erneut machen.
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
mk-soft
Beiträge: 3845
Registriert: 24.11.2004 13:12
Wohnort: Germany

Re: Global Procedure Include

Beitrag von mk-soft »

Dann lieber wie von "RSBasic" sein WinAPI für PB Funktionen.

http://www.rsbasic.de/winapi-library/

Statt alles in einer riesigen PBI mit zu schleppen, lieber die Sachen die man nötigt aus Library raus suchen.
Eine Modul-Sammlung haben wir ja auch schon.
Alles ist möglich, fragt sich nur wie...
Projekte ThreadToGUI / EventDesigner V3 / OOP-BaseClass-Modul
Downloads auf MyWebspace / OneDrive
NeoChris
Beiträge: 205
Registriert: 21.11.2013 21:17
Wohnort: Schweiz
Kontaktdaten:

Re: Global Procedure Include

Beitrag von NeoChris »

STARGÅTE hat geschrieben:Zum einen würde das Include sehr groß werden und zum anderen brauch man auf der anderen Seite immer weniger Anteil aus dem Include.
Ich meine irgendwo gelesen zu haben das PB automatisch nur alles rausschmeisst was nicht benutzt wird und wird nicht mitkompiliert. Oder is das nur ein Mythos???
Benutzeravatar
X0r
Beiträge: 2770
Registriert: 15.03.2007 21:47
Kontaktdaten:

Re: Global Procedure Include

Beitrag von X0r »

Trotzdem muss die gesamte Include vom Compiler geparst werden.
NeoChris
Beiträge: 205
Registriert: 21.11.2013 21:17
Wohnort: Schweiz
Kontaktdaten:

Re: Global Procedure Include

Beitrag von NeoChris »

Und?? Dauert eine halbe Sekunde länger! :lol:
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: Global Procedure Include

Beitrag von ts-soft »

NeoChris hat geschrieben:Ich meine irgendwo gelesen zu haben das PB automatisch nur alles rausschmeisst was nicht benutzt wird und wird nicht mitkompiliert. Oder is das nur ein Mythos???
Naja, das Funktioniert aber nicht so gut, wie es könnte. Jeder Verweis innerhalb der Procedure wird als Abhängigkeit erkannt
und wird mitkompiliert, also fast alles! Es gibt kaum Proceduren ohne Abhängigkeiten, und alles mit Abhängigkeit wird mit-
kompiliert, egal ob genutzt oder nicht. Nicht so einfach zu verstehen, aber Tatsache ist, es wird fast alles mitkompiliert!
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
GPI
Beiträge: 1511
Registriert: 29.08.2004 13:18
Kontaktdaten:

Re: Global Procedure Include

Beitrag von GPI »

NeoChris hat geschrieben:
STARGÅTE hat geschrieben:Zum einen würde das Include sehr groß werden und zum anderen brauch man auf der anderen Seite immer weniger Anteil aus dem Include.
Ich meine irgendwo gelesen zu haben das PB automatisch nur alles rausschmeisst was nicht benutzt wird und wird nicht mitkompiliert. Oder is das nur ein Mythos???
Also ich würde nicht drauf wetten. Früher hatte ich mir ein Programm geschrieben, das genau das macht. Die Programme waren danach doch deutlich kleiner. Was aber der Fall ist: Wenn du keine Sprites brauchst, dann wird die Sprite-Bibliothek nicht mitgelinkt.

Ich persönlich denke auch, dass es sinnvoller ist, einzelne Codebeispiele auf der Festplatte zu lagern und mit "XINCLUDEFILE" einzufügen. Bei Thematisch zusammenpassenden Befehle macht es auch sinn, sie in einer Datei zu packen. Aber alle möglichen Sachen? Das würde in ungünstigsten Fall nur dazu führen, das alle PB-Bibliotheken komplett eingefügt werden, obwohl man sie eigentlich nicht braucht.

Wenn man will kann man sich ja eine "general.pbi" schreiben, die pauschal sämtliche gesammelten Codes link und das für die Entwicklung nutzen. Spätestens wenn man es veröffentlicht, sollte man dann aber nur noch die Bausteine einfügen, die man wirklich braucht.
CodeArchiv Rebirth: Deutsches Forum Github Hilfe ist immer gern gesehen!
Benutzeravatar
X0r
Beiträge: 2770
Registriert: 15.03.2007 21:47
Kontaktdaten:

Re: Global Procedure Include

Beitrag von X0r »

Was ist eigentlich aus PBOSL geworden? Ich habe sie zwar nie benutzt, aber wenn ich mich nicht täusche, ging das in Richtung universelle Bibliothekssammlung. Warum nicht einfach die PBOSL wieder ins Leben rufen?
Benutzeravatar
Bisonte
Beiträge: 2465
Registriert: 01.04.2007 20:18

Re: Global Procedure Include

Beitrag von Bisonte »

PBOSL war auch mein erster Gedanke...

Aber wie das halt so mit "gemeinnützigen" Projekten ist... Sie müssen gepflegt werden! Am Anfang ist noch jeder Feuer und Flamme,
was dann in kurzer Zeit wieder gelöscht wird. Dann hat man keine Lust mehr und das ganze schläft ein.

PBOSL war meiner Meinung nach ein gutes Projekt. Das wieder zu beleben war ja schon öfter mal Gegenstand einiger Posts hier im Forum.
Allerdings ist die Sache mit den User-Libraries "out"... Module sind "in". Codesammlungen in dieser Form wären um einiges hilfreicher.

Hier im Forum hatte Thorsten1867 schon einen Thread gestartet zum Thema Modulsammlung.
Der Thread ist angepinnt (Dank an den ausführenden Moderator). Dort kann man das ganze in dem Stil weiterführen.

Das ganze als "externe" oder "Offline" Version a'la WinAPI-Library von RSBasic oder ähnlich, wäre natürlich auch toll. Aber sowas muss ja halt
wieder bereitgestellt, gewartet, und auch bezahlt werden (Webspace kostet mitunter was ;) )

Es gibt auch noch andere solch ambitionierter Projekte. z.B. Purebasic Street
aber wie gesagt... es sieht so aus als würde dieses das gleiche Schicksal wie PureArea.net erleiden.
PureArea.Net ist leider aus Zeitmangel veraltet, aber es finden sich immer noch Codes dort, die als Referenz herhalten können (um dann zu
der aktuellen PB Version konvertiert zu werden)

Selbst dieses Rad muss also nicht neu erfunden werden ;)
PureBasic 6.21 (Windows x86/x64) | Windows11 Pro x64 | AsRock B850 Steel Legend Wifi | R7 9800x3D | 64GB RAM | GeForce RTX 5080 | ThermaltakeView 270 TG ARGB | build by vannicom​​
Benutzeravatar
TroaX
Beiträge: 684
Registriert: 08.03.2013 14:27
Computerausstattung: PC: Ryzen 9 3950X, 96 GB RAM, RX6800XT, 2.5 TB SSD, 21:9 Display, Linux Mint | Lappi: Ryzen 7 5800H, 16 GB RAM, 1 TB SSD, Linux Mint
Wohnort: NRW
Kontaktdaten:

Re: Global Procedure Include

Beitrag von TroaX »

Als zusammenhängende Include würde ich es auch nicht unbedingt machen. Und außerdem sehe ich es schon kommen, das der Code bei den Proceduren nachher auch die Dokumentation ist. Dann darf man in der Datei sich dumm und dämlich suchen. Mir würde das dann so keinen Spaß machen.

Auch die Qualitative Prüfung ist schwer zu händeln. Wenn man so etwas als Gruppenprojekt wirklich ernst nehmen will, muss man dafür erst einmal eine Plattform entwickeln, die nach Möglichkeit die Prüfung der Qualität aufzwingt, damit sich die Nutzer drauf verlassen können.

Dank FastCGI und einem flotten NGINX kann man das ja auch mit PureBasic machen ;)

Aber mal im ernst. Ich würde die Codebausteine zum Browsen auf einer Website zur Verfügung stellen. Am besten in 2 Spalten. Links der Code und Rechts eine kurze Doku. Fehler müssten unter den Beiträgen gemeldet werden können. Im Backend wird dann die Nummer jeder neuen PB-Version der LTS und den Zwischenversionen eingetragen. Ist eine neue Version drin, werden 4 Wochen nach Eintragung die Codes als Deprecated gekennzeichnet (Bei LTS generell und bei den Zwischenversionen nur für die Zwischenversion, aber nicht für die LTS), wenn dazwischen entweder keine Änderungen vorgenommen oder in dem Zeitraum niemand bestätigt hat, das der Code funktioniert. Man könnte es auch dann so machen, das alle 4 oder 8 Wochen automatisch ein neuer Offline-Build erzeugt wird.

Klar ist auch dieses Vorgehen keine 100%ige Sicherheit auf Qualität. Aber man kann zumindest sehen, in wie weit sich die Leute drum kümmern und kann dann zur Not die Verantwortung für wichtige Bausteine weitergeben.
PC: Ryzen 9 3950X | 96 GB RAM | RX6800XT | 2,5 TB NVMe | Linux Mint
Notebook: 16" 3:2 | Ryzen 7 5800H | 16 GB RAM | Radeon Vega | 1TB NVMe | Linux Mint
NAS: Fritz.Box 5690 Pro (Nur für Keepass-DB)
Coding: Purebasic, Spiderbasic, GDevelop, Javascript/Node
Antworten