Mit PureBasic anfangen? Oder doch VB.Net?

Für allgemeine Fragen zur Programmierung mit PureBasic.
Benutzeravatar
NicTheQuick
Ein Admin
Beiträge: 8677
Registriert: 29.08.2004 20:20
Computerausstattung: Ryzen 7 5800X, 32 GB DDR4-3200
Ubuntu 22.04.3 LTS
GeForce RTX 3080 Ti
Wohnort: Saarbrücken
Kontaktdaten:

Re: Mit PureBasic anfangen? Oder doch VB.Net?

Beitrag von NicTheQuick »

Ich würde auch sagen: Bei deinen angestrebten Projekten ist Purebasic die falsche Wahl. Wenn du Webseiten ausliefern willst, nutze Programmiersprachen, die dir schon ein fertiges Templatesystem anbieten. Aber damit ist es nicht getan. Dann musst du auch noch HTML, CSS und JavaScript können. Selbst wenn Purebasic nur als simpler Server dienen soll, der ein paar AJAX-Requests beantwortet, ist das nicht schön zu programmieren. Du musst dich um alle Fehlerquellen ausschließen zu können um so viel Mist kümmern, den dir Purebasic leider nicht abnimmt. In der Richtung hat es noch viel Nachholbedarf. Wenn ich schon daran denke, dass man nicht mal SSL nutzen kann. :roll: Und zu Spiderbasic kann ich nicht viel sagen, aber meiner Meinung nach steckt das noch zu sehr in den Kinderschuhen.

Soll dein Programm aber vielleicht doch nicht im Browser laufen, sonder als Desktop-Applikation, dann wäre das eher ein Einsatz für Purebasic.
Bild
Nopp
Beiträge: 10
Registriert: 21.12.2017 08:57

Re: Mit PureBasic anfangen? Oder doch VB.Net?

Beitrag von Nopp »

TroaX hat geschrieben: Bei allem anderen kann ich nur sagen:
Client-Application: Kommt OOP in Frage, würde ich auf Grund des größeren Feature-Sets des .NET Framework auf VB.NET setzen. Mono ist zudem ausreichend kompatibel und ermöglicht dadurch Plattformunabhängigkeit. Allerdings müssen das .NET-FX oder Mono installiert sein. Möchtest du es nur für dich machen und dir reicht prozedural, dann nimm PB. Sei dir aber bewusst, das du im Vergleich zum .NET auf immens viele Features verzichten muss.
Webapplication/Browser: Solltest du dich aber dazu entschließen, deine Projekte zentral auf einem Server zu betreiben, dann würde ich auch Python, NodeJS oder ggf. auch PHP (seit Version 7 wirklich wieder brauchbar) in Betracht ziehen. Und diese lassen sich mit einer Zeile im Paketmanager an aktuelle Standards anpassen (z.B. Passwortverschlüsselung, Datentransportsicherheit etc.). Und die Portierung in eine Client-Application ist mit Hilfe von Electron (NodeJS), Flexx/WDOM (Python) oder PHP Desktop (Na rate mal :lol: ) im Regelfall auch recht einfach (wenn auch nicht immer elegant).
Oben lobst Du dick PB und am Ende kommt es für meine Projekte gar nicht mehr vor :lol: ?
Oder wie meinst Du den letzten Absatz genau? Als Zusatz zum PB?

Vielen Dank für Deine ausführliche Antwort! :)
Nopp
Beiträge: 10
Registriert: 21.12.2017 08:57

Re: Mit PureBasic anfangen? Oder doch VB.Net?

Beitrag von Nopp »

NicTheQuick hat geschrieben:Wenn ich schon daran denke, dass man nicht mal SSL nutzen kann. :roll: Und zu Spiderbasic kann ich nicht viel sagen, aber meiner Meinung nach steckt das noch zu sehr in den Kinderschuhen.
In PB kann man keine SSL-Verbindung implementieren?
Schade, dachte PB kann das. SpiderBasic sieht hier z.B. ganz nett aus: http://www.soccer-trainer.com/soccer-trainer.php

VG!
ccode_new
Beiträge: 1214
Registriert: 27.11.2016 18:13
Wohnort: Erzgebirge

Re: Mit PureBasic anfangen? Oder doch VB.Net?

Beitrag von ccode_new »

NicTheQuick hat geschrieben:Wenn ich schon daran denke, dass man nicht mal SSL nutzen kann.
Warum sollte das nicht gehen ?
Betriebssysteme: div. Windows, Linux, Unix - Systeme

no Keyboard, press any key
no mouse, you need a cat
ccode_new
Beiträge: 1214
Registriert: 27.11.2016 18:13
Wohnort: Erzgebirge

Re: Mit PureBasic anfangen? Oder doch VB.Net?

Beitrag von ccode_new »

Die coolsten VB.Net Alternativen könnten sein:

-> Gambas (unter Linux)
-> B4A (Basic für Android)
-> oder B4J (ein Basic zu Java - Compiler + IDE + Framework)

oder das unverschämt teure Xojo.
Betriebssysteme: div. Windows, Linux, Unix - Systeme

no Keyboard, press any key
no mouse, you need a cat
Benutzeravatar
TroaX
Beiträge: 661
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:

Re: Mit PureBasic anfangen? Oder doch VB.Net?

Beitrag von TroaX »

Nopp hat geschrieben:Oben lobst Du dick PB und am Ende kommt es für meine Projekte gar nicht mehr vor :lol: ?
Oder wie meinst Du den letzten Absatz genau? Als Zusatz zum PB?
Ich hatte mich da etwas falsch ausgedrückt. Sorry :lol:
Aber wirklich loben war es auch nicht. Habe nur erwähnt, das es mit PureBasic dank der CGI-Lib auch geht. Ich habe eher die Vorteile einer zentralen Serveranwendung aufgeführt :wink:

Das Problem an PureBasic ist leider immernoch, das es vieles kann, aber nur wenig vernünftig. Ist ja klasse, das es CGI/FastCGI gibt. Aber aktuell gängige Passwort-Hashes wie Argon oder Blowfish (Eine Zeile im Paketmanager von NodeJS oder Python und die können es. In PHP ist in der neuesten
Version Argon integriert) kann es nur mit einer externen Bibliothek, für die man erst eine Header-Include schreiben muss. Es kann nur mit externer Bibliothek oder ODBC-Treiber mit MySQL/MariaDB umgehen. Für dokumentorientierte Datenbanken müssen ebenfalls externe Bibliotheken und Wrapper verwendet werden, für die man auch eine Header-Include schreiben muss. CouchDB würde hingegen nur HTTP-Requests benötigen. Aber selbst die bekommt PB ohne Hilfe ja net hin. Dann kommt erschwerend hinzu, das PureBasic nicht mit allen C++-Bibliotheken kompatibel ist (z.B. wegen fehlendem OOP) und die meisten modernen Bibliotheken (z.B. MongoDB, Chromium usw.) in C++ geschrieben sind. Das sind alles Dämpfer, wegen denen ich momentan auch nicht wirklich an meinem PBExpress weiterarbeiten will. Und wie schon gesagt wurde ist eine Ajax-API mit JSON-Format schon ein Krampf. Allein schon deswegen, das durch die strenge Typisierung und die damit verbundenen extrem statischen Listenstrukturen die Handhabung von dynamischen Datensätzen die pure Hölle ist. Der Versuch, ein Mischling aus JSON und GraphQL hinzuschustern scheiterte genau an der Nummer. Webentwicklung mit PureBasic ist kein Zuckerschlecken und der Aufwand rechnet sich nicht, wenn man sowas wie PHP bereits aus dem FF beherrscht.

Und PureBasic benötigt für CGI/FastCGI trotzdem noch einen Webserver. Und dieser unterstützt im Regelfall SSL. Egal ob Apache, Hiawatha, NGINX, Lighttpd etc. ;)

Bei puren Desktop-Anwendungen (Client-Applications) kann man PureBasic durchaus in einem recht großen Umfeld gut nutzen. Aber sobald PB etwas nicht kann, muss man mit Bibliotheken nachrüsten. Und in Zeiten, wo Kollegen wie das .NET-Framework (NuGet), Python (pip) oder Node (NPM) mit Paketmanagern oder der moderneren Stanadard-Funktionsbibliothek diese Aufgaben mit deutlich weniger Aufwand erledigen können, muss man sich schon Gedanken machen, ob PB ausreichend ist oder ob man mit den Alternativen besser fährt. Ohne zeitkritische Elemente fällt der Performanceverlust bei der heutigen Rechenleistung kaum ins Gewischt, wenn das Endergebnis kein nativer Maschinencode ist.

Es ist schwer zu beantworten, ob nun das eine oder andere besser wäre. Ich würde daher sagen, das du dir deine 3 Projekte nimmst und dir Gedanken machst, welche Funktionalitäten du überhaupt brauchst. Willst du Daten in Dateien oder in einer Datenbank speichern? Welche Datenbank würdest du nutzen wollen? Wie sicher muss das Thema Mehrbenutzer behandelt werden? Muss die Software mit anderen Systemen kommunizieren? Wenn ja wie? Und so weiter und sofort. Und dann kannst du mit Hilfe des Handbuches schauen, ob Purebaisc das alles kann. Wenn es passt, spricht ncihts dagegen. Wenn aber was fehlt, mach es nicht zu deiner Aufgabe, es ihm beizubringen. Nimm etwas, das es kann. :wink:
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
Benutzeravatar
mk-soft
Beiträge: 3700
Registriert: 24.11.2004 13:12
Wohnort: Germany

Re: Mit PureBasic anfangen? Oder doch VB.Net?

Beitrag von mk-soft »

Ich denke das SSL in der nächsten Version von Purebasic geben wird. Müssen uns aber überraschen lassen.

Zu OOP kann ich sagen das Purebasic diese nicht nativ unterstützt, aber mit etwas mehr Tiparbeiten durchaus auch objektorientiert programmiert werden kann. Wenn man es einmal verstanden hat, ist es auch nicht schwer es umzusetzten.

Zur Zeit habe ich kein Projekt am laufen. Probiere aber so diverses unter Mac, Windows und Linux aus.
Man kann wunderbar durch Compiler-Optionen im gleichen Code für die verschiedene Betriebsversionen Anpassungen programmieren.

Durch die Modul-Technik ist es auch sehr gut wiederverwendbare Code zu schreiben.

Hier mal eine sinnloses Beispiel zur Programmierung als Funktionen oder als Object

Code: Alles auswählen

;-TOP

DeclareModule MyFunction
  
  Declare New()
  Declare Free(*ds)
  Declare Set(*ds, text.s)
  Declare.s Get(*ds)
  
EndDeclareModule

Module MyFunction
  
  EnableExplicit
  
  Structure udtDaten
    text.s
  EndStructure
  
  Procedure New()
    Protected *ds
    *ds = AllocateStructure(udtDaten)
    ProcedureReturn *ds
  EndProcedure
  
  Procedure Free(*ds)
    If *ds
      FreeStructure(*ds)
    EndIf
  EndProcedure
  
  Procedure Set(*ds.udtDaten, text.s)
    If *ds
      *ds\text = text
    EndIf
  EndProcedure
  
  Procedure.s Get(*ds.udtDaten)
    If *ds
      ProcedureReturn *ds\text
    EndIf
  EndProcedure
      
EndModule

; ***********************************************

DeclareModule MyObject
  
  Interface iMyObject
    Free()
    Set(text.s)
    Get.s()
  EndInterface
  
  Declare New()
  
EndDeclareModule

Module MyObject
  
  EnableExplicit
  
  Structure udtDaten
    *vTable ; Immer an der ersten stelle
    text.s
  EndStructure
  
  Procedure New()
    Protected *this.udtDaten
    *this = AllocateStructure(udtDaten)
    If *this
      *this\vTable = ?vtMyObject
    EndIf
    ProcedureReturn *this
  EndProcedure
  
  Procedure Free(*this)
    FreeStructure(*this)
  EndProcedure
  
  Procedure Set(*this.udtDaten, text.s)
    With *this
      \text = text
    EndWith
  EndProcedure
  
  Procedure.s Get(*this.udtDaten)
    Protected r1.s
    With *this
      r1 = \text
    EndWith
    ProcedureReturn r1
  EndProcedure
  
  ; Immer die gleiche Reihenfolge wie im Interface
  DataSection
    vtMyObject:
    Data.i @Free()
    Data.i @Set()
    Data.i @Get()
  EndDataSection
  
EndModule

; ***********************************************

;- Test

Debug "Modul als Funktionen"
Define *t1 ; Ist ein Pointer (*) auf die Daten
*t1 = Myfunction::New()
Myfunction::Set(*t1, "Hallo Welt")
Debug Myfunction::Get(*t1)
MyFunction::Free(*t1)

Debug "Modul als Object"

Define *obj1.MyObject::iMyObject ; Ist ein Pointer (*) auf das Object (Interface)
*obj1 = MyObject::New()
*obj1\Set("Hello World")
Debug *obj1\Get()
*obj1\Free()
Update
Alles ist möglich, fragt sich nur wie...
Projekte ThreadToGUI / EventDesigner V3 / OOP-BaseClass-Modul
Downloads auf MyWebspace / OneDrive
Benutzeravatar
juergenkulow
Beiträge: 188
Registriert: 22.12.2016 12:49
Wohnort: :D_üsseldorf-Wersten

Re: Mit PureBasic anfangen? Oder doch VB.Net?

Beitrag von juergenkulow »

Hallo Nopp,

ich habe da zwei Fragen und eine Anmerkung
Wieviele Zeilen sind bis jetzt programmiert?
Wiehoch ist der PureBasic Anteil?
Auf der Insel der Programmierer gibt es nicht nur Prograland,
sondern auch Analytisten und Architektonien.
Bitte stelle Deine Fragen, denn den Erkenntnisapparat einschalten entscheidet über das einzig bekannte Leben im Universum.

Jürgen Kulow Wersten :D_üsseldorf NRW D Europa Erde Sonnensystem Lokale_Flocke Lokale_Blase Orion-Arm
Milchstraße Lokale_Gruppe Virgo-Superhaufen Laniakea Sichtbares_Universum
Nopp
Beiträge: 10
Registriert: 21.12.2017 08:57

Re: Mit PureBasic anfangen? Oder doch VB.Net?

Beitrag von Nopp »

Moinsen,

bin grade dabei eine einfache GUI mit drei Buttons und einer Textzeile zu bauen welche je nach Knopfdruck entweder den "Windows Explorer" / Editor öffnet, oder den geschriebenen Text mit einer Abfrage wohin speichert.
Habe nun mit Python gestartet, weil ich das noch installiert hatte.
Gefällt mir bisher ganz gut muss ich sagen.

Anschließend bversuche ich das mal mit Tutorials mit PB, nur um zu sehen, wie das dann ausschaut und wie es mir von der Hand geht.
Antworten