PureBasic, fehlende Features und Probleme

Hier kann alles mögliche diskutiert werden. Themen zu Purebasic sind hier erwünscht.
Flames und Spam kommen ungefragt in den Mülleimer.
Benutzeravatar
TroaX
Beiträge: 659
Registriert: 08.03.2013 14:27
Computerausstattung: PC: Ryzen 9 3950X, 96 GB RAM, RX6800XT, 2.5 TB SSD, 21:9 Display, Pop_OS! | Lappi: Ryzen 7 5800H, 16 GB RAM, 1 TB SSD, Pop_OS!
Wohnort: NRW
Kontaktdaten:

PureBasic, fehlende Features und Probleme

Beitrag von TroaX »

Dieses Thema wurde im grunde erstellt, um das Oftopic eines anderen Threads zu unterbinden. Zugrunde liegende Beiträge sind noch in diesem Thread: viewtopic.php?f=7&t=32254

Mein Beitrag zum letzten Post:
@TroaX: Natürlich sollte Basic ein Basic bleiben, aber ich definiere ein Basic gerade so, dass es eben einfachen Zugriff auf viele Funktionalitäten bietet, die man sonst mühsamst selbst und vor allem Crossplattform für jedes OS über die jeweiligen Libs neu bauen müsste, wie man es von C & Co z.B. oft kennt.
Die ursprüngliche Philosophie von Basic sah auch immer genau das vor. Man darf aber auch nicht vergessen, das Basic sowie ihre ursprünglichen Beweggründe aus den 60er Jahren ist. Gerade das "All-Purpose" ist nur sehr schwer noch einzuhalten. Dafür sind einfach die Einsatzzwecke gerade zu explodiert und keine Sprache kann allen Anforderungen gerecht werden. Selbst das völlig überteuerte Xojo nicht. Dafür besitzen aber die Sprachen in der Regel die Möglichkeit, den Funktionsumfang Seitens der Community zu steigern. Sei es durch Includes, DLL's, statischen Bibliotheken oder einfach nur Modulen. Der Funktionsumfang ist in PureBasic nun schon wirklich sehr umfangreich. Aber jeder einzelne Programmierer hat am Ende eine eigene Meinung, wie sich welche Bibliothek am besten nutzen lassen und verhalten sollte. Klar wäre json_encode und json_decode wie bei PHP die ideale Art und Weise, mit JSON umzugehen. PureBasic hat aber nun einmal das Problem, das es eben nicht lose typisiert ist und das ganze dadurch dann doch erheblich schwerer umzusetzen ist.

Das alles hat aber nichts mit den Sprachfeatures zu tun. OOP, Polymorphismus, Schlüsselwörter und dessen Bedeutung, Konstrukte usw. sind Sprachfeatures. Das was du bemängelst ist das Framework hinter der Sprache. Und da liefert wie schon beschrieben keine Sprache alles. Und jede hat ihr eigenes Konzept, damit fertig zu werden. Ich habe Leuten zugesehen, wie die mit Python programmiert haben. Die haben wie blöde mit der Googlesuche und Stackoverflow gearbeitet. Kein Wunder, das Python Spitzenreiter im TIOBE ist. Das Programmieren geht da ja nur noch gefühlt über die Google-Suche. Und Pip sorgt dann für die Bibliotheken, auf die in den Suchergebnissen Bezug genommen wird.
Es gibt einfach viele in PB eher halbherzig oder nicht umgesetzte Dinge, wo man dann erst bei genauerem Blick merkt, dass es eben nicht die m.E. im Jahr 2021 notwendige Funktionalität hat, z.B. weitergehende SSL/TLS-Verschlüsselung (eigene Client/Server oder FTP), variabler Mailversand (flexible Plain/Html/Bilder/Anhänge und mit jedem Mailserver funktionierendes SSL), oder auch ordentliches Json-Handling (wenn man jedes Einlesen von Json noch mit zig IFs bzw. Fehlerüberprüfungen abfangen muss, ist das eben nicht "Basic").
Auch hier ist es immer eine Sache des Blickwinkels, aus dem man die Sache betrachtet. Für mich war immer am wichtigsten, das ich wenigstens HTTP-Requests mit SSL/TLS absetzen kann, was PureBasic unterstützt. Dadurch würde auch WebDAV möglich werden, was am Ende auch für einfache Dateiübertragungen FTP ersetzen kann. PureBasic unterstützt zudem CGI und FastCGI, wodurch die Verantwortung für eine gesicherte Verbindung mit SSL/TLS nicht bei der Webanwendung, sondern beim Webserver liegt, der sowieso benötigt wird, um CGI/FastCGI Anwendungen zu betreiben. Am Ende liegt das Problem oftmals eher in der Anforderung und damit verbunden auch dem vorhanden sein einer Bibliothek. Und das nicht nur Seitens der Sprachentwickler. Sondern eben auch Seitens der Community. Und wir haben hier viele Module und Bibliotheken im Forum, die viele zusätzliche Funktionalitäten abdecken. Aber wie schon geshrieben, kann eine Programmiersprache und das dahinter steckende Framework einfach nicht alles bieten und liefern. Dafür ist es heute einfach zu viel. Weder Java noch das .NET Framework bieten einem auch nur ansatzweise alles. Das ist am Ende auch der Grund, warum sich Paketmanager wie Nuget (.NET), NPM (Node.js), Pip (Python), Composer (PHP) und Co. etabliert haben.
Für ein bißchen Hobby-Programmierung mag PB ausreichend sein, für viele Multimedia-Dinge oder einfache Spiele möglicherweise auch. Für Business-Programme, wo man mit Dingen wie Netzwerk-Zugriffen und DSGVO konfrontiert wird, wird PB aber leider nur sehr mühsam oder geht bald gar nicht mehr. Ich hatte von GFA kommend große Hoffnungen, die aber immer weiter in sich zusammenfallen.
Dann solltest du deine Hoffnungen in so etwas wie Python, Java oder C# setzen, anstatt auf Sprachen zu setzen, die am Ende sowieso nie alles mitliefern können. Die haben riesige Communities (jede einzeln größer als alle Basic-Communities zusammen) und lieferten bisher Bibliotheken für unbediente Fälle in kürzester Zeit nach.
PC: Ryzen 9 3950X | 96 GB RAM | RX6800XT | 2,5 TB NVMe | Pop_OS!
Notebook: 16" 3:2 | Ryzen 7 5800H | 16 GB RAM | Radeon Vega | 1TB NVMe | Pop_OS!
NAS: Fritz.Box :lol:
Coding: Purebasic 6.04 | PHP | HTML | CSS | Javascript