Mit PureBasic anfangen? Oder doch VB.Net?

Für allgemeine Fragen zur Programmierung mit PureBasic.
Benutzeravatar
RSBasic
Admin
Beiträge: 8022
Registriert: 05.10.2006 18:55
Wohnort: Gernsbach
Kontaktdaten:

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

Beitrag von RSBasic »

Nopp hat geschrieben:1. Wartbarkeit ist viel schlechter
Kommt drauf an, wie man den Code schreibt und strukturiert. Es ist am Ende wichtig, dass du den Code verstehst und weißt, wo sich die einzelnen Funktionen (in OOP Methoden) befinden. Mit jedem Paradigma kannst du theoretisch Spaghetticode schreiben. Man sollte generell nicht einfach drauf loslegen, sondern vor der Umsetzung jedes Projektes planen. Das ist das A und O.
Nopp hat geschrieben:da man bei Änderungen alles nachfolgende ebenso ändern muss
Wenn man den Code richtig aufbaut und strukturiert, dann passiert das nicht. Wenn du wiederverwendbare Codes nicht doppelt, dreifach schreibst, sondern in eine Funktion auslagerst, dann musst du nicht mehrere Stellen nachträglich anpassen.
Nopp hat geschrieben:Unterliegt die prozedurale Programmierung der OOP in irgendeiner Weise?
OOP hat schon seine Vorteile, aber es heißt nicht, dass andere Paradigmen immer schlecht sind.
Nopp hat geschrieben:Bzgl. Performance und der z.B. "benötigten Code-Zeilen" im Vergleich von beiden finde ich leider wenig.
PB-Code verbraucht weniger, als VB.NET. Die Kompilierzeit ist bei PB schnell.
Aus privaten Gründen habe ich leider nicht mehr so viel Zeit wie früher. Bitte habt Verständnis dafür.
Bild
Bild
Nopp
Beiträge: 10
Registriert: 21.12.2017 08:57

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

Beitrag von Nopp »

RSBasic hat geschrieben: OOP hat schon seine Vorteile, aber es heißt nicht, dass andere Paradigmen immer schlecht sind.
Wärest Du so nett und könntest hier ein bisschen tiefer in die Erklärkiste greifen?
Danke für Deine hilfreichen Antworten in beiden Foren :)
Benutzeravatar
NicTheQuick
Ein Admin
Beiträge: 8679
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 »

Das mit der Wartbarkeit kann man nicht verallgemeinern. Das kommt ganz klar auf die vorherige Planung und den Programmierstil an. Plant man richtig, strukturiert alles sauber und weiß vielleicht schon im Voraus, wo man zukünftig was erweitern möchte, dann geht das prozedural fast genauso gut wie objektorientiert.
AAAAber: Ganz wahr ist das auch nicht. Denn Vererbung ist ein ganz wichtiger Aspekt, den man prozedural nur schwer abdecken kann. Ob man sowas braucht, kann man in der Planungsphase seiner Software evaluieren. Dazu müsste man aber erstmal wissen, was damit möglich ist. Dazu empfehle ich neutrale Tutorials, die man zu genüge im Internet findet.
Nopp hat geschrieben:Unterliegt die prozedurale Programmierung der OOP in irgendeiner Weise?
Es gibt Programmiersprachen, die können beides, z.B. Python. Dann gibt es welche, die können nur prozedural wie z.B. Purebasic. Und es gibt welche, die können nur objektorientiert, wie z.B. Java. Aber man kann auch mit Java prozedural Programmieren, indem man eine einzige Singleton-Klasse definiert und darin nur statische Methoden nutzt.
Nopp hat geschrieben:1. Wartbarkeit ist viel schlechter, da man bei Änderungen alles nachfolgende ebenso ändern muss
Das ist nicht wahr, da es wie oben schon erwähnt von der Planung abhängt. Natürlich kann man auch rein prozedural so programmieren, dass man nur an einer Stelle etwas ändern kann, ohne den Rest ebenfalls ändern zu müssen. Man muss eben Redundanz im Code vermeiden, sodass man bei einem Fehler auch nur an einer Stelle etwas korrigieren muss und nicht gleich an vielen.
Nopp hat geschrieben:2. OOP ist dichter an dem "wirklichem" Leben angesiedelt und daher einfacher zu verstehen
Auch das würde ich so nicht unterschreiben. Ob ich jetzt auto.start() schreibe oder start(auto) ist am Ende das gleiche. Aber ich muss zugeben, dass ich es sehr übersichtlich finde ein Klassendiagramm zu erstellen um die Beziehungen zwischen Attributen und Klassen herzustellen und dann erst die Entwicklung zu starten. Aber ich würde sagen das lohnt sich auch erst bei größeren Projekten.
Nopp hat geschrieben:Bzgl. Performance und der z.B. "benötigten Code-Zeilen" im Vergleich von beiden finde ich leider wenig.
Das kommt wohl immer noch ganz darauf an, was du machen möchtest. Solange du nicht an die Grenzen der in Purebasic eingebauten Befehle stößt, kommst du in Purebasic vermutlich mit weniger Codezeilen zum Ziel als mit VB.NET. Aber das kann ich nur schätzen. Sobald du API verwenden musst oder Befehle benötigst, die in Purebasic nicht existieren, dann kann sich der Code schnell mal etwas aufblähen, aber das ändert nichts an der Ausführungsgeschwindigkeit.

Apropos: Wenn du mit Purebasic ein Programm kompilierst, dann wird es zunächst in Assembler übersetzt und von da an dann direkt in Maschinencode. Je nach Plattform hast du dann ein Executable für Windows, Linux oder Mac. VB.NET kompiliert in einen Bytecode, vergleichbar mit Assembler, aber doch anders, denn er ist dann zunächst mal plattformunabhängig. Wenn man jetzt das .NET-Framework in Windows installiert hat, kann dieses Framework den Bytecode interpretieren, abspielen und gleichzeitig zur Laufzeit in echten Maschinencode kompilieren, der dann in voller Geschwindigkeit auf deinem Prozessor laufen kann. Das Schöne hieran ist, dass die Kompilierung zur Laufzeit sich an die Möglichkeiten deines Prozessors anpassen kann. Kann dein Prozessor bestimmte Instruktionen, die helfen würden das Programm schneller laufen zu lassen, dann werden diese genutzt. Kann er diese Instruktionen nicht, dann eben nicht. Purebasic hingegen nutzt während der Kompilierung nur einen begrenzten Teil der Instruktionen, die dein Prozessor zur Verfügung stellt, damit es überall laufen kann. Das muss am Ende aber nichts bedeuten. Es kommt immer noch darauf an, was du da überhaupt programmierst, ob du es effizient umsetzt und ob dir die paar Millisekunden Geschwindigkeitsunterschied überhaupt etwas ausmachen.

Du merkst vielleicht selbst, dass man hier keine klaren Grenzen setzen kann. Es ist alles situationsbedingt. Am Ende kommt es vielleicht doch auch nur darauf an wie viel und wie schnell du Hilfe bei Problemen bekommen kannst. :wink:
Bild
Benutzeravatar
RSBasic
Admin
Beiträge: 8022
Registriert: 05.10.2006 18:55
Wohnort: Gernsbach
Kontaktdaten:

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

Beitrag von RSBasic »

@Nopp
Bei OOP hast du viele Dinge, die du bei prozeduraler Sprache nicht oder nur teilweise hast.
Einerseits hast du die Vererbungsmöglichkeit, andererseits hast du die Polymorphie und du kannst Methoden überladen. Außerdem kannst du alles abkapseln.
Weitere Informationen findest du hier: https://de.wikipedia.org/wiki/Objektori ... rammierung
Besser kann man es mit einem Autobeispiel verstehen. Einfach mal nach "oop auto beispiel" googlen.
Aus privaten Gründen habe ich leider nicht mehr so viel Zeit wie früher. Bitte habt Verständnis dafür.
Bild
Bild
Benutzeravatar
RSBasic
Admin
Beiträge: 8022
Registriert: 05.10.2006 18:55
Wohnort: Gernsbach
Kontaktdaten:

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

Beitrag von RSBasic »

@Nopp
Es soll keine Eigenwerbung sein, sondern ich möchte dir nur zeigen, was z.B. mit PB und WinAPI möglich ist, da du vorhin gefragt hast, ob X und Y möglich ist: http://www.rsbasic.de/winapi-library/
Du kannst dort gerne die Beispielliste überfliegen, dann weißt du, was alles möglich ist. Z.B. Größe des Arbeitsspeichers ermitteln, Benutzer ermitteln, Ordneränderungen feststellen, Bildschirmauflösung ermitteln und ändern, viele Dialoge von Windows nutzen, WLAN-SSID ermitteln, Netzwerkverbindungen ermitteln, Maus und Tastatur steuern, Zugriff auf Windows Registry, fremde Fenster und Prozesse verwalten und manipulieren, Systeminformationen auslesen und vieles mehr.

Wenn du mit PB anfangen möchtest, dann kann ich dir folgende Tutorial-Seiten empfehlen, um den Einstieg zu erleichtern:
Aus privaten Gründen habe ich leider nicht mehr so viel Zeit wie früher. Bitte habt Verständnis dafür.
Bild
Bild
Benutzeravatar
Kiffi
Beiträge: 10621
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

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

Beitrag von Kiffi »

Hygge
Benutzeravatar
RSBasic
Admin
Beiträge: 8022
Registriert: 05.10.2006 18:55
Wohnort: Gernsbach
Kontaktdaten:

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

Beitrag von RSBasic »

@Nopp
Wenn du mehrere Programmiersprachen bezüglich der Syntax miteinander vergleichen möchtest: https://de.wikipedia.org/wiki/Liste_von ... ersprachen
PureBasic ist auch dabei. Aber da kannst du nur Hallo Welt-Beispielcodes vergleichen.

in diesem Wikipedia-Artikel gibt es Beispielcodes, die ich für dich in PB umgewandelt habe, damit du syntaxmäßig vergleichen kannst.
Beispiel 1
VB.NET:

Code: Alles auswählen

Imports System.Windows.Forms

Private Class Program
  Public Shared Sub Main()
    MessageBox.Show("Text", "Titel", MessageBoxButtons.OK, MessageBoxIcon.Hand)
  End Sub
End Class
PB:

Code: Alles auswählen

MessageRequester("Text", "Titel", #PB_MessageRequester_Error)
Beispiel 2
VB.NET:

Code: Alles auswählen

Imports System.IO
Imports System.Text

Private Class Program
  Public Shared Sub Main()
    ' Text, der in die Datei geschrieben wird
    Const textToWrite As String = "Hallo Welt"
    Const fileName As String = "dateiname.txt"

    ' Datei "dateiname.txt" wird erstellt oder überschrieben
    Using stream As New FileStream(fileName, FileMode.Create, FileAccess.Write)
      ' Der Text wird UTF8-kodiert in die Datei geschrieben
      Dim Data As Byte() = Encoding.UTF8.GetBytes(textToWrite)
      stream.Write(Data, 0, Data.Length)
    End Using 'Datei wird geschlossen.
  End Sub
End Class
PB:

Code: Alles auswählen

; Text, der in die Datei geschrieben wird
#textToWrite$ = "Hallo Welt"
#fileName$ = "dateiname.txt"

; Datei "dateiname.txt" wird erstellt oder überschrieben
If CreateFile(1, #fileName$)
  WriteStringFormat(1, #PB_UTF8)
  ; Der Text wird UTF8-kodiert in die Datei geschrieben
  WriteString(1, #fileName$)
  CloseFile(1);Datei wird geschlossen.
EndIf
Noch ein Vorteil in PB ist, wie du bestimmt beim Vergleichen beider Codes gesehen hast, dass du in PB nicht angeben musst, welche Bibliotheken du einbinden und verwenden möchtest. Bei PB macht der Kompiler für dich automatisch. Er erkennt die Funktionen, die du verwendet hast und bindet intern die jeweiligen Bibliotheken ein.

Noch ein paar Erkärungen der Syntax beider Codes bezüglich der Unterschiede:
  • Kommentare werden in VB.NET mit ' und in PB mit ; eingeleitet.
  • Konstanten werden in VB.NET mit Const definiert und in PB mit #.
  • Strings werden in VB.NET mit As String und in PB mit $ oder .s definiert.
Aus privaten Gründen habe ich leider nicht mehr so viel Zeit wie früher. Bitte habt Verständnis dafür.
Bild
Bild
Benutzeravatar
NicTheQuick
Ein Admin
Beiträge: 8679
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 »

Oder noch interessanter: https://rosettacode.org. Dort findest du hunderte Lösungen als Quellcodes zu den verschiedensten Fragestellungen in sehr vielen Programmiersprachen. Darunter natürlich auch Purebasic und Visual Basic .NET. Hier gibt es sogar nur 130 Quellcodes von VB.NET im Vergleich zu Purebasic, wo es 543 Quellcodes gibt. Hier auch das Beispiel mit Hello World.
Bild
Benutzeravatar
RSBasic
Admin
Beiträge: 8022
Registriert: 05.10.2006 18:55
Wohnort: Gernsbach
Kontaktdaten:

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

Beitrag von RSBasic »

NicTheQuick hat geschrieben:Oder noch interessanter: https://rosettacode.org.
Genau, diese Seite habe ich vorhin gesucht, wusste aber nicht mehr, wie die Seite hieß. :allright:
Aus privaten Gründen habe ich leider nicht mehr so viel Zeit wie früher. Bitte habt Verständnis dafür.
Bild
Bild
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: Mit PureBasic anfangen? Oder doch VB.Net?

Beitrag von ts-soft »

Kiffi hat geschrieben:Crossposting: http://www.purebasic.fr/english/viewtop ... 13&t=69814
Der Meinung bin ich auch, also da ihr des englischen Mächtig seid, schlage ich vor nur noch dort zu antworten! Zumindest einen von beiden Threads würde ich schließen.

Ist aber nur ein Vorschlag.
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
Antworten