Python in C - Warum?

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
ne0h
User
Beiträge: 115
Registriert: Samstag 16. Februar 2008, 11:35

Sonntag 25. Mai 2008, 20:30

Hi,

auch wenns blöd klingt, aber ich frage mich seit Tagen:

Warum ist Python selbst in Ansi C geschrieben? Warum nicht in C++ ?

Gruß

ne0h
Benutzeravatar
veers
User
Beiträge: 1219
Registriert: Mittwoch 28. Februar 2007, 20:01
Wohnort: Zürich (CH)
Kontaktdaten:

Sonntag 25. Mai 2008, 20:41

Wieso sollte es denn in C++ geschrieben sein?
[url=http://29a.ch/]My Website - 29a.ch[/url]
"If privacy is outlawed, only outlaws will have privacy." - Phil Zimmermann
Benutzeravatar
Craven
User
Beiträge: 223
Registriert: Dienstag 24. Januar 2006, 13:37

Sonntag 25. Mai 2008, 20:56

Das liegt wahrscheinlich am Autor.
[code]q = 'q = %s; print q %% repr(q)'; print q % repr(q) [/code]
ne0h
User
Beiträge: 115
Registriert: Samstag 16. Februar 2008, 11:35

Sonntag 25. Mai 2008, 20:57

Hm,

schon alleine der OO wegen? Und der höheren Sicherheit von C++?

Ich meine damit auch nicht, dass ich es unbedingt "so" machen würde, ich wüßte halt nur gerne, warum gerade reines C gewählt wurde und warum eben nicht C++? Oder gibt es dafür garkeinen Grund und die Wahl der Sprache ist nur Zufall?

ne0h
EyDu
User
Beiträge: 4871
Registriert: Donnerstag 20. Juli 2006, 23:06
Wohnort: Berlin

Sonntag 25. Mai 2008, 21:21

ne0h hat geschrieben:Und der höheren Sicherheit von C++?
Ich glaube, ich bin nicht der einzige der jetzt darauf wartet, dass du uns das jetzt aber mal genauer erklärst ;-)
Benutzeravatar
BlackVivi
User
Beiträge: 762
Registriert: Samstag 9. Dezember 2006, 14:29
Kontaktdaten:

Sonntag 25. Mai 2008, 21:22

EyDu hat geschrieben:
ne0h hat geschrieben:Und der höheren Sicherheit von C++?
Ich glaube, ich bin nicht der einzige der jetzt darauf wartet, dass du uns das jetzt aber mal genauer erklärst ;-)
*lach* Genau das wollte ich auch schreiben. Ich weiß nicht, hab bisher nur das Gegenteil gehört. Wenn überhaupt... Die Sicherheit sollte nur gleich sein, nicht besser.
audax
User
Beiträge: 830
Registriert: Mittwoch 19. Dezember 2007, 10:38

Sonntag 25. Mai 2008, 21:34

Sicherheit erhöht wegen reduzierter malloc-Frickellei.

Weniger Buffer Overflows, weil man weniger falsch machen kann.
BlackJack

Sonntag 25. Mai 2008, 21:46

@audax: Also ich komme mit der Speicherverwaltung von C++ so gar nicht klar. Wenn's dann noch mit Ausnahmen kombiniert wird, ist die Sprache unbrauchbar. Und irgendwie kann man bei C++ auch viel mehr falsch machen. Wegen der drastisch erhöhten Komplexität der Sprache.

Ausserdem hat C++ ein komplett anderes OOP-feeling als Python. Das wäre ein ganz schöner Bruch. C++ OOP ist IMHO kein OOP im Sinne des Erfinders. Sieht der übrigens auch so.
audax
User
Beiträge: 830
Registriert: Mittwoch 19. Dezember 2007, 10:38

Sonntag 25. Mai 2008, 21:49

Ich kann beides nicht, aber Hello World ist von den Verbesserungen von C++ begeistert. (Und er ist kein blinder Fanatiker, auch wenn er manchmal so erscheint ;) )

Mir sind beide Sprachen jedenfalls von der Syntax und den Standardfunktionen so suspekt, dass ich mit denen nicht so richtig was anfangen kann :o
Ich bin ein dynamischer Typ. Na gut, Haskell ist auch toll ;)
mitsuhiko
User
Beiträge: 1790
Registriert: Donnerstag 28. Oktober 2004, 16:33
Wohnort: Graz, Steiermark - Österreich
Kontaktdaten:

Sonntag 25. Mai 2008, 21:50

audax hat geschrieben:Sicherheit erhöht wegen reduzierter malloc-Frickellei.
Eh. Ja. Ne klar. Also ich geb ja zu, ich hab so überhaupt keine Ahnung von dem Thema, aber ich seh jetzt nicht, wie das was mit C++ zu tun hat. Kannst dir ja einen Böhm nehmen und malloc/free auf den Böhm GC definen und fertig ist dein Müll-eingesammeltes C Programm.
audax hat geschrieben:Weniger Buffer Overflows, weil man weniger falsch machen kann.
Also wenn C++ die Lösung für die ganzen Buffer Overflows ist, dann stimmt da was nicht ;-)

Zumindest ich tu mir mit C wesentlich leichter als mit C++ und sehe es als großen Vorteil, dass Python in C implementiert ist. Das Refcounting ist jetzt nicht so toll, aber wäre auch in C++ nicht wirklich anders. Diese smart pointer Sache ist auch nicht der Weißheit letzter Schluss, vor allem ist das schwerer zu durchblicken als ein einfaches INCREF/DECREF.
TUFKAB – the user formerly known as blackbird
audax
User
Beiträge: 830
Registriert: Mittwoch 19. Dezember 2007, 10:38

Sonntag 25. Mai 2008, 21:53

C ist eben auch wesentlich einfacher...

@Topic:
Weil es viel mehr ordentliche C Programmierer als ordentliche C++-Programmierer gibt :D
mitsuhiko
User
Beiträge: 1790
Registriert: Donnerstag 28. Oktober 2004, 16:33
Wohnort: Graz, Steiermark - Österreich
Kontaktdaten:

Sonntag 25. Mai 2008, 21:57

audax hat geschrieben:Ich kann beides nicht, aber Hello World ist von den Verbesserungen von C++ begeistert. (Und er ist kein blinder Fanatiker, auch wenn er manchmal so erscheint ;) )
Für die nicht ubuntuusers.de Leute, da gibts einen Typen der heißt "Hello World". Mir fällt bei C++ immer wieder mal Ronny Pfannschmidt ein, der auch so ein Hardcode C++ Verteidiger ist. C++ ist sicher eine wunderbare Sache, wenn man das > 4 Jahre macht und Spaß mit kaputtem Sprachdesign hat. Das könnte ich ja fast verstehen weil das was mir bei Ruby am besten gefällt sind die Designschnitzer und das Teils seltsame Verhalten :)
TUFKAB – the user formerly known as blackbird
Leonidas
Administrator
Beiträge: 16024
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Sonntag 25. Mai 2008, 22:22

mitsuhiko hat geschrieben:Mir fällt bei C++ immer wieder mal Ronny Pfannschmidt ein, der auch so ein Hardcode C++ Verteidiger ist.
Der gobject blöd findet, was ihn aber nicht hindert Vala zu empfehlen. :)

Ich werf da direkt noch bessere Fragen in den Raum. Warum ist Python nicht in O'Caml geschrieben, die Entwickler hätten doch CPython wegwerfen können und Vyper nehmen können. Oder warum wird CPython nicht zu DPython portiert? Oder warum gibt es immernoch kein Python, das in JavaScript implementiert ist? Fragen über Fragen...

ne0h, für mich klingt deine Frage etwa so als hätte dir jemand gesagt, dass C++ toll ist (warscheinlich ein Windows-Nutzer, denn dort ist es wesentlich populärer, weil es dort bis vor kurzem keine anderen wirklich wesentlichen Sprachen gab) und du jetzt überlegst, warum die ganzen Unix-Leute nicht schon längst auf C++ umgestiegen sind. :shock:
My god, it's full of CARs! | Leonidasvoice vs Modvoice
Benutzeravatar
jens
Moderator
Beiträge: 8461
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Montag 26. Mai 2008, 07:45

Python in Python implementieren: [wiki=FAQ#WasIstPypy]PyPy[/wiki].

CMS in Python: http://www.pylucid.org
GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
lunar

Montag 26. Mai 2008, 10:01

mitsuhiko hat geschrieben:C++ ist sicher eine wunderbare Sache, wenn man das > 4 Jahre macht und Spaß mit kaputtem Sprachdesign hat.
Das kommt jetzt auch auf das Toolkit an. C++ mit TBB fühlt sich aufgrund der exzessiven Verwendung von Funktoren fast schon ein wenig funktional an, C++ mit Qt4 wird ich zwischen Java (schlechter) und C# (besser) ansiedeln.

In wie weit C++ "schlecht" ist, hängt sehr davon ab, ob man Komfort-Toolkits nutzt, oder lieber "roh" mit C++, Boost und Konsorten programmiert. Ersteres ist zwar nicht Python, aber immer noch besser als Java, letzteres ist für die Tonne ;)

Es gibt Qt4 Programme, in denen nicht ein einziges free-Statement auftaucht, weil sich Qt4 um Speicherbereinigung kümmert.
Antworten