DirectPlay?

Übersicht BlitzBasic Beginners-Corner

Gehe zu Seite 1, 2  Weiter

Neue Antwort erstellen

KnorxThieus

Betreff: DirectPlay?

BeitragSa, Apr 18, 2015 13:23
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo,

Ich habe einen kleinen BlitzPlus-Dialog mit B+ programmiert, welcher auf dem Zielrechner leider mangels DirectPlays nicht funktioniert.
Ich verwende aber keine der DirectPlayuser posted image-Funktionen, die kannte ich bis heute noch nicht mal - welcher Befehl kann sonst noch DP verwenden?

Seltsamerweise wird auf dem Zielrechner die Fehlermeldung wegen DP schon beim Debuggen eines leeren Codefenster angezeigt. Gibt es irgendeine Möglichkeit, das automatische Laden dieser doch wohl unbenötigten Funktion abzuschalten?
Ich würde mich sehr über eure Hilfe freuen! :-)

Mit freundlichen Grüßen,
KnorxThieus
Version: BlitzPlus / Blitz+

Thunder

BeitragSa, Apr 18, 2015 14:04
Antworten mit Zitat
Benutzer-Profile anzeigen
Das Problem ist wohl, dass BlitzPlus sein gesamtes Arsenal an Funktionen in eine Datei hineinkompiliert. Auch ein leeres B+ Programm enthält schon alle Funktionen und auch DirectPlay und ich nehme an das ist das Problem.

Ich wüsste nicht, wie man das ohne größeren Aufwand lösen kann.
Du könntest natürlich hergehen und den BlitzPlus Code herunterladen, das DirectPlay Zeug raushauen und neu kompilieren, aber das ist echt zach... Der Code ist voller Fehler und braucht ein spezielles DX7 SDK, damit es kompilierbar ist.

Andere Variante: Du öffnest das Programm auf dem Rechner, wo es nicht läuft, in einem Debugger und machst quasi Reverse Engineering. Schaust wo es abstürzt und entfernst den Funktionsaufruf.

DAK

BeitragSa, Apr 18, 2015 14:05
Antworten mit Zitat
Benutzer-Profile anzeigen
Das kann kompliziert werden. DirectPlay ist eigentlich ein Netzwerkdingens. Funktioniert's ohne deinem Dialog? Wenn nein, dann war's das hier. Wenn ja, dann geh schrittweise vor: immer eine Zeile mehr hinzufügen, bis es crasht.

DirectPlay rausnehmen ist nur möglich, wenn du dafür BlitzPlus neu kompilierst (also den ganzen Compiler), was unter eher sehr schwer rennt.

Ansonsten wird es wohl Zeit für einen Umstieg auf eine neue Sprache...
Gewinner der 6. und der 68. BlitzCodeCompo

KnorxThieus

BeitragMi, Mai 27, 2015 17:04
Antworten mit Zitat
Benutzer-Profile anzeigen
Ach, jetzt hatte ich die E-Mail-Benachrichtigung hier ganz vergessen … :/

Danke für euer beiden Antworten!
Inzwischen ließ sich DirectPlay auf besagtem PC doch nachinstallieren. Very Happy

@DAK – neue Sprache: Ja, ich habe mir auch schon ein C++-Einsteigerbuch besorgt und gelesen, aber das verläuft irgendwie im Sande … ich finde keine guten Tutorials für Grafik, Threads und was es sonst noch so gibt, und es macht irgendwie einfach mehr Spaß, mit 1/2 Bildschirmseite Code bereits ein einfaches Fenster mit BB zu erstellen – C++ erfordert doch immer sehr viel Zeit, auch wenn mir klar ist, dass der Code dafür hoch ressourcensparend etc. ist.
Mal sehen, wie es weitergeht! Smile
Version: BlitzPlus / Blitz+

Xeres

Moderator

BeitragMi, Mai 27, 2015 18:38
Antworten mit Zitat
Benutzer-Profile anzeigen
Du könntest upx versuchen - vielleicht wird beim komprimieren auch all das überflüssige Zeug entfernt.
Win10 Prof.(x64)/Ubuntu 16.04|CPU 4x3Ghz (Intel i5-4590S)|RAM 8 GB|GeForce GTX 960
Wie man Fragen richtig stellt || "Es geht nicht" || Video-Tutorial: Sinus & Cosinus
T
HERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld)

KnorxThieus

BeitragMi, Mai 27, 2015 19:31
Antworten mit Zitat
Benutzer-Profile anzeigen
Das ist praktisch – probieren kann ich es jetzt ja leider nicht, ohne DirectPlay auf meiner heißgeliebten Kiste zu deinstallieren …

Aber ich habe mal zwei "leere" EXE-Dateien mit B+ geschrieben, also mit leerem Code: einmal mit Debugger, einmal ohne. UPX konnte 57,84 % aus der kleineren Exe und weitere 0,07 % aus der größeren, gedebuggen Exe herausschneiden.
Nicht schlecht! Cool

Version: BlitzPlus / Blitz+

DAK

BeitragDo, Mai 28, 2015 11:32
Antworten mit Zitat
Benutzer-Profile anzeigen
C++ ist auch, mit verlaub, eine Kacksprache.

Wenn dir kurze Sources wichtig sind (also mit wenig Code viel machen können), dann schau dir mal Pyton an. Ist generell eine widerliche Sprache, ist aber noch etwas kompakter als BB.

Ansonsten schau dir vielleicht Java mit Swing als Grafikframework und Netbeans als IDE an. Java ist inzwischen bei weitem nicht mehr so langsam wie es mal war und mit einem Swing-Panel ist das Grafischen Programmieren beinahe gleich wie in BB (hat sogar die meisten Befehle gleich). Java ist hald auch eher dafür gedacht, mit einer guten IDE programmiert zu werden. Mit einem simplen Texteditor mit Codehighlighting wie in BB kommt man da nicht weit.
Gewinner der 6. und der 68. BlitzCodeCompo

KnorxThieus

BeitragDo, Mai 28, 2015 12:33
Antworten mit Zitat
Benutzer-Profile anzeigen
Hm, wieso soll C++ so schlecht sein?
Ich habe vor allem vor, dahin zu wechseln, weil ich die Einschränkungen in Blitz (sowohl GUI- als auch Grafikgeschwindigskeits-mäßig) leid war … es klang ganz verlockend, keine derartigen Effizienzeinschränkungen durch den Compiler mehr im Wege zu haben. Mir ist schon klar, dass sich das mit Kurz- & Knackigkeit so gut wie gar nicht verbinden lässt.
Version: BlitzPlus / Blitz+

Cykid

BeitragDo, Mai 28, 2015 14:58
Antworten mit Zitat
Benutzer-Profile anzeigen
Ach mit SFML oder anderen Bibliotheken geht das ganz gut.
Ist halt geschmackssache, C++ is schon sehr sehr Hardware nah.

Java ist mittlerweile auch geschmeidig und sehr vielseitig einsetzbar.

Nur C++ zickt mehr^^
Aber auch hier kann man mit 10 Zeilen Code ein DX oder OpenGL Fenster erstellen wenn man denn möchte.

Code: [AUSKLAPPEN]

//Die Grafik Lib includen
#include <SFML/Graphics.hpp>

int main()
{
    //Ein Objekt vom Typ "Fenster" erstellen, mit den Parametern
    sf::RenderWindow window(sf::VideoMode(200, 200), "SFML works!");
    //Ein "Oval" nur als Objekt
    sf::CircleShape shape(100.f);
    //Farbe des Objektes setzen
    shape.setFillColor(sf::Color::Green);
    //solange das Fenster offen ist...
    while (window.isOpen())
    {
        sf::Event event;
        while (window.pollEvent(event))
        {
             //Das Event abfangen falls aufs "X" geklickt wird
            if (event.type == sf::Event::Closed)
                window.close();
        }
        //"CLS"
        window.clear();
        //Draw ist eine Methode von Window. Als Parameter wird ein Zeichenbares Objekt erwartet.
        //Wir übergeben hier also unser Shape Objekt
        window.draw(shape);
        //Zum Schluss der "Flip"
        window.display();
    }

    return 0;
}


Als kleines Beispiel.
Der Krampf ist nur die Lib am laufen zu kriegen, aber auch das ist nichts unschaffbares ^^

KnorxThieus

BeitragDo, Mai 28, 2015 15:05
Antworten mit Zitat
Benutzer-Profile anzeigen
SFML? Bei meiner einstigen Recherche nach neuen Sprachen ist mir das nie so aufgefallen …
Aber das wären ja dann vergleichsweise Kleinigkeiten, wenn ich das richtig sehe, weil es ja nur Bibliotheken unter C++ wären, oder?
Version: BlitzPlus / Blitz+

Cykid

BeitragDo, Mai 28, 2015 15:24
Antworten mit Zitat
Benutzer-Profile anzeigen
Davon gibt es mehrere Libs, man kann halt die nehmen die einen passt.
Würde Allegro 5 oder SFML Empfehlen.

Komplett in C++, + OPENGL oder DX zu schreiben ist ne ganz schöne Aufgabe^^

Die Libs nehmen dir das ab und liefern vor allem auch fallbacks für andere Betriebssysteme.

Das heißt wenn ich die Threading Klasse von SFML nehme, wird unter Windows automatisch die Windows Threads genommen und unter Linux die jeweils anderen.

C++ lebt von Bibliotheken und bringt standartmäßig auch eine ganze Menge mit.
Klar, man kann sich das alles auch selber schreiben, nur teilweise muss man dann tatsächlich "Brigdes" Im Assembler schreiben und dann wirds richtig Tricky.

KnorxThieus

BeitragDo, Mai 28, 2015 16:56
Antworten mit Zitat
Benutzer-Profile anzeigen
Aha, und was ist "professioneller"? Bibliotheken nutzen oder selber schreiben?
Version: BlitzPlus / Blitz+
 

feider

ehemals "Decelion"

BeitragSo, Mai 31, 2015 21:24
Antworten mit Zitat
Benutzer-Profile anzeigen
Bibliotheken nutzen. Alles in C++ mit den Grundlagen selbst zu machen ist sinnlos, wenn es nicht zu Übungszwecken geschieht.

DAK

BeitragMo, Jun 01, 2015 1:34
Antworten mit Zitat
Benutzer-Profile anzeigen
Mal noch meinen Senf dazu:

Je nach dem, was du machen willst, ist entweder C++ oder Java sinnvoller. Von der Sprache selbst her ist Java im Grunde C++ weitergedacht. C++ ist eine sehr freie und deswegen leider sehr chaotische Sprache. Für alles was man tun will gibt es viele verschiedene Wege. Wie man sauber C++ programmiert, da gibt es mehr Standards als Programmierer, und Arten, wie man unsauber programmiert gibt es wie Sand am Meer. Es gibt für jede Aufgabe dutzende Bibliotheken. Wenn du in C++ was programmieren willst, dann kannst du dich mal darauf gefasst machen, ein paar Stunden lang passende Bibliotheken zu suchen.
Die Standardbibliothek von C++ ist schon sehr hilfreich, allerdings deckt sie bei Weitem nicht alle wichtigen Sachen ab (z.B. eben die Grafik).
Wenn du verschiedene Bibliotheken im gleichen Projekt verwendest (was zwangsläufig bei jedem halbwegs großen Projekt passiert), dann wirst du dich den verschiedenen Programmierstilen dieser Bibliotheken anpassen müssen, was das Programm eventuell auch etwas unschöner macht, wenn z.B. die eine Bibliothek einem sehr prozeduralen Stil folgt, während die Andere auf Objektorientierung legt.

C++ hat standardmäßig keine Garbage Collection, was vor allem in Kombination mit der Objektorientierung fast schon pingelige Genauigkeit beim Programmieren erfordert, weil du sonst schnell Memory Leaks bekommst.

Zusätzlich zu der Programmiersprache selbst hat C++ noch einen Precompiler, der zwar für C++ absolut essenziell ist, aber gleichzeitig eine weitere Ebene an Komplexität einbaut. Das ist quasi eine Art Programm, die vor dem Kompilieren ausgeführt wird, um den Code zu modifizieren.

Dafür ist C++ ziemlich Hardwarenahe und ermöglicht es somit, schnellere und besser an die Hardware angepasste Programme zu schreiben. Wichtig ist es hier zu sagen, ein Programm ist nicht notwendigerweise von Haus aus schneller, nur weil es in C++ geschrieben ist. C++ ermöglicht es nur besser zu optimieren. Das heißt, C++ produziert nur dann wirklich schnelle Programme, wenn der Programmierer fähig ist, Programme so zu schreiben, das sie schnell sind.

TLDR: C++ ist eine gute Sprache, wenn du wirklich die Hardwarenähe (z.B. USB-Schnittstellen ansteuern) oder extreme Effizienz brauchst (z.B. auf Microcontrollern, Betriebssystemprogrammierung, Triple-A-Spielen oder wissenschaftlichen Berechnungen).


Java hat einen anderen Ansatz. Hier sagt man, die Zeit, die der Programmierer zum Programmieren braucht ist wertvoller als die Rechenzeit des Computers. In 90% der Anwendungsfälle ist extreme Effizienz nicht notwendig. Ein Computer mit einem i3 und 4 GB Arbeitsspeicher hat enorme Ressourcen zur Verfügung, die selten wirklich ausgelastet werden. Deswegen verlagert Java die auftretenden Fehler von der Runtime zur Compile-Zeit. Das heißt, statt dass das Programm z.B. wegen falschen Casts abstürzt werden solche Fehler schon beim Kompilieren angezeigt. Während der Laufzeit gibt es weitere Checks, die dafür sorgen, dass z.B. Array Index out of Bounds-Exceptions geworfen werden, statt dass das Programm über schwerwiegende Fehler einfach drüber geht.
Solche und ähnliche Maßnahmen sorgen dafür, dass du beim Fehlersuchen deutlich weniger Zeit brauchst. Allerdings kostet das dann natürlich etwas Geschwindigkeit.
Ähnlich schaut es mit der Garbage Collection aus, die sehr hilfreich ist und einem viel Arbeit abnimmt. Dafür braucht auch das etwas Geschwindigkeit.

That said: Im Vergleich zu BB ist Java immer noch deutlich schneller. Java kann nämlich Multithreading, 64-Bit (=> mehr als 4 GB RAM) und die Grafikkarte verwenden, was BB nicht (oder im Fall der Grafikkarte nur sehr schlecht) kann. In Java kannst du also gerade auch im Grafikbereich mit deutlich mehr Leistung rechnen, als was du in BB gewohnt bist.

Java ist ansonsten von der Sprache her deutlich sauberer und aufgeräumter als C++. Du wirst mit Java sicher flotter unterwegs sein als mit C++. Dazu hat Java auch deutlich bessere Toolkits wie z.B. die Netbeans IDE, die quasi alles toppt, was es für C++ gibt. (Man kann auch Netbeans mit C++ verwenden, dort geht es aber nicht so gut wie mit Java).

Die Java-Standardbibliothek umfasst auch noch ein gutes Bisschen mehr als die von C++, so inkludiert sie auch sehr schöne GUI- und 2D-Grafikframeworks. Es gibt sogar ein inkludiertes 3D-Grafikframework (Java 3D), das ist aber nicht so gut, da nimm eher eine externe Engine wie z.B. JMonkey3.


TLDR 2:
Bedenke ob du die extreme Effizienz von C++ wirklich brauchst, oder ob die Java reicht.
Außerdem: Wenn du programmieren kannst, dann ist der Wechsel auf eine andere Sprache üblicherweise ziemlich schnell (ein paar Tage) und einfach. Kannst also ja mal beides ausprobieren und nehmen, was dir besser gefällt.
Gewinner der 6. und der 68. BlitzCodeCompo
 

feider

ehemals "Decelion"

BeitragMo, Jun 01, 2015 12:52
Antworten mit Zitat
Benutzer-Profile anzeigen
Würde zu DAK noch etwas hinzufügen, bzw das Ganze ein wenig kommentieren.

Für die meisten Anwendungen ist eine stundenlange Suche nach Bibliotheken eher nicht notwendig, da du in sehr kurzer Zeit sehr gut Bibliotheken findest.

Für Multimedia (Graphik, Sound, Tastatur/Maus/Gamepad, Netzwerk..) sind SFML (objektorientiert) und SDL (funktional) je nach Programmierstil sehr zu empfehlen - damit kann man alles, was mit Blitz2D geht und noch einiges darüber hinaus. Persönlich finde ich SFML schöner als SDL und bin gerade vom einfachen Netzwerkmodul begeistert.

Für den 3d-Bereich gibt es OGRE3d (riesig, kann alles) oder Irrlicht (kleiner, leichter zu lernen) oder Crystal Space (sieht für mich nach ein paar Experimenten wie die ultimative Bibliothek aus, habe aber noch nicht viel Erfahrung damit).


Zur Aussage, C++ habe standardmäßig keine Garbage Collection: Dies ist nur relevant, wenn du mit unsicheren Pointern arbeitest. Objekte werden am Ende ihres Scopes zuverlässig gelöscht bzw deren Destruktor aufgerufen.
Seit C++11 kannst du (und solltest du) zudem mit Unique Pointern arbeiten, wenn du unbedingt Pointer brauchst. Auch diese bieten die Sicherheit, dass ein Objekt gelöscht wird/der Destruktor aufgerufen wird, wenn der Unique Pointer nicht mehr darauf zeigt/nicht mehr existiert.
Ein wirkliches Problem mit mangelnder Garbage Collection hast du nur bei sehr unsauberer Programmierung. Zudem hast du den Vorteil, dass bei vielen kleinen Objekten keine GC-Funktionen dein Programm ausbremsen.

Ein weiterer Vorteil von C++ ist das Überladen von Operatoren.
Hast du in Java eine neue Klasse beispielsweise für einen Vektor und willst eine Additionsfunktion hinzufügen musst du das umständlich mit einer .add-Funktion o.ä. lösen - in C++ kannst du dir für diese Klasse einfach das + neu definieren und der Code bleibt deutlich übersichtlicher.


> die alles toppt, was es für C++ gibt
Nö. Vim (für Masochisten wie mich) oder SublimeText 3 (für coole Hipster, auch wie mich) mit YouCompleteMe und GDB-Plugin ist sehr sehr schön. Und nicht so schwergewichtig wie NetBeans.

> C++ ist nur bei richtiger Programmierung schneller als Java
C++ wird komplett kompiliert, Java wird in eine Zwischensprache kompiliert und diese dann Just-in-Time in Maschinencode übersetzt. Bei gleichem Code ist Java hier immer langsamer. (Eine Ausnahme bildet Android 5, da wird Java auf dem Gerät sofort beim Installieren der Anwendung in Maschinencode kompiliert)
Richtig ist aber, dass man C++-Code zusätzlich noch mit sinnvoller Speichernutzung/Adressierung etc verschnellern kann, das wird aber normalerweise nur in Bibliotheken eingesetzt. Im normalen Programmieralltag sollte man von sowas nichts mitbekommen, da manche Tricks zu recht unübersichtlichem Code führen können.

Ein Herz für C++!

Grüße
feider

PS: C++14 wird selbstständig Spiele programmieren können, versteht natürliche Sprache und spielt die Spiele dann auch gleich selbst durch!

KnorxThieus

BeitragMo, Jun 01, 2015 16:49
Antworten mit Zitat
Benutzer-Profile anzeigen
Wow, Danke für eure ausführlichen Antworten! Very Happy

Also vergleiche ich die Geschwindigkeiten, ist BB langsam wie ein Stein (das war mir irgendwie schon immer klar), Java aktuell – könnte man damit aktuelle Spiele programmieren, oder wäre das doch wieder zu langsam? – und C++ ist noch schneller als Java, dafür aber aufwendiger zu schreiben. Wie groß ist denn der Geschwindigkeitsvorteil zwischen C++ und Java gegenüber Java und BB? Gering, oder?

Mir scheint, da ist Java dann doch geeigneter für mich. Ich habe mich wohl zu sehr vom Namen leiten lassen (plusplus Smile), als ich recherchiert habe.
Solange ich Sachen wie Transparenzeffekte in Real Time, Zwischenpixel (Text 12.5, 7.5, "Hallo") etc. bewerkstelligen kann und im Funktionsumfang nicht so eingeschränkt bin wie in BB (Bestes Beispiel m. E.: GUI), ist mir eigtl. alles recht, da haben dann Sachen wie schnelle Programmierung Priorität.

Dass Java da "irgendwie virtuell" arbeitet, hatte ich schon gehört. Hat das auf irgendwelche Funktionen praktische Auswirkungen?
Und was mich noch interessieren würde: Wie ist die Syntax in Java so? C++-Syntax hat mir, soweit ich es gelesen habe, ausnahmslos gut gefallen, wenngleich natürlich die praktische Erfahrung fehlt.

feider hat Folgendes geschrieben:
C++14 wird selbstständig Spiele programmieren können, versteht natürliche Sprache und spielt die Spiele dann auch gleich selbst durch!

Davon stand zumindest hier nichts – wo hast du das her?

MfG,
KnorxThieus
Version: BlitzPlus / Blitz+
 

feider

ehemals "Decelion"

BeitragMo, Jun 01, 2015 17:17
Antworten mit Zitat
Benutzer-Profile anzeigen
Oh, verzeih, C++17 war das mit der natürlichen Sprache und dem automatischen Spieleerstellen. Nebenbei kann das aber auch noch Filme drehen und Comics zeichnen, ein guter Trade-Off dafür, dass es erst so spät kommt.

Javas Geschwindigkeit reicht für Spiele an sich natürlich aus - Kommt halt darauf an, für welche. Witcher III mit Java zu entwickeln wäre eher albern, Witcher I von der Leistung her wohl möglich Wink

Sachen wie Transparenzeffekte etc hängen von der verwendeten Graphikbibliothek ab - ob das Java direkt kann, weiß ich nicht.

C++-Syntax und Java-Syntax sind sehr ähnlich, Java hat jedoch einige Einschränkungen und Dinge, an die man sich gewöhnung muss.
So ist bei der Vererbung nicht das Erben von mehreren Klassen möglich, hier müssen spezielle Interfaces genutzt werden. Das sind im Endeffekt Klassen, die nur aus virtuellen Funktionen bestehen.
Zudem gibt es in Java einen Unterschied zwischen Typen wie "Int" und "Integer". Beide bezeichnen Integer-Werte, das eine ist jedoch eine Klasse und das andere ein nativer Typ. Je nach dem, was du weiter mit der Variable machen willst, musst du dann das Richtige nehmen oder eben konvertieren.

Das "irgendwie virtuelle" hat wie schon beschrieben nur etwas mit der Übersetzung zu tun. Beim Programmieren merkt man davon nichts.

Wenn du einfach nur möglichst einfach programmieren willst, kann ich dir zudem noch Python empfehlen. Viele C++-Bibliotheken existieren auch für Python bzw haben Python-Bindings, die Sprache ist zudem deutlich einfacher aufgebaut als Java/C++. Python erinnert mich mehr an BlitzBasic als die meisten neuen Basic-Dialekte, ist aber lange nicht so eingeschränkt.
Python ist zwar eine interpretierte Sprache, wird also auch erst zur Laufzeit übersetzt, allerdings wird dabei die Maschinencode-Datei gespeichert und das nächste mal direkt ausgeführt, wenn ich es richtig verstanden habe. Somit langsamer als C++, wahrscheinlich langsamer als Java, aber für "normale" Spiele immer noch schnell genug.

KnorxThieus

BeitragMo, Jun 01, 2015 17:37
Antworten mit Zitat
Benutzer-Profile anzeigen
C++17: Wirklich? Klang für mich erst nach einem schlechten Scherz :/
Aber ich kann immer noch nichts Wahres dazu finden Sad

Gut, von Computerspielen habe ich jetzt keine große Ahnung, ich habe grafisch gesehen meinen Spaß bloß am Entwickeln von Animationen – nehmen wir die standardmäßigen Windows-7-oder-8-Animationen vom Minimieren etc., ist sowas mit Java geschwindigkeitstechnisch realisierbar?

Was du da an syntaktischen Änderungen erwähnst … so gut bin ich eh noch nicht, das ist wirklich zu vernachlässigen.

Python? Jo, schaue ich mir demnächst vlt. mal an … ich nehme mal an, dass ich in einem halben Jahr in der Oberstufe – wo für mich erstmals Informatik als Schulfach möglich sein wird –, oder spätestens in einem möglichen Studienfach eh mit so richtig professionellen Sprachen konfrontiert werden werde; da kann ich auch gleich vorlernen. Wink
Version: BlitzPlus / Blitz+

Thunder

BeitragMo, Jun 01, 2015 22:14
Antworten mit Zitat
Benutzer-Profile anzeigen
Oh gott, jetzt geht das wieder los xD

Ich werde mich auf ganz wenige Bemerkungen beschränken:

- Das mit automatischem Spiele Erstellen und natürlicher Sprache sind offensichtlich keine Sprachfeatures und imho ein Aprilscherz... wenn dann wäre das STL-Funktionalität, aber ne - unplausibel - auch für C++17

- Es ist wirklich wirklich schwierig, korrekten C++-Code zu schreiben. Das muss jetzt nichts schlechtes heißen. Wenn dich die Sprache fasziniert, so wie mich und offenbar auch feider, dann weckt das eher Interesse. C++ ist einfach tausendmal mächtiger als Java. Und ich meine die Sprachen - nicht ihre Standardbibliotheken.
Bsp:
Du kannst in C++ Variablen auf drei verschiedene Arten an Funktionen übergeben, "by-value" oder "by-reference" entweder als Zeiger oder Referenz. In Java kannst du dir das nicht aussuchen.

- Der Vorteil von Java ist: Das meiste wurde schon für dich erledigt, du machst ein "import blablub" und kannst blablub verwenden. Genauso wie in Python. Und meiner Meinung nach ist hier Python das geringere Übel, weil weniger Tipparbeit ("public static void main")

Und gegen Java sag ich jetzt lieber nichts, sonst kommt gleich DAK nochmal Very Happy

PS: Außerdem musst du dich in Java nicht um Speicher kümmern (wie in Blitz). Du legst einfach Objekte an und überlässt dem GC die mühselige Arbeit, herauszufinden, welche Objekte du nicht mehr verwendest, und deren Speicher dann freizugeben. Daraus folgt, Java-Programmierer sind faul! Razz

Eingeproggt

BeitragMo, Jun 01, 2015 22:50
Antworten mit Zitat
Benutzer-Profile anzeigen
Ist ein heißes Thema und wenn sich schon so viele, durchaus umfangreiche und (fast, bis auf natürliche Sprache) sachliche Beiträge zusammen gekommen sind möcht ich doch auch mal wieder den Mund aufmachen Wink

Aber keine Sorge, da ich mit C++ wenig Erfahrung habe und mit Java nur auf der Uni in Kontakt kam möchte ich mich nicht für ein "Lager" entscheiden. Ich möchte auf die vorige Frage, was "professioneller" sei (Bibliotheken schreiben oder nutzen), zurück kommen:

Ich sehe in beiden sehr viel Professionalität, aber es sind 2 Paar Schuhe.

Bibliotheken schreiben erfordert einiges an Fachwissen. Wie schon angesprochen ist es "zum Tüfteln" oder für Leute die sich sehr genau mit der Materie befassen wollen, was ja auf jeden Fall nichts schlechtes ist.

Bibliotheken nutzen ist die effizienteste Art zu Programmieren, wenn man ein gewisses Verständnis für Software-Entwicklung hat, können Bibliotheken den Entwicklungsvorgang um das gefühlte hundertfache beschleunigen. Gerade hauptberufliche Programmierer müssen teilweise möglichst schnell liefern, also verwenden sie Bibliotheken.

Ist also beides "professionell" und die Frage ist meiner Meinung nach, wo du dich eher siehst.

mfG, Christoph
Gewinner des BCC 18, 33 und 65 sowie MiniBCC 9

Gehe zu Seite 1, 2  Weiter

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group