Seite 1 von 1

c vs c++ vs Python

Verfasst: So Jun 28, 2009 11:59 am
von soufian88
Hallo
Ich wollte mal euren Meinung hören und fragen welchen der Sprachen besser ist.

Welche Vorteile und Nachteile haben die ? (Bei C weiß ich es schon einigermaßen)
Welche der Sprachen hat die weiteste Grenze ?
Können die Sprachen alle Bereiche GUT abdecken ?
Welche der Sprachen ist am Universellsten ?

Re: c vs c++ vs Python

Verfasst: So Jun 28, 2009 12:18 pm
von Dirty Oerti
Tag :)

Das ist mal ein interessanter Vergleich...
Ich fasse C und C++ fürs folgende mal in eine Gruppe zusammen.

Also C/C++ vs. Python. Was ich jetzt schreib ist aber natürlich bei weitem nicht alles ;)

Als erstes mal zu den Vor- und Nachteilen:
Vorteilhaft an Python ist: Es ist eine Skriptsprache und damit komplett und ohne Probleme portabel. Außerdem ist die Sprache an sich (im Vergleich zu C/C++) relativ leicht zu erlernen (so kommt es mir zumindest vor). Schön an Python ist, dass es dich zwingt, gut lesbaren Code zu schreiben.
Nachteilhaft an Python: Es ist eine Skriptsprache, heißt du brauchst für jedes noch so kleine Programm einen Interpreter, der auch noch Leistung verschlingt. Außerdem kannst du Python nicht in allen Bereichen der Programmierung einsetzen.

Vorteilhaft an C/C++ ist: Du kannst mit C/C++ wirklich alles nur erdenkliche machen. Mir sind zumindest keine Grenzen dieser Sprachen bekannt (Grenzen im Sinne von: Geht einfach nicht). Außerdem laufen die Anwendungen meist wirklich schnell (wobei das natürlich mit dem Programmier steht und fällt). C/C++ ist einfach schön zu schreiben, zumindest wenn man darauf Acht gibt, dass der Code gut lesbar ist.
Nachteile an C/C++: Es ist teilweise schwierig, plattformübergreifende Bibliotheken für eine Aufgabe zu finden, so dass der Code nicht immer 100% portabel ist. Und man muss natürlich für jedes Zielsystem den Code kompilieren, was jetzt aber nicht so sehr ins Gewicht fällt.

Zu den anderen 3 Fragen:
In gewisser Weise habe ich die ja schon beantwortet. In Python hast du Grenzen, die du in C/C++ nicht hast. Es wäre z.B. nur schwer (und mit Unterstützung einer anderen Sprache, wie C/C++/Asm) möglich ein Betriebssystem oder eine Firmware auf Python setzen zu lassen.
=> C ist universeller, aber manchmal wohl schwieriger zu verstehen.

Re: c vs c++ vs Python

Verfasst: So Jun 28, 2009 12:42 pm
von Dubbel
Es kommt INHO nur darauf an, was du mit der Sprache machen willst (außer bei der Entscheidung C/C++, da die eigentlich genau die gleichen Einsatzmöglichkeiten haben).

Deshalb muss die erste Frage sein: Was will ich eigentlich? Will ich einfach "nur" Programmieren lernen, ohne einen bestimmten Bereich vor Augen zu haben, dann würde ich C/C++ empfehlen, da dass die "Standard-Sprachen" sind, auf deren Syntax eine Menge anderer Sprachen aufbaut. Willst du z.B. eine Webapplikation programmieren, dann ist PHP oder eben auch Python besser, da diese auf vielen (Python leider auf etwas wenigeren (?) als PHP) Webspaces/Servern schon installiert sind und weniger Kosten.

Mit Python kannst du also sowohl leicht lokale als auch leicht Web-Anwendungen schreiben (kann man mit PHP zwar auch, ist aber nicht so üblich). Mit C/C++ kannst du das natürlich auch, es ist aber komplizierter und kostet mehr ^^

Re: c vs c++ vs Python

Verfasst: So Jun 28, 2009 12:44 pm
von soufian88
Außerdem kannst du Python nicht in allen Bereichen der Programmierung einsetzen.
In welchen Bereichen kann man es nicht einsetzen ?
Es ist eine Skriptsprache, heißt du brauchst für jedes noch so kleine Programm einen Interpreter
Was ist ein Interpreter?

Re: c vs c++ vs Python

Verfasst: So Jun 28, 2009 2:39 pm
von Xin
soufian88 hat geschrieben:Hallo
Ich wollte mal euren Meinung hören und fragen welchen der Sprachen besser ist.
Ich programmiere C#, C, C++ und komme regelmäßig mit Python in Kontakt.
soufian88 hat geschrieben:Welche Vorteile und Nachteile haben die ? (Bei C weiß ich es schon einigermaßen)
Welche der Sprachen hat die weiteste Grenze ?
Das ist die falsche Frage hier, glaube ich. Python ist eine Rapid-Prototyping-Sprache.
Heißt: Schnell was auf die Beine bekommen ohne Rücksicht auf Verluste.
C++ kann man unglaublich sicher programmieren, wenn man historische Falltüren kennt. Dafür ist es allerdings deutlich umständlicher als Python.
soufian88 hat geschrieben:Können die Sprachen alle Bereiche GUT abdecken ?
Python ist eine interpretierende Sprache, C und C++ erzeugt recht hoch optimierten nativen Code.
Python verwendet eine Garbage Collection, C++ in aktueller Fassung überhaupt nicht.

Interpreter und GC machen Python langsamer als C++. Der Interpreter vergrößert theoretisch die Möglichkeiten der Sprache. Man kann damit mehr anstellen, allerdings halte ich diese Möglichkeiten für eher gefährlich als nützlich. C++ Programme können sehr klein sein (abhängig vom Startcode).
Python-Programme benötigen einen Python-Interpreter.

Es stellt sich die Frage nach "allen Bereichen". Du kannst für beide Sprachen Bereiche finden, wo sie nicht so stark sind.
Rapid Prototyping? => Python.
Stringverarbeitung? => Python. Oder C++ mit entsprechenden Klassen.
Sonstiges? => imho C++.
soufian88 hat geschrieben:Welche der Sprachen ist am Universellsten ?
C++ ist meiner Einschätzung nach universeller zu verwenden.
Aber halt aufwendiger.

Re: c vs c++ vs Python

Verfasst: Di Sep 06, 2011 3:11 pm
von fat-lobyte
Nur mal so als Anregung:

Code: Alles auswählen

$ python -c 'import this'
The Zen of Python, by Tim Peters

Beautiful is better than ugly.
Explicit is better than implicit.
Simple is better than complex.
Complex is better than complicated.
Flat is better than nested.
Sparse is better than dense.
Readability counts.
Special cases aren't special enough to break the rules.
Although practicality beats purity.
Errors should never pass silently.
Unless explicitly silenced.
In the face of ambiguity, refuse the temptation to guess.
There should be one-- and preferably only one --obvious way to do it.
Although that way may not be obvious at first unless you're Dutch.
Now is better than never.
Although never is often better than *right* now.
If the implementation is hard to explain, it's a bad idea.
If the implementation is easy to explain, it may be a good idea.
Namespaces are one honking great idea -- let's do more of those!
Ob diese Weisheiten Python zur Übersprache machen weiß ich nicht, aber meiner Meinung nach enthalten sie durchaus einige gute Ideen.

Re: c vs c++ vs Python

Verfasst: Di Sep 06, 2011 3:51 pm
von cloidnerux
Was ist ein Interpreter?
Ein "Interpreter" interpretiert deinen Source-Code zur Laufzeit, das heißt, du hast ein Programm, das deinen Source code liest, es versucht zu verstehen und dann umzustezten.
Das hat einige Gute und schlechte Folgen:
Du kannst Plattform-Unabhängig programmieren, da man ja nur den Interpreter portieren muss.
Du kannst komplexe Aufrufe dem Interpreter überlassen, jeder der sich mal mit der Windows-API rumgeschlagen hat freut sich über sowas.
Du kannst auch mal "Mist" programmieren, der denn vom Interpreter zur Laufzeit bereinigt werden kann.
Das bedeutet aber auch, das du IMMER einen Interpreter brauchst, wenn du mal keinen hast -> Problem
Bevor irgendetwas ausgeführt wird, muss der Interpreter sich erstmal deinen Code ansehen, das bedeutet du musst für die gleiche Aufgabe mehr machen.
In welchen Bereichen kann man es nicht einsetzen ?
Jetzt können wir die schon gelernten Informationen Nutzen:
Python kann man nicht nutzen wenn man...
1.) Keinen Interpreter hat, wie es z.B bei der Betriebsystementwicklung, Embedded Systems oder exotischen P
Plattformen der Fall ist.
2.) Wenn es bei deinem Programm auf Geschwindigkeit ankommt.

Generell kommt es NIE auf die Programmiersprache an, sondern auf das Problem was du lösen willst, bzw den Kompromiss zu dem du gezwungen wirst:
Es gibt keine Ultimative Programmiersprache, es gibt nur adäquate, nutzlose und die, die du Beherrschst.
Du kannst nicht alle Programmiersprachen lernen, das ist einfach zu viel Aufwand.

Daher würde ich dir nicht raten, nach der "Besten" Programmiersprache zu suchen, sondern einfach eine zu lernen, dich damit auseinander setzten, damit programmieren, eigene Probleme lösen und dann selber für dich Rückschlüsse Ziehen.

Sinnvollerweise würde ich dir aber raten, C/C++ zu lernen, da die Syntax davon sehr weit verbreitet ist und du damit weniger Mühe hast, schnell mit irgendwas einzusteigen.

Re: c vs c++ vs Python

Verfasst: Di Sep 06, 2011 3:55 pm
von Xin
<hüstl> Threadalter beachten </hüstl>

Re: c vs c++ vs Python

Verfasst: Di Sep 06, 2011 4:03 pm
von cloidnerux
<hüstl> Threadalter beachten </hüstl>
Arghh, verdammte gewohnheit^^
ich gehe egt immer davon aus, das die thread neu sind, wenn sie Markiert sind^^
Sollte wohl besser darauf achten, wie alt sie wirklich sind^^