c vs c++ vs Python

Objektorientierte Skriptsprache: (python.org)
Antworten
Benutzeravatar
soufian88
Beiträge: 288
Registriert: So Jan 18, 2009 1:01 pm

c vs c++ vs Python

Beitrag von soufian88 » So Jun 28, 2009 11:59 am

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 ?
C ( Durchschnittlich ) C++ (am Lernen)

Benutzeravatar
Dirty Oerti
Beiträge: 2229
Registriert: Di Jul 08, 2008 5:05 pm
Wohnort: Thurndorf / Würzburg

Re: c vs c++ vs Python

Beitrag von Dirty Oerti » So Jun 28, 2009 12:18 pm

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.
Bei Fragen einfach an daniel[ät]proggen[Punkt]org
Ich helfe gerne! :)
----------
Wenn du ein Licht am Ende des Tunnels siehst, freu dich nicht zu früh! Es könnte ein Zug sein, der auf dich zukommt!
----
It said: "Install Win95 or better ..." So I installed Linux.

Benutzeravatar
Dubbel
Beiträge: 197
Registriert: So Jul 06, 2008 6:25 pm
Wohnort: Kopenhagen
Kontaktdaten:

Re: c vs c++ vs Python

Beitrag von Dubbel » So Jun 28, 2009 12:42 pm

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 ^^

Benutzeravatar
soufian88
Beiträge: 288
Registriert: So Jan 18, 2009 1:01 pm

Re: c vs c++ vs Python

Beitrag von soufian88 » So Jun 28, 2009 12:44 pm

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?
C ( Durchschnittlich ) C++ (am Lernen)

Benutzeravatar
Xin
nur zu Besuch hier
Beiträge: 8858
Registriert: Fr Jul 04, 2008 11:10 pm
Wohnort: /home/xin
Kontaktdaten:

Re: c vs c++ vs Python

Beitrag von Xin » So Jun 28, 2009 2:39 pm

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.
Merke: Wer Ordnung hellt ist nicht zwangsläufig eine Leuchte.

Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.

Benutzeravatar
fat-lobyte
Beiträge: 1398
Registriert: Sa Jul 05, 2008 12:23 pm
Wohnort: ::1
Kontaktdaten:

Re: c vs c++ vs Python

Beitrag von fat-lobyte » Di Sep 06, 2011 3:11 pm

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.
Haters gonna hate, potatoes gonna potate.

Benutzeravatar
cloidnerux
Moderator
Beiträge: 3123
Registriert: Fr Sep 26, 2008 4:37 pm
Wohnort: Ram (Gibts wirklich)

Re: c vs c++ vs Python

Beitrag von cloidnerux » Di Sep 06, 2011 3:51 pm

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.
Redundanz macht wiederholen unnötig.
quod erat expectandum

Benutzeravatar
Xin
nur zu Besuch hier
Beiträge: 8858
Registriert: Fr Jul 04, 2008 11:10 pm
Wohnort: /home/xin
Kontaktdaten:

Re: c vs c++ vs Python

Beitrag von Xin » Di Sep 06, 2011 3:55 pm

<hüstl> Threadalter beachten </hüstl>
Merke: Wer Ordnung hellt ist nicht zwangsläufig eine Leuchte.

Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.

Benutzeravatar
cloidnerux
Moderator
Beiträge: 3123
Registriert: Fr Sep 26, 2008 4:37 pm
Wohnort: Ram (Gibts wirklich)

Re: c vs c++ vs Python

Beitrag von cloidnerux » Di Sep 06, 2011 4:03 pm

<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^^
Redundanz macht wiederholen unnötig.
quod erat expectandum

Antworten