Programmiersprache besser als C++ ?

Hallo Liebe Programmierfreunde!

Eigentlich müsste meine Frage „Was ist die beste Programmiersprache?“ heißen, aber ich habe bereits viele Foren-Einträge zu dieser Frage gelesen, die alle aussagen, das C++ die beste ist.

Mir fehlen in C++ aber einige Extras, die ich nach 5 Jahren python als selbstverständlich betrachtete und nun so gar keine Lust habe, C++ neu zu lernen.
(Muss ich aber, da ich eine recht performanceabhängige Anwendung mit grafik und netzwerk schreiben möchte)
Einige Dinge, die in python einfach sooo GENAIL sind, z.B. die __getslice__()-Methode, die man in jede Klasse einbauen kann, mit der man selber aus Klassen komfortabel zu bedienende Arrays bauen kann.
Und wie man in c++ ordentlich die Funktion des python lambda-keywords benutzt kann ich auch nicht finden.
Ganz extrem ärgert mich natürlich, in c++ an vorherige Variablendefinition gebunden zu sein, aber das scheint ja voraussetzung für einigermaßen schnellen Programmablauf zu sein.
Und dynamische Dictionaries (in einem Array mit Strings indexieren) scheint es ja auch nicht von Haus aus zu geben.

Also allgemein gesagt ich finde c++ so schrecklich unübersichtlich und schlecht individuell anpassbar (zur besseren codeübersicht) und vereinfachbar das ich nun nach einer alternative suche.

Daher jetzt die Frage:
Gibt es eine Programmiersprache, in der man Code so einfach code vereinfachen kann wie z.B. in python, DIE ABER GENAU SO SCHNELL IST WIE C++?

Vielen Dank im Voraus!
Gruß Lomex

Hallo

Eigentlich müsste meine Frage „Was ist die beste
Programmiersprache?“ heißen, aber ich habe bereits viele
Foren-Einträge zu dieser Frage gelesen, die alle aussagen, das
C++ die beste ist.

Was ist die beste Handwerkszeug?
Kommt auf das Handwerk an.

Mir fehlen in C++ aber einige Extras, die ich nach 5 Jahren
python als selbstverständlich betrachtete und nun so gar keine
Lust habe, C++ neu zu lernen.

OK

(Muss ich aber, da ich eine recht performanceabhängige
Anwendung mit grafik und netzwerk schreiben möchte)

Was denn so? Welche Oberfläche möchtest Du nehmen?
WinAPI, GTK+, QT4.5?

Einige Dinge, die in python einfach sooo GENAIL sind, z.B. die
__getslice__()-Methode, die man in jede Klasse einbauen kann,
mit der man selber aus Klassen komfortabel zu bedienende
Arrays bauen kann.

Was soll das machen? Ein praktisches Beispiel für
mein Verständnis?

 \_\_getslice\_\_

<u>Deprecated since release 2.0</u>. Support slice 
 objects as parameters to the \_\_getitem\_\_() method.

 Called to implement evaluation of self[i:j]. 

Ich vermute mal, daß man das in C++ mit
Operatorüberladung von [] oder (,) machen würde

Und wie man in c++ ordentlich die Funktion des python
lambda-keywords benutzt kann ich auch nicht finden.

Um was zu machen? Beispiel?

Ganz extrem ärgert mich natürlich, in c++ an vorherige
Variablendefinition gebunden zu sein, aber das scheint ja
voraussetzung für einigermaßen schnellen Programmablauf zu
sein.

Nee, nicht nur. Das ist auch die Voraussetzung für
die Vermeidung einer enormen Anzahl von Fehlern
während der Implementierungsphase.

Und dynamische Dictionaries (in einem Array mit Strings
indexieren) scheint es ja auch nicht von Haus aus zu geben.

Doch, derzeit gibt es die Gnu-C+±’HashMap’, die
ist schon ganz gut (in bzw )

Da kann man sowas machen:

 ...
 #include 

 typedef stdext::hash\_map StdHash; 
 ...

 StdHash hash; 

 hash["irgendeinwort"] ++;
 hash["irgendeinandreswort"] ++;
 ...

Und demnächst gibt es einen sog. TR1-Hash (kommt
gerade heraus, http://en.wikipedia.org/wiki/Unordered_map )

Also allgemein gesagt ich finde c++ so schrecklich
unübersichtlich und schlecht individuell anpassbar (zur
besseren codeübersicht) und vereinfachbar das ich nun nach
einer alternative suche.

Es kommt einfach darauf an, was Du konkret machen
willst. C++ ist schwierig zu erlernen, ins-
besondere die STL erfordert einige Erfahrung.

Daher jetzt die Frage:
Gibt es eine Programmiersprache, in der man Code so einfach
code vereinfachen kann wie z.B. in python, DIE ABER GENAU SO
SCHNELL IST WIE C++?

Du kannst auch in C++ „den Code vereinfachen“, wenn
Du Dir passende Datentypen definierst und die Opera-
toren überlädtst.

Zum Beispiel könntest Du 3D-Vektoren bauen und
ihre Operatoren überladen, dann sähen typische
3D-Operationen in Deinem Quelltext etwa so aus:

 // bvn, vm and vx0 are 3D vectors
 ...
 COORD3 vx = bvn ^ vm; // cross product, normal to plane between ...
 double cosg = vx0 \* vx; // cos angle between normal and reference vector
 double omega = acos(cosg);
 ...

Hier ist COORD3 eine Klasse und die Operatoren ‚*‘ und ‚^‘
wurden überladen (liefern Kreuzprodukt bzw. Skalarprodukt).

Eine Variante wäre noch „D“ oder vielleicht Lua.

Aber das hängt von den Randbedingungen Deiner Aufgabe ab.

Grüße

CMБ

Hallo,

Daher jetzt die Frage:
Gibt es eine Programmiersprache, in der man Code so einfach
code vereinfachen kann wie z.B. in python, DIE ABER GENAU SO
SCHNELL IST WIE C++?

Sicher nicht genauso, aber mindestens ebenso high-level ist OCaml, das als sehr schnell gilt, und das hier auch C/C++ recht wacker hält:

http://shootout.alioth.debian.org/u32q/benchmark.php…

Im Vergleich dazu ist python deutlich langsamer:

http://shootout.alioth.debian.org/u32q/benchmark.php…

Allerdings liegt nicht jedem die funktionale Programmierung :wink:

Grüße,
Moritz

Hallo

Eigentlich müsste meine Frage „Was ist die beste
Programmiersprache?“ heißen, aber ich habe bereits viele
Foren-Einträge zu dieser Frage gelesen, die alle aussagen, das
C++ die beste ist.

Was ist die beste Handwerkszeug?
Kommt auf das Handwerk an.

In diesem Falle geht es um ein Progrämmchen, das sich wohl am ehesten in die Reihe von 3d-Spielen einordnen lässt.

(Muss ich aber, da ich eine recht performanceabhängige
Anwendung mit grafik und netzwerk schreiben möchte)

Was denn so? Welche Oberfläche möchtest Du nehmen?
WinAPI, GTK+, QT4.5?

als grundbaustein möchte ich opengl und openal verwenden.

Einige Dinge, die in python einfach sooo GENAIL sind, z.B. die
__getslice__()-Methode, die man in jede Klasse einbauen kann,
mit der man selber aus Klassen komfortabel zu bedienende
Arrays bauen kann.

Was soll das machen? Ein praktisches Beispiel für
mein Verständnis?

mit array[3:5] kriegt man ein neues Array aus Objekt 3 und bis ausschlisslich 5 des alten. insbesondere, wenn man nicht mit nummern sondern z.B. mit strings adressiert (was man ja durch selbst zusammengebaute listen durchaus kann) kann einem diese Funktion sehr helfen. es verkürzt einfach den Programmaufbau ungemein, wenn man statt array.getSlice(3,5) einfach array[3:5] oder statt array.getitem(4) einfach array[4].
Mit den __get*__ und __set*__ kann man eben selbst die schreibweise von arrays nutzen.
Über die Veraltung wusste ich nichts, in 2.6 war es ja noch verwendbar.

Ich vermute mal, daß man das in C++ mit
Operatorüberladung von [] oder (,) machen würde

gerade mal im ansatz ausprobiert, der slicing-zugriff ist schwierig, aber machbar, wenn auch sinnlos da man ein array schlecht zuweisen kann

die zuweisung auf ein array oder gar auf einen teil eines arrays kann man mit der gewohnten schreibweise scheinbar „a[7:9] = 12,56“ nicht realisieren, da man auch mit operatorüberladung keine möglichkeit hat, herasuzufinden ob werte des arrays gefragt sind oder auf ein array zugegriffen werden soll.

Und wie man in c++ ordentlich die Funktion des python
lambda-keywords benutzt kann ich auch nicht finden.

Um was zu machen? Beispiel?

schnell mini-funktionen anlegen.

so die recht sinnlose variante:
>>> g = lambda x: x**2
>>>
>>> print g(8)
64
so verwende ich es oft:
>>> asdAction = lambda: runAsd(Event(„MenuClick“),„euro“)
>>> menu.newlabel(„asd“, func=asdAction)
also im prinzip funktionspointer, die parameter enthalten

Ganz extrem ärgert mich natürlich, in c++ an vorherige
Variablendefinition gebunden zu sein, aber das scheint ja
voraussetzung für einigermaßen schnellen Programmablauf zu
sein.

Nee, nicht nur. Das ist auch die Voraussetzung für
die Vermeidung einer enormen Anzahl von Fehlern
während der Implementierungsphase.

Damit hatte ich noch NIE Probleme.
Ich weiss doch, welche Variable was enthält.

Und dynamische Dictionaries (in einem Array mit Strings
indexieren) scheint es ja auch nicht von Haus aus zu geben.

Doch, derzeit gibt es die Gnu-C+±’HashMap’, die
ist schon ganz gut (in bzw )

Da kann man sowas machen:


#include

typedef stdext::hash_map StdHash;

StdHash hash;

hash[„irgendeinwort“] ++;
hash[„irgendeinandreswort“] ++;

Und demnächst gibt es einen sog. TR1-Hash (kommt
gerade heraus, http://en.wikipedia.org/wiki/Unordered_map )

aaah! cool!
na das ist doch shon mal eine gute nachricht.
denn sowas verwende ich sehr oft.

C++ ist schwierig zu erlernen, ins-
besondere die STL erfordert einige Erfahrung.

Lernen - No Problem! vor ein paar Jahren hab ich damit schon recht große Sachen geproggt.
Mir geht es um das Programmieren selber. Ich mag einfach nicht 1000 zusätzliche Zeilen tippen, die sich die Programmiersprache auch selber denken kann (was voraussetz das die Programmiersprache einen so logischen aufbau hast das sie nicht raten muss sondern man genau weiss was sie sich denken wird)

Daher jetzt die Frage:
Gibt es eine Programmiersprache, in der man Code so einfach
code vereinfachen kann wie z.B. in python, DIE ABER GENAU SO
SCHNELL IST WIE C++?

Zum Beispiel könntest Du 3D-Vektoren bauen und
ihre Operatoren überladen, dann sähen typische
3D-Operationen in Deinem Quelltext etwa so aus:

// bvn, vm and vx0 are 3D
vectors

COORD3 vx = bvn ^ vm; // cross product, normal to plane
between …
double cosg = vx0 * vx; // cos angle between normal and
reference vector
double omega = acos(cosg);

Hier ist COORD3 eine Klasse und die Operatoren ‚*‘ und ‚^‘
wurden überladen (liefern Kreuzprodukt bzw. Skalarprodukt).

Sieht praktisch aus. spartbestimmt ne menge tipparbeit wenn ich immer nur an bestimmte daten eines vektors will…

Eine Variante wäre noch „D“ oder vielleicht Lua.

D scheint ja jetzt erst mal C-ähnlich zu sein.

Lua und Python scheint kein großer Unterschied zu sein, bloss lua fängt seine arrays bei 1 an und des is müll.
(jaja andre würden mich für den satz umbringen aber allgemein is lua schneller und python kann mehr, naja whatever ich will mehr können)

Naja, zusammenfassend ist also deine Meinung, C++ kann das alle auch und dehalb sollte ich also c++ verwenden, ja?

Vielen Dank für deine Mühen!

Gruß Lomex

Gibt es eine Programmiersprache, in der man Code so einfach
code vereinfachen kann wie z.B. in python, DIE ABER GENAU SO
SCHNELL IST WIE C++?

Sicher nicht genauso, aber mindestens ebenso high-level ist
OCaml, das als sehr schnell gilt, und das hier auch C/C++
recht wacker hält:

http://shootout.alioth.debian.org/u32q/benchmark.php…
http://shootout.alioth.debian.org/u32q/benchmark.php…

Die Seiten sind praktisch. (Auch wenn ich sie nicht auf Anhieb verstanden habe :wink:)

Allerdings liegt nicht jedem die funktionale Programmierung
:wink:

Mal angeschaut:
OMG! was hat diese Sprache denn für ein Design?!?
also ne, das is nix für mich. damit man den Code lesen kann, muss man sich ja erst mal nen knoten ins gehirn machen :smile: