Blitz3D, BlitzMax oder C++ ?

Übersicht Sonstiges Smalltalk

Gehe zu Seite Zurück  1, 2

Neue Antwort erstellen

 

Nox

BeitragMo, Aug 25, 2008 12:42
Antworten mit Zitat
Benutzer-Profile anzeigen
Zitat:
Alleine schon die tatsache das es -> und . braucht spricht für hässlich. Nein, dass (*x).a das gleiche ist wie x->a machts nicht besser. In einer sauberen OO sprache gibts nur .a und fertig.

Zum Ersten: Was haben denn nun Pointer mit einer "sauberen OO-Sprache" zu tun? Zum Zweiten: Was haben Pointer überhaupt direkt mit Objekt-orientierten Sprachen zu tun?

Zitat:
Man merkt C++ an, das es original mal C war und einfach husch husch damals als OO aufkam erweitert wurde.

Es ist nicht im Original C. Wer C++ nutzt, um C-Code zu schreiben, macht generell was falsch. C ist aus Kompatibilitätsgründen eine Teilmenge von C++, was nicht hätte sein müssen, da bin ich deiner Meinung. Aber jeder, der C++ ernsthaft nutzt, schreibt auch nur C++.

Zitat:
die verbockte Syntax hingegen bezüglich pointer geholze hat man seither nimmer angerührt.

Was ist denn an Pointern verkehrt? Jetzt argumentiere nicht, dass man damit viel falsch machen kann. Pointer sind ein sehr mächtiges Werkzeug, und jede Sprache nutzt sie unter der Haube. C++ erlaubt, direkt damit zu arbeiten.

Zitat:
( *(obj->data[&i])->someData und dergleichen sprechen meiner meinung nach bände, WIE grauenvoll das ganze verholzt wurde bezüglich syntax der lesbarkeit erzeugt und dadurch auch eine brauchbare maintability ).

Ich weiß nicht, wieviele Jahre ich C++ schreibe (es sind einige), aber so einen Quatsch habe ich bisher nie verzapft. Wieso wird hier nur die ekligste Seite, die man machen kann, beleuchtet? Nenne mir ein Beispiel, wo solch ein Codestück in einer richtigen C++-Anwendung geschrieben wurde, und ich zeige dir, dass man es besser machen kann.

Zitat:
Das liegt primär natürlich daran, dass man die C pointer arithmetik nicht überarbeitet und modernisiert hat.

Das hat man schon lange in Form der boost-Libraries. Kein Bestandteil des Standards (noch nicht), das stimmt, aber sie gibt es.

Zitat:
Die Aufgabe einer Sprache ist es den Programmierer zu unterstützen und das tut sie nur partiell, denn sie behindert ihn gleichzeitig dank denn zusammengewürfelten möglichkeiten (functionspointer vs templates vs was auch immer es sonst noch gibt.

Funktionspointer sind in C++-Anwendungen wenig bis garnicht vorhanden -- ausgenommen diverse GUI-Toolkits und andere Spielereien. Die klassischen Funktionspointer, wie man sie in C nutzte, wirst du allerdings fast nie antreffen. Und ich verstehe nicht, was unpraktisch daran ist, wenn ich sie doch mal nutzen muss/will. Eine Referenz auf eine Funktion, das gibt's in zig anderen Sprachen ebenfalls.

Zitat:
Sicher, da kann man sagen die progger sind schuld.

Ob du's glaubst oder nicht, das ist tatsächlich so. Smile

Zitat:
Apple hat drauf reagiert -> obj c
MS hat drauf reagiert -> managed C++, C#
Auf Linux fehlt noch was gescheites

Das mit Objective C ist nicht dein Ernst, oder? Du beschwerst dich über kryptische Syntax, aber nennst Obj C als was Gescheiteres? Da finde ich die Symbolik darin eher schlimmer (z.Bsp. http://www.kehlet.cx/articles/90.html).

Managed C++ finde ich persönlich für mich absolut unnötig. Dieselben Resultate erreiche ich mit derselben Symmantik in C++ mit Hilfe externes Libs. C#... Ich kenne die Sprache nur flüchtig, mir ist sie zu "hochsprachig". Wahrscheinlich das, was dich genau an C++ stört.

Auf Linux fehlt noch was Gescheites. Very Happy Darauf habe ich gewartet. Ich dachte schon, du schreibst dieses Posting mal ohne Flame auf Linux. Wink Es ist unglaublich, wieviel Fleiß du in den Dreck ziehst.. Du kommst mir nicht so vor, als wärst du der absolute Noob in der Linux-Welt, aber manchmal frage ich mich, ob du wirklich genügend Erfahrung mit ihr hast. Tausende von Leuten (mache von mir aus einige Nullen dran) arbeiten und entwickeln erfolgreich mit dem System und den primären Sprachen C und C++. Und die meisten quälen sich noch nichtmals damit rum, sondern sind höchst effizient und sogar zufrieden. Es gehört mehr dazu, eine Sprache wie C++ mit all seinen Konstrukten zu beherrschen, als dein "( *(obj->data[&i])->someData". Und achja: Da fehlt 'ne Klammer... Rolling Eyes
 

Dreamora

BeitragMo, Aug 25, 2008 13:14
Antworten mit Zitat
Benutzer-Profile anzeigen
Nox hat Folgendes geschrieben:

Zitat:
Man merkt C++ an, das es original mal C war und einfach husch husch damals als OO aufkam erweitert wurde.

Es ist nicht im Original C. Wer C++ nutzt, um C-Code zu schreiben, macht generell was falsch. C ist aus Kompatibilitätsgründen eine Teilmenge von C++, was nicht hätte sein müssen, da bin ich deiner Meinung. Aber jeder, der C++ ernsthaft nutzt, schreibt auch nur C++.


Damit meinte ich eigentlich, das man C++ als Addon entwickelt hat, nicht als eigenständige Sprache. Man hat Syntax Elemente und andere Dinge von C übernommen die so in einer OO Sprache einfach nix zu suchen haben wo es darum geht grosse Systeme strukturiert zu entwickeln.

Nox hat Folgendes geschrieben:

Zitat:
die verbockte Syntax hingegen bezüglich pointer geholze hat man seither nimmer angerührt.

Was ist denn an Pointern verkehrt? Jetzt argumentiere nicht, dass man damit viel falsch machen kann. Pointer sind ein sehr mächtiges Werkzeug, und jede Sprache nutzt sie unter der Haube. C++ erlaubt, direkt damit zu arbeiten.


Gebe ich dir recht
Nur hat es sehr gute Gründe warum die meisten aktuellen Sprachen Referenzen und nicht Pointer haben.

Nox hat Folgendes geschrieben:

Zitat:
Das liegt primär natürlich daran, dass man die C pointer arithmetik nicht überarbeitet und modernisiert hat.

Das hat man schon lange in Form der boost-Libraries. Kein Bestandteil des Standards (noch nicht), das stimmt, aber sie gibt es.


Du verweist auf einen Standard der schon selbst nicht existiert (VC++ vs Borland C++ vs GCC 4.x). Das wär dann eigentlich das andere Problem. Das C++ nicht eine Sprache ist sondern als was auch immer man sie bezeichnen will.

Nox hat Folgendes geschrieben:

Zitat:
Die Aufgabe einer Sprache ist es den Programmierer zu unterstützen und das tut sie nur partiell, denn sie behindert ihn gleichzeitig dank denn zusammengewürfelten möglichkeiten (functionspointer vs templates vs was auch immer es sonst noch gibt.

Funktionspointer sind in C++-Anwendungen wenig bis garnicht vorhanden -- ausgenommen diverse GUI-Toolkits und andere Spielereien. Die klassischen Funktionspointer, wie man sie in C nutzte, wirst du allerdings fast nie antreffen. Und ich verstehe nicht, was unpraktisch daran ist, wenn ich sie doch mal nutzen muss/will. Eine Referenz auf eine Funktion, das gibt's in zig anderen Sprachen ebenfalls.


Moderne OO Sprachen haben Referenzen auf Funktionen, oder sogar Agents / Delegates. Nicht Pointer.
Das eine hat mit dem anderen herzlich wenig zu tun, denn ein Funktionspointer ist etwas was auf Memory Ebene rumholzt und nicht unerhebliche Auswirkungen auf die Performance hat Aufgrund der Auswirkung auf die CPU Pipeline.

Ich sage auch nicht das sie unpraktisch sind. Was ich grottig finde ist das C++ als einzige möchtegern moderne Sprache kein einheitliches Konzept hat.
Wie gesagt: Nicht zu Ende designt und immer wieder neue Dinge rangehängt bis es zu dem Monster wurde das es heute ist.


Nox hat Folgendes geschrieben:

Zitat:
Sicher, da kann man sagen die progger sind schuld.

Ob du's glaubst oder nicht, das ist tatsächlich so. Smile

Zitat:
Apple hat drauf reagiert -> obj c
MS hat drauf reagiert -> managed C++, C#
Auf Linux fehlt noch was gescheites

Das mit Objective C ist nicht dein Ernst, oder? Du beschwerst dich über kryptische Syntax, aber nennst Obj C als was Gescheiteres? Da finde ich die Symbolik darin eher schlimmer (z.Bsp. http://www.kehlet.cx/articles/90.html).

Managed C++ finde ich persönlich für mich absolut unnötig. Dieselben Resultate erreiche ich mit derselben Symmantik in C++ mit Hilfe externes Libs. C#... Ich kenne die Sprache nur flüchtig, mir ist sie zu "hochsprachig". Wahrscheinlich das, was dich genau an C++ stört.

Auf Linux fehlt noch was Gescheites. Very Happy Darauf habe ich gewartet. Ich dachte schon, du schreibst dieses Posting mal ohne Flame auf Linux. Wink Es ist unglaublich, wieviel Fleiß du in den Dreck ziehst.. Du kommst mir nicht so vor, als wärst du der absolute Noob in der Linux-Welt, aber manchmal frage ich mich, ob du wirklich genügend Erfahrung mit ihr hast. Tausende von Leuten (mache von mir aus einige Nullen dran) arbeiten und entwickeln erfolgreich mit dem System und den primären Sprachen C und C++. Und die meisten quälen sich noch nichtmals damit rum, sondern sind höchst effizient und sogar zufrieden. Es gehört mehr dazu, eine Sprache wie C++ mit all seinen Konstrukten zu beherrschen, als dein "( *(obj->data[&i])->someData". Und achja: Da fehlt 'ne Klammer... Rolling Eyes
[/quote]

Das war kein Flame gegen Linux. Linux hat durchaus seinen Platz.
Aber es fehlt eine saubere moderne Alternative auf Basis von C unter Linux. (C ist eine gute Sprache, da gibt es nix gegen zu sagen)
Das bestehende C++ endlich zu säubern wagt ja niemand, man wär ja dann inkompatibel zum Steinzeitschrott von vor 10 Jahren. Kann mich noch ans GCC4 gejammer erinnern weil ein paar Dinge nimmer gingen.

Der ObjC Syntax mag vielleicht ein wenig schräg anmuten (tut das {} von C bei non-C ern auch), aber immerhin ist es zu Ende durchdacht und konsistent.
[obj methodToCall] find ich erheblich besser als wenn man 2+ möglichkeiten hat.

C++ ist die einzige "moderne OO" Sprache die auf Sprachebene keinen Multithreading Support hat.
Es hat lediglich via Libs multithreading. zB in dem Aspekt muss DRINGEND nachgebessert werden.


Das mit der Klammer stimmt, das war original ein einschub in einer klammer der ich dann als einzelnen Satz wieder reingepackt hab.
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.
 

ChristianK

BeitragMo, Aug 25, 2008 15:49
Antworten mit Zitat
Benutzer-Profile anzeigen
Wenn ich auch mal meinen Senf dazu geben darf:

Dreamora hat Folgendes geschrieben:
C++ ist die einzige "moderne OO" Sprache die auf Sprachebene keinen Multithreading Support hat.
Es hat lediglich via Libs multithreading. zB in dem Aspekt muss DRINGEND nachgebessert werden.

Genau das ist es, was mir an C/C++ gefällt. Es ist eine Sprache, die zum einen Teil systemnah ist, zum anderen Teil high-level. Für mich ist sie der perfekte Kompromiss zwischen Assember und Sprachen wie C# oder Java.
Wenn man versucht, C/C++ an "moderne" Sprachen anzupassen und mit allen möglichen high-level Features aufzupumpen, was bleibt dann in der Mitte zwischen Assembler und eben diesen Sprachen?
AdvanceLcd
Intel Core 2 Duo 3.2 GHz, 4 GB RAM, GeForce 8800 GTX | MacBook Pro 15,4″ Intel Core 2 Duo 2.4 GHz, 2 GB RAM, GeForce 8600M GT
 

Nox

BeitragMo, Aug 25, 2008 17:04
Antworten mit Zitat
Benutzer-Profile anzeigen
Zitat:
Damit meinte ich eigentlich, das man C++ als Addon entwickelt hat, nicht als eigenständige Sprache. Man hat Syntax Elemente und andere Dinge von C übernommen die so in einer OO Sprache einfach nix zu suchen haben wo es darum geht grosse Systeme strukturiert zu entwickeln.

C++ hat alle Mittel, strukturiert zu entwickeln. Die erfolgreichsten Software-Designs und allgemeinen Kniffe sind mindestens alle in C++ dokumentiert, da gibt's überhaupt keine Probleme. Ich kann nur erneut sagen: C ist eine Teilmenge, ja, aber nutze sie nicht, wenn du C++ schreibst. Denn *C* hat in einem C++-Quellcode nichts verloren. (ich spreche hier natürlich von den grundlegenden C-Konstrukten -- nicht jene, die auch sinnvoller Teil der Sprache C++ sind)

Zitat:
Gebe ich dir recht
Nur hat es sehr gute Gründe warum die meisten aktuellen Sprachen Referenzen und nicht Pointer haben.

C++ hat doch auch Referenzen?! Von denen man übrigens sehr starken Gebrauch machen sollte. Manchmal finde ich's schon fast traurig, dass ich so selten Pointer benutze.

Zitat:
Du verweist auf einen Standard der schon selbst nicht existiert (VC++ vs Borland C++ vs GCC 4.x). Das wär dann eigentlich das andere Problem. Das C++ nicht eine Sprache ist sondern als was auch immer man sie bezeichnen will.

Hm? Natürlich existiert ein C++-Standard. Wenn sich verschiedene Implementationen nur wage daran halten, kann die Sprache nichts dafür. Dann sei dir nahegelegt, einen Compiler zu verwenden, der zumindest versucht, den Standard einzuhalten (bspw. der GCC mit diversen Flags).
Das ist ein bisschen vergleichbar mit HTML. Jeder schreit heute über <font> und <b> usw. Standards sehen das auch anders vor. Trotzdem kochten enorm viele Leute ihr eigenes Süppchen.. Das machte HTML aber nicht schlecht.

Zitat:
Moderne OO Sprachen haben Referenzen auf Funktionen, oder sogar Agents / Delegates. Nicht Pointer.

Ich bevorzuge Interfaces.

Zitat:
Das eine hat mit dem anderen herzlich wenig zu tun, denn ein Funktionspointer ist etwas was auf Memory Ebene rumholzt und nicht unerhebliche Auswirkungen auf die Performance hat Aufgrund der Auswirkung auf die CPU Pipeline.

Was meinst du, wie viele Sprachen das unter der Haube selbst tun, die so "modern" sind? Das ist das, was ich sowohl am C-, als auch am C++-Dialekt schätze: ich weiß, was da los ist.

Zitat:
Ich sage auch nicht das sie unpraktisch sind. Was ich grottig finde ist das C++ als einzige möchtegern moderne Sprache kein einheitliches Konzept hat.

Das ist richtig, C++ bietet dir nur die Werkzeuge. Wie du was implementierst, darfst du dir frei aussuchen. Dabei haben sich allerdings viele Methoden bewährt, auf dessen Literatur man gern zurückkommen kann. Im Grund aber hat C++ sehr wohl ein eindeutiges Konzept. Es schreibt dir nur sehr wenig von Software-Design vor, ganz einfach.

Zitat:
Aber es fehlt eine saubere moderne Alternative auf Basis von C unter Linux. (C ist eine gute Sprache, da gibt es nix gegen zu sagen)

Trotz Pointern? SCNR Wink

Zitat:
Das bestehende C++ endlich zu säubern wagt ja niemand, man wär ja dann inkompatibel zum Steinzeitschrott von vor 10 Jahren. Kann mich noch ans GCC4 gejammer erinnern weil ein paar Dinge nimmer gingen.

Verdammt viele Leute würden den Standard erheblich aufpolieren. Aber wie du schon richtig sagst, da hängt viel Kompatibilität dran. Allerdings ist das Dank der Modularität von C++ zu verkraften. Mich störte es jedenfalls nie.

Zitat:
Der ObjC Syntax mag vielleicht ein wenig schräg anmuten (tut das {} von C bei non-C ern auch), aber immerhin ist es zu Ende durchdacht und konsistent.

Das kann ich nicht beurteilen.

Zitat:
[obj methodToCall] find ich erheblich besser als wenn man 2+ möglichkeiten hat.

Ist das ein normaler Methodenaufruf? Falls ja, finde ich die Syntax wirklich komisch. Ich kenn ja viele Dequalifizierer, wie ->, oder ., oder auch \ wie bei BB, aber [x y], hm, sieht mir eher nach einer Liste aus.

Zitat:
C++ ist die einzige "moderne OO" Sprache die auf Sprachebene keinen Multithreading Support hat.
Es hat lediglich via Libs multithreading. zB in dem Aspekt muss DRINGEND nachgebessert werden.

Warum?! Andere Sprachen liefern solche Libs einfach sofort mit aus. Du musst sie dir für C++ selbst besorgen. Wo ist jetzt das Problem? Das erhöht auch die Portierbarkeit, da du nicht an irgendein Paket gebunden bist. Du hast auch hier wieder die völlige Freiheit.. Damit will ich natürlich nicht sagen, dass andere Sprachen das nicht auch könnten. Aber dann sind sie doch wieder ziemlich ähnlich, oder etwa nicht?
 

E. Urbach

ehemals "Basicprogger"

BeitragMo, Aug 25, 2008 17:29
Antworten mit Zitat
Benutzer-Profile anzeigen
Stimme Nox und ChristianK in allen Punkten zu.

Ebenso finde ich es besser, wenn eine Sprache mit weniger Keywords und Konzepten auskommt und Funktionalität durch externe Module bzw. Libs hinzugefügt werden kann. Die ideale Sprache wäre für mich diejenige, bei der selbst "if" ein Modul ist, welches standardmäßig importiert wird. Das wäre wirklich eine universelle Sprache (wenn die Keywords in irgendeiner Weise definierbar wären). So weit ist C++ nicht gegangen, aber es entspricht am ehesten meinen Vorstellungen und da ich sie vorwiegend zur Spieleentwicklung nutze, gibt es auch viele bereits entwickelte Komponenten, die man einbinden kann. Es ist keine perfekte Sprache, aber sie erfüllt ihren Zweck, nämlich schnell (in der Ausführung) und gut für die Entwicklung von Libs zu sein (C++ Libs können übrigens in anderen Sprachen wie z.B. Python, eingebunden werden).
The box said, "Requires Windows XP or better", so I installed Ubuntu | Linux is NOT Windows
Flua :: Profiler für BB und BMax :: Partikel-Engine für BMax :: Lyphia-Projekt Quellcode (BMax) :: Automatische Parallelisierung :: Meine Musik

TheShadow

Moderator

BeitragMo, Aug 25, 2008 20:02
Antworten mit Zitat
Benutzer-Profile anzeigen
Zitat:
Dass du sie hasst, ist ja eine Sache. Aber das sie hässlich sein soll, würde ich gerne begründet hören.


Also das ist meine Meinung - der C++ Code sieht nicht elegant aus - sondern eher gruselig. Wobei es einen Unterschied zw. C und C++ gibt. Während ich mit C noch leben kann: es ist lowlevel - da akzeptiert man noch Pointer-Quelereien. Aber bei C++ kann ich absolut gar nix mehr akzeptieren - die ganze Sprache von Anfang bis Ende gefällt mir nicht...

Was mich am allermeisten an C/C++ stört ist der große Aufwand Code zu kompilieren... da gibt es einfach zuuuu viele Möglichkeiten - und es ist immer irgendwie furchtbar.

Es muß einfach sein:Projekt starten, paar Moudule hineinwerfen und sofort verwenden - ohne großen Aufwand... Bei C/C++ schaffe ich nicht mal einige Libs alleine zu kompilieren - da muß man immer irgendwo rumfummeln und Compiler einrichten... Von großen Projektzen ganz zu schweigen...

Nimmt einfach Blender und compiliert es from scratch - also jede Lib die dazuheört auch einzeln runterladen und "einpflegen" - ihr werdet sehen, dass es der helle Wahnsinn ist - ich hab es z.B. mit einem fertigen Library-Paket nicht geschafft...

Normal nehme ich an sollte es so gehen:
1) Blender sources laden und entpacken
2) Library-Paket laden und entpacken
3) Projektfile starten und komilieren

pustekuchen
AMD64 3500+ | GeForce6600GT 128MB | 1GB DDR | WinXPsp2
 

Nox

BeitragDi, Aug 26, 2008 9:28
Antworten mit Zitat
Benutzer-Profile anzeigen
Zitat:
Während ich mit C noch leben kann: es ist lowlevel - da akzeptiert man noch Pointer-Quelereien. Aber bei C++ kann ich absolut gar nix mehr akzeptieren - die ganze Sprache von Anfang bis Ende gefällt mir nicht...

Ich bezweifle, dass du dann jemals halbwegs eleganten C++-Code gesehen hast. Smile Naja, im Endeffekt ist's halt Geschmacksache, ob jemand das nun gut findet, oder nicht. Nur pauschal zu sagen, dass C++ hässlich aussieht, das geht dann widerrum nicht. Mir fällt nur immer dieses ewige Pointer-Genörgel auf. Pointer sind wirklich selten in C++. Und wenn es sie doch gibt, sind sie häufig const und du kannst eh nichts kaputt machen. Wink

Zitat:
Was mich am allermeisten an C/C++ stört ist der große Aufwand Code zu kompilieren... da gibt es einfach zuuuu viele Möglichkeiten - und es ist immer irgendwie furchtbar.

Ich finde es super, aus vielen Möglichkeiten wählen zu können. Es geht halt nicht immer und überall, dass man mit einem Druck auf "F5" sein Programm startet. Gerade im Bereich C und C++ wird erwartet, sich etwas mehr mit dem Drumherum auszukennen. Für diejenigen, die sich wirklich nur auf ihr Problem konzentrieren wollen, gibt's dann die mehr oder weniger gruseligen IDEs. Wink

Zitat:
Es muß einfach sein:Projekt starten, paar Moudule hineinwerfen und sofort verwenden - ohne großen Aufwand... Bei C/C++ schaffe ich nicht mal einige Libs alleine zu kompilieren - da muß man immer irgendwo rumfummeln und Compiler einrichten... Von großen Projektzen ganz zu schweigen...

Wenn du die Möglichkeit hast, deine Buildtools selbst zu wählen, empfehle ich einfach mal SCons. Du wirst erstaunt sein, welch komfortable Buildtools es gibt, die dir das Bauen von Software leichter machen, als es jede IDE tut. Aber vielleicht kennst du die Software ja auch schon.
Sonst könnte man auch universelle Makefiles nehmen, für kleinere bis mittlere Projekte. Auch alles ohne Schmerzen gut machbar.

Zitat:
Nimmt einfach Blender und compiliert es from scratch - also jede Lib die dazuheört auch einzeln runterladen und "einpflegen" - ihr werdet sehen, dass es der helle Wahnsinn ist - ich hab es z.B. mit einem fertigen Library-Paket nicht geschafft...

Das kommt jetzt wirklich ganz darauf an, wo du das probierst. Ich weiß nicht, ob Blender SDKs ausliefert oder nicht. Wahrscheinlich eher weniger, sonst hättest du keine großen Probleme. Ansonsten empfehle ich eine vernünftige Linux-Distribution, die sowas mit Links machen, z.B. Debian. Da genügt ein "apt-get source blender" für die Quellen, und ein "apt-get build-dep blender" für das Auflösen aller Abhängigkeiten des Quellpakets. Klingt einfach? Ist es auch. Smile

Wie dem auch sei, ich weiß ja nicht, wieviel Zeit ihr in das Ganze gesteckt habt. Ich sehe ein, dass das ganze Thema recht weiträumig und zeitaufwändig ist zu lernen und zu begreifen. Ich hab auch nichts dagegen, wenn jemandem die Sprache nicht gefällt. Wink Nur: sie ist tatsächlich sehr gut. Das ist allein schon darin begründet, dass sie immer noch exzessiv genutzt wird, und das unter anderem von Topleuten, die nicht nur des Geldes wegen programmieren. Ganz einfach deshalb, weil sich diese Sprache bewährt hat, und das über sehr sehr viele Jahre hinweg. Und ich bin überzeugt, dass sich das noch verdammt lange so hält.

So, mein tägliches Pensum an Bekehrungsversuchen ist erfüllt, bin dann mal eben den Stundenzettel ausfüllen. Rolling Eyes
 

Dreamora

BeitragDi, Aug 26, 2008 9:46
Antworten mit Zitat
Benutzer-Profile anzeigen
Immerhin auf der Windowsseite kann man das MakeFile geholze dank VS Express ja heutzutage auslassen. Gibt zwar leute denen da ein wenig flexiblität fehlt, aber naja, die haben meines erachtens einfach zuviel zeit wenn sie sie mit dem aufsetzen des Projekt Bodies verschwenden können / wollen statt mit dem Projekt.

Was mir unter Linux damals mehr gefehlt hat war ne gescheite IDE die vergleichbar ist mit VC++.

KDevelop steht aussen vor, verbuggter gehts vermutlich net (random decision wenn man autocomplete anzeigen lassen will, was man angezeigt bekommt und Projektverwaltung würde ich dem geramschel auch net sagen).
Eclipse C++ ist zwar nett, nur war und wird Eclipse vermutlich auch zum Tage des jüngsten Gerichtes keinen Preis für effiziente CPU Zeit und Speicher Nutzung gewinnen. War damals bei unserem Semesterprojekt unmöglich auf nem P4 2.4Ghz mit 1GB RAM damit zu arbeiten, soviel Geduld hat echt niemand. Das taugt nur wenn man mit Java arbeitet oder das Projekt klein genug ist.

Wenn ich bedenke das es unter Windows mindestens 3 IDEs gibt für C++ die allesamt besser sind (Borland, VC++, Code::Blocks), frage ich mich warum gleiches unter Linux, wo der Grossteil der Programmierer mit C/++ arbeiten nicht möglich war.
Sind die echt so crazy/gaga das sie VIM etc als akzeptable Entwicklungsumgebung für richtige Projekte (180 dateien, make file hierarchy, 15 dependencies) ansehen?



Nox: Nur weil du in deinem Code keine Pointer hast, heisst das nicht das andere keine haben.
Habe in der Vergangenheit nur selten C++ Code gesehen der nicht Pointer benutzt, und noch seltener C++ Code der nicht als Ausgleich dafür dann Memory Guards oder andere Mechanismen implementiert hatte um immerhin die Wahrscheinlichkeit eines Leaks einzudämmen bzw. bei Leak direkt Alarm zu schlagen.
Wie gesagt: Die Tatsache, dass sie da sind verleitet nunmal gerne und leider auch häufig dazu die Dinge zu nutzen wenn sie schnelleren Erfolg versprechen.
Das war / ist ja genau mein Hauptkritikpunkt. Die Sprache hat Dinge die kein erfahrener Progger nutzen würde, dummerweise die 50%+ an Hackern schon, die primär unter Zeitdruck arbeiten und per Datum X abliefern müssen und dann auf "wie man es machen würde" verzichten (oder es einfach nie gelernt haben)

Denn wer nicht alles selbst schreiben will, hat keine andere Wahl als sich mit anderer Leute Code auseinander zu setzen und ihn irgendwie reinzubekommen und da kommt mindestens mir dann diese Flexibilität normalerweise eher in die Querre als zu gute.
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.

BtbN

BeitragDi, Aug 26, 2008 12:57
Antworten mit Zitat
Benutzer-Profile anzeigen
Code::Blocks benutzt wxWidgets und läuft auf so zimlich jedem OS.
 

E. Urbach

ehemals "Basicprogger"

BeitragDi, Aug 26, 2008 13:08
Antworten mit Zitat
Benutzer-Profile anzeigen
Bei Code::Blocks sollte man btw die Nightly Builds installieren (zumindest früher waren die Versionsunterschiede zwischen der normalen und der nightly version sehr groß).
Ich persönlich bevorzuge Eclipse für C++ und Python. Da ich oft zwischen Linux und Windows, auch zwischen Python und C++, hin- und herwechseln muss, finde ich Eclipse sehr gut. Wie Dreamora schon sagte, ist es nicht besonders ressourcenfreundlich, aber das macht sich bei aktuellen Rechnern eigentlich nur beim Start bemerkbar.
KDevelop war für mich beim ersten Start eher verwirrend als nützlich, aber wenn man sich einarbeitet, kann man auch damit gut umgehen.
Außerdem hast du (Dreamora) Anjuta vergessen (Einarbeitungszeit etwas geringer als bei KDevelop).

@TheShadow:
Bitteschön:
Code: [AUSKLAPPEN]
./configure
make
sudo make install

Fertig.
Gib C++ nicht die Schuld, die Windows verdient.
The box said, "Requires Windows XP or better", so I installed Ubuntu | Linux is NOT Windows
Flua :: Profiler für BB und BMax :: Partikel-Engine für BMax :: Lyphia-Projekt Quellcode (BMax) :: Automatische Parallelisierung :: Meine Musik
 

Dreamora

BeitragMi, Aug 27, 2008 8:29
Antworten mit Zitat
Benutzer-Profile anzeigen
BtbN hat Folgendes geschrieben:
Code::Blocks benutzt wxWidgets und läuft auf so zimlich jedem OS.


Habs mir zuletzt angesehen als die VS Express Editionen starteten
Danach sah ich keinen Grund mehr einem Windows orientierten User zu was anderem zu raten, da VS für Projektentwicklung für Windows über alles erhaben ist, was die Konkurrenz in den letzten Jahren aufgefahren hat.

@Basicprogger: Anjuta kenne ich nicht selbst. hab es zwar in verschiedenen IDE vergleichen gesehen, dort schafte es es aber nie aus den "ferner liefern" raus.
Beherrscht es richtiges Projekt Management etc? Also die dinge die KDevelop garnicht bis nur schlecht beherrscht und die für eine selbst halbwegs akzeptable IDE notwendig sind.
Das man integrierten visuellen Debugger knicken kann ist etwas was man normalerweise unter linux einfach hinnimmt (weswegen ich da nimmer entwickle. XCode 3.1 oder VS 2005 / 2008 Pro. Wenns bei weder noch läuft solls sonst wer machen)
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.

amon

BeitragMi, Aug 27, 2008 10:54
Antworten mit Zitat
Benutzer-Profile anzeigen
unter linux und standard c bin ich eigentlich mit geany gut gefahren - mit anjuta bin ich nicht zurechtgekommen, das ist mir bei der make verwaltung immer abgekracht
 

Nox

BeitragMi, Aug 27, 2008 17:13
Antworten mit Zitat
Benutzer-Profile anzeigen
Zitat:
Immerhin auf der Windowsseite kann man das MakeFile geholze dank VS Express ja heutzutage auslassen. Gibt zwar leute denen da ein wenig flexiblität fehlt, aber naja, die haben meines erachtens einfach zuviel zeit wenn sie sie mit dem aufsetzen des Projekt Bodies verschwenden können / wollen statt mit dem Projekt.

Das hört sich so an, als meintest du Makefiles, wo man alle Quelldateien noch einzeln angibt und deren Abhängigkeiten. Das sollte wirklich so langsam der Vergangenheit angehören. Z.B. mit dem erwähnten SCons. Oder für kleine Projekte Makefiles mit Suchpattern, macht dann auch alles von alleine.

Zitat:
Was mir unter Linux damals mehr gefehlt hat war ne gescheite IDE die vergleichbar ist mit VC++.

Da kann ich garnichts zu sagen. Ich benutze keine IDE in dem Sinne, mir reicht mein vim mit einigen wenigen Plugins (z.B. für Sourcetree und sowas). Damit komme ich wirklich besser klar als mit den VC-IDEs (die letzte, die ich davon halbwegs gern nutzte, war VC6). Aber das ist sicherlich Geschmacksache, wobei ich ein Arbeiten mit vim völlig objektiv für enorm leistungsfähiger halte. Wink

Zitat:
Wenn ich bedenke das es unter Windows mindestens 3 IDEs gibt für C++ die allesamt besser sind (Borland, VC++, Code::Blocks), frage ich mich warum gleiches unter Linux, wo der Grossteil der Programmierer mit C/++ arbeiten nicht möglich war.
Sind die echt so crazy/gaga das sie VIM etc als akzeptable Entwicklungsumgebung für richtige Projekte (180 dateien, make file hierarchy, 15 dependencies) ansehen?

Mit sogar noch mehr Dateien ist das problemlos möglich..

Zitat:
Wie gesagt: Die Tatsache, dass sie da sind verleitet nunmal gerne und leider auch häufig dazu die Dinge zu nutzen wenn sie schnelleren Erfolg versprechen.
Das war / ist ja genau mein Hauptkritikpunkt. Die Sprache hat Dinge die kein erfahrener Progger nutzen würde, dummerweise die 50%+ an Hackern schon, die primär unter Zeitdruck arbeiten und per Datum X abliefern müssen und dann auf "wie man es machen würde" verzichten (oder es einfach nie gelernt haben)

Völlig richtig, leider gibt es viele Leute, die nicht das aus der Sprache schöpfen, was mehr vernünftig und möglich ist. Ich habe auch länger diese Fehler gemacht, aber Gott sei Dank daraus gelernt.

Anjuta find ich grausam. Genauso wie KDevelop und all dem Gedöhns. Was ich brauche, ist einen guten Editor mit Sourcetree, den ich gut per Tastatur steuern kann. Ich gebe zu, meine Maus nicht besonders zu lieben, weshalb ich IDEs wahrscheinlich mehr abgeneigt bin als so manch anderer. Wink

TheShadow

Moderator

BeitragMi, Aug 27, 2008 19:42
Antworten mit Zitat
Benutzer-Profile anzeigen
Zitat:

./configure
make
sudo make install


Aber Hallo - ich nutze kein Linux - und min MSYS/MinGW würdest du nicht mal jede 2. Lib kompiliert bekommen - zumindest klappt es bei mir nicht so gut... ich denke makefiles sind gut für Linux - und mehr auch nicht

Zitat:
Wenn du die Möglichkeit hast, deine Buildtools selbst zu wählen, empfehle ich einfach mal SCons.


Ich glaub das ist ähnlich makefiles... alles was in diese Richtung geht, will ich nicht nutzen...
AMD64 3500+ | GeForce6600GT 128MB | 1GB DDR | WinXPsp2
 

Nox

BeitragDo, Aug 28, 2008 11:39
Antworten mit Zitat
Benutzer-Profile anzeigen
Zitat:
Aber Hallo - ich nutze kein Linux - und min MSYS/MinGW würdest du nicht mal jede 2. Lib kompiliert bekommen - zumindest klappt es bei mir nicht so gut... ich denke makefiles sind gut für Linux - und mehr auch nicht

Es dürfte klar sein, wieso du nicht mal eben jede 2. Lib mit MSYS kompiliert bekommst. Ich meine, was ist MSYS? Eine Shell mit vielen GNU-Tools. Da ist längst nicht alles dabei, selbst mit MinGW. Du kannst ja auch nicht mal eben eine x-beliebige Windows-Lib unter Linux bauen..

Zitat:
Zitat:
Wenn du die Möglichkeit hast, deine Buildtools selbst zu wählen, empfehle ich einfach mal SCons.

Ich glaub das ist ähnlich makefiles... alles was in diese Richtung geht, will ich nicht nutzen...

Es ist ähnlich, ja, allerdings um einiges einfacher, pflegeleichter und effektiver (als die GNU-Make-Makefiles). Ohne Makefiles wird's übrigens in jeder Umgebung schwierig. Wink

BtbN

BeitragDo, Aug 28, 2008 16:36
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich kann da nur das build-tool von Qt(4) empfehlen(qmake). Man gibt die Code und header Dateien an, definiert ein paar Optionen, und das Ding generiert einem wahlweise GNU Makesfiles, MinGW Makefiles, VC Makefiles, VC Projects, und noch einiges mehr.
Funktioniert auf jedem nur erdenklichen OS, auf dem Windows, MacOS oder X11 vorhanden ist.
Allerdings kann man damit(glaube ich?) nur Qt-Programme jeglicher Art bauen, was aber keine einschränkung ist, da Qt einem eigentlich alles bietet, was man für den Grossteil aller Programme braucht.
Und Pointergeschubse freies C++ ist es auch.

Blitzcoder

Newsposter

BeitragDo, Aug 28, 2008 17:11
Antworten mit Zitat
Benutzer-Profile anzeigen
Zitat:
qmake is a tool from Trolltech that helps simplify the build process for development project across different platforms. qmake automates the generation of Makefiles so that only a few lines of information are needed to create each Makefile. qmake can be used for any software project, whether it is written in Qt or not.

http://doc.trolltech.com/4.2/qmake-manual.html
 

MasterK

BeitragDo, Aug 28, 2008 19:41
Antworten mit Zitat
Benutzer-Profile anzeigen
Also ich mag sprachen wie java oder c# eigentlich auch recht gern. Zumindest lieber als c++. Einfach, weil sie in der entwicklung vor allem grösserer projekte dem entwickler viel arbeit abnehmen. Die sache ist eben, man braucht in 99% der fälle keine zigtausend Bibliotheken die alle das gleiche machen, und bei denen man zum grossteil nichtmal weiss wie lange sie noch weiterentwickelt werden. Java und c# bieten mit ihren sdks für sehr viele problemstellungen eine ausgezeichnete lösung an, so dass man sich das zusammengesuche von teilweise grundlegenden bibliotheken ersparen kann.

Dennoch hat c++ durchaus seine berechtigung. Neben den reinen 08/15-Anwendungen gibt es eben auch viel, bei dem man mit c++ am besten bedient ist.

Dieses ständige gelaber von wegen "c++ code sieht scheisse" kann ich teilweise echt nicht mehr hören. Ich kann mit jeder sprache mies aussehenden code produzieren, das ist kein problem. C++ bietet mit den werkzeugen, die die sprache selbst schon mitbringt (speziell den templates) möglichkeiten, die wirklich genial sind. Diese sind, wenn sie exzessiv genutzt werden, vielleicht im ersten augenblick nicht so leicht zu durchschauen, aber wenn sie richtig genutzt wurden, ungemein elegant und vor allem flexibel. Und gerade das ist ja nicht zu unterschätzen.

Leider meinen viele leute, die es einfach nicht _können_, unbedingt c++ nutzen zu müssen, weil ja c++ die absolute über-hacker-sprache ist. Und dann kommt eben codemist raus, auf den viele ansprechen, wenn sie c++ code als schlecht bezeichnen.

Nox hat Folgendes geschrieben:
Das hört sich so an, als meintest du Makefiles, wo man alle Quelldateien noch einzeln angibt und deren Abhängigkeiten. Das sollte wirklich so langsam der Vergangenheit angehören. Z.B. mit dem erwähnten SCons. Oder für kleine Projekte Makefiles mit Suchpattern, macht dann auch alles von alleine.

Das ist etwas, was mich wirklich tierisch an c/c++ nervt: make. Statt dieses steinzeit-tool endlich mal über bord zu werfen, baut man wrapper und zusatztools, um die nervigen unzulänglichkeiten von make zu kompensieren. Qmake (wurde ja schon angesprochen) ist zwar wirklich toll als make-"aufsatz", macht den rotz untendrunter aber nicht besser.

Viele regen sich immer auf, wenn MS mal eben ihre kompletten SDKs auf links zieht und alles über den haufen wirft. Aber manchmal ist das eben doch besser, als irgendwelche software aus den 70ern mit aller gewalt am leben halten zu wollen.
+++ www.masterk.de.vu +++
Lila FTW!
 

Nox

BeitragDo, Aug 28, 2008 22:40
Antworten mit Zitat
Benutzer-Profile anzeigen
MasterK hat Folgendes geschrieben:
Die sache ist eben, man braucht in 99% der fälle keine zigtausend Bibliotheken die alle das gleiche machen, und bei denen man zum grossteil nichtmal weiss wie lange sie noch weiterentwickelt werden. Java und c# bieten mit ihren sdks für sehr viele problemstellungen eine ausgezeichnete lösung an, so dass man sich das zusammengesuche von teilweise grundlegenden bibliotheken ersparen kann.

Von welchen grundlegenden Bibliotheken sprichst du denn beispielsweise? Kann mir gerade keine vorstellen, bei denen ich irgendwie Angst hätte, dass sie nicht weiter entwickelt werden. Andere Sprachen und deren Komplettlösungen sind mir teilweise einfach zu aufgebläht. Da linke ich lieber hier und da eine Lib hinzu, habe die 100%ige Kontrolle und bin zufrieden.

Zitat:
Leider meinen viele leute, die es einfach nicht _können_, unbedingt c++ nutzen zu müssen, weil ja c++ die absolute über-hacker-sprache ist. Und dann kommt eben codemist raus, auf den viele ansprechen, wenn sie c++ code als schlecht bezeichnen.

Full ACK

Zitat:
Viele regen sich immer auf, wenn MS mal eben ihre kompletten SDKs auf links zieht und alles über den haufen wirft. Aber manchmal ist das eben doch besser, als irgendwelche software aus den 70ern mit aller gewalt am leben halten zu wollen.

make ist wirklich nicht gerade flexibel, ich benutze es selbst nur noch für kleinere Projekte. Dafür allerdings ist's ganz gut geeignet. Es gibt bspw. auf c-plusplus.de das "Ultimative Makefile". 2-3 Optionen setzen und das Teil baut dein Projekt zuverlässig zusammen. Also für sowas schon okay. Ansonsten vertraue ich halt auf SCons.

Gehe zu Seite Zurück  1, 2

Neue Antwort erstellen


Übersicht Sonstiges Smalltalk

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group