Empfehlung einer aktuellen OOP Sprache zum "reinschnuppern"

Hier kann alles mögliche diskutiert werden. Themen zu Purebasic sind hier erwünscht.
Flames und Spam kommen ungefragt in den Mülleimer.
Benutzeravatar
RSBasic
Admin
Beiträge: 8022
Registriert: 05.10.2006 18:55
Wohnort: Gernsbach
Kontaktdaten:

Re: Empfehlung einer aktuellen OOP Sprache zum "reinschnuppe

Beitrag von RSBasic »

Kurzer hat geschrieben:- Heißt das, dass PB Exen unter Windows in jedem Fall auf irgendwelche Windows DLLs angewiesen sind (auch wenn keien API Aufrufe im Code stecken)?
Ganz genau. Die ganzen Funktionen zum Erstellen von Fenstern und Gadgets basieren meistens auf APIs des Betriebssystems. Hier hast du eine kleine Übersicht: http://www.purebasic.fr/blog/?p=336
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: Empfehlung einer aktuellen OOP Sprache zum "reinschnuppe

Beitrag von NicTheQuick »

Wenn ich mit PB ein Hello World für die Konsole schreibe, dann werden folgende Libraries unter Linux hinzugelinkt:

Code: Alles auswählen

nicolas@tp-w530:~/tmp$ ll tmp.exe 
-rwxrwxr-x 1 nicolas nicolas 18696 Dez 14 10:34 tmp.exe*
nicolas@tp-w530:~/tmp$ ldd tmp.exe 
	linux-vdso.so.1 =>  (0x00007fff117fe000)
	libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007fee004e1000)
	/lib64/ld-linux-x86-64.so.2 (0x00007fee008e3000)
Das ist der Code:

Code: Alles auswählen

OpenConsole()
PrintN("Hallo Welt!")
CloseConsole()
Unter Windows hat der selbe Code als Executable 5632 Bytes und es werden die Bibliotheken MSVCRT.DLL und KERNEL32.DLL geladen.
Bild
Benutzeravatar
Shardik
Beiträge: 738
Registriert: 25.01.2005 12:19

Re: Empfehlung einer aktuellen OOP Sprache zum "reinschnuppe

Beitrag von Shardik »

Ich würde Dir empfehlen einmal einen Blick auf BlitzMax aus der BlitzBasic-Familie zu werfen.

BlitzMax ist eine objektorientierte Weiterentwicklung des prozeduralen BlitzBasic, das genauso wie PureBasic plattform-unabhängig auf Windows, Linux und MacOS läuft. Außerdem ist BlitzMax vor 2 Monaten von seinem Schöpfer Mark Sibly als Open Source freigegeben worden. Wenn Du Dich kostenlos bei BlitzBasic registrierst, kannst Du Dir die Orginalversion von BlitzMax (oder auch BlitzPlus und Blitz3D) herunterladen. Eine Übersicht mit Linksammlung für Anfänger (inklusive wie man sich BlitzMax herunterlädt) gibt es hier.

Den Umstieg von PureBasic auf BlitzMax halte ich für einen Hobbyprogrammierer für wesentlich einfacher als den Umstieg auf C++. In BlitzMax wird man nicht gezwungen, objektorientiert zu programmieren. Man kann erst einmal wie gewohnt prozedural programmieren und sich mit der Programmiersprache vertraut machen, um sich dann langsam auf objektorientiertes Terrain vorzutasten... :wink:
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: Empfehlung einer aktuellen OOP Sprache zum "reinschnuppe

Beitrag von NicTheQuick »

Das ist auch ein guter Vorschlag. An BlitzMax hab ich gar nicht mehr gedacht, obwohl ich mir selbst damals schon BlitzBasic gekauft hatte, bevor ich zu Purebasic kam.

In C++ wird man übrigens auch nicht gezwungen objektorientiert zu programmieren.
Bild
Benutzeravatar
Shardik
Beiträge: 738
Registriert: 25.01.2005 12:19

Re: Empfehlung einer aktuellen OOP Sprache zum "reinschnuppe

Beitrag von Shardik »

Shardik hat geschrieben:Den Umstieg von PureBasic auf BlitzMax halte ich für einen Hobbyprogrammierer für wesentlich einfacher als den Umstieg auf C++. In BlitzMax wird man nicht gezwungen, objektorientiert zu programmieren. Man kann erst einmal wie gewohnt prozedural programmieren und sich mit der Programmiersprache vertraut machen, um sich dann langsam auf objektorientiertes Terrain vorzutasten... :wink:
NicTheQuick hat geschrieben:In C++ wird man übrigens auch nicht gezwungen objektorientiert zu programmieren.
Stimmt, das liest sich bei mir so als ob ich meine, dass der Umstieg auf C++ weniger einfach ist, weil man in C++ objektorientiert programmieren muß. Eigentlich hätte ein Absatz zwischen die beiden Sätze gehört, weil ich diese Implikation nicht beabsichtigte. Denn C++ wird von Verfechtern der objektorientierten Programmierung immer vorgeworfen, für Umsteiger aus der prozeduralen Programmierung schlecht geeignet zu sein, weil man eben auch weiterhin prozedural arbeiten kann und nicht gezwungen ist, objektorientiert zu arbeiten und angeblich nur eine komplette Umstellung der Denkweise zu guten objektorientierten Programmen führt...

Ich halte C++ für Hobbyprogrammierer für zu schwierig, weil C++ sehr komplex ist und nur ein täglicher Umgang damit zu einem effizienten Einsatz führen wird.
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: Empfehlung einer aktuellen OOP Sprache zum "reinschnuppe

Beitrag von NicTheQuick »

Das schlimmste an C++ sind ja die Compiler-Fehlermeldungen, die nicht immer auf die Zeile verweisen, in der der Fehler tatsächlich steckt. :mrgreen: Aber das lernt man dann irgendwann auch, dass man einfach nur ein Semikolon in einer Header-Datei vergessen hat. :lol:
Bild
NeoChris
Beiträge: 205
Registriert: 21.11.2013 21:17
Wohnort: Schweiz
Kontaktdaten:

Re: Empfehlung einer aktuellen OOP Sprache zum "reinschnuppe

Beitrag von NeoChris »

NicTheQuick hat geschrieben:Das schlimmste an C++ sind ja die Compiler-Fehlermeldungen, die nicht immer auf die Zeile verweisen, in der der Fehler tatsächlich steckt. :mrgreen: Aber das lernt man dann irgendwann auch, dass man einfach nur ein Semikolon in einer Header-Datei vergessen hat. :lol:
Wenn der Compiler nicht in der lage ist die richtige Fehlerzeile zu ermitteln dann ist das ein sehr schlecht programmierter Compiler. Sehr unprofessionell wenn nicht mal die Zeile ermittelt werden kann. /:->
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: Empfehlung einer aktuellen OOP Sprache zum "reinschnuppe

Beitrag von NicTheQuick »

Das sind seltene Fälle. Die Fehlermeldungen der Compiler sind meistens voll mit Informationen, die man erstmal lernen muss zu verstehen. Sie sind eben aussagekräftiger als die von Purebasic.
Das Problem mit dem Semikolon rührt daher, dass bei C/C++ ein Befehl mit einem Semikolon abgeschlossen wird. Hat man das Semikolon z.B. in der letzten Zeile in einer Headerdatei "a.h" vergessen und inkludiert diese in "a.cpp", dann entsteht der Fehler eben auch in "a.cpp", wenn dort ein neuer Befehl steht, der den letzten in "a.h" nicht sinnvoll ergänzen kann.

Wenn du diese Arbeitsweise als sehr schlecht programmierten Compiler empfindest, dann mach's besser. Bin gespannt. :allright:
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: Empfehlung einer aktuellen OOP Sprache zum "reinschnuppe

Beitrag von ts-soft »

NeoChris hat geschrieben:Wenn der Compiler nicht in der lage ist die richtige Fehlerzeile zu ermitteln dann ist das ein sehr schlecht programmierter Compiler. Sehr unprofessionell wenn nicht mal die Zeile ermittelt werden kann. /:->
Der Compiler sieht keine Zeilen, weil es in c++ keine Zeilen im herkömmlichen Sinne gibt.
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
Benutzeravatar
Kurzer
Beiträge: 1617
Registriert: 25.04.2006 17:29
Wohnort: Nähe Hamburg

Re: Empfehlung einer aktuellen OOP Sprache zum "reinschnuppe

Beitrag von Kurzer »

Ich habe meine Freizeit u.a. mit dem erfolglosen Versuch verbracht, dem DevCpp einen anderen Compiler unterzujubeln, der direkt gegen die Microsoft DLLs linkt (statt gegen eine 1 MiB große eigene Runtime DLL). Dummerweise kann ich mich in sowas immer ganz gut "verbeißen" - hat nur hier nicht viel gebracht, außer dass ich jetzt Visual Studio 8 Express auf ner virtuellen Maschine habe.

Eure weiteren Kommentare zu C++ find ich ziemlich hilfreich und der link zu BlitzMax war auch gut. Danke.
"Never run a changing system!" | "Unterhalten sich zwei Alleinunterhalter... Paradox, oder?"
PB 6.02 x64, OS: Win 7 Pro x64 & Win 11 x64, Desktopscaling: 125%, CPU: I7 6500, RAM: 16 GB, GPU: Intel Graphics HD 520
Useralter in 2024: 56 Jahre.
Antworten