Warum Python?

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.
Libo
User
Beiträge: 3
Registriert: Montag 27. April 2009, 21:24

Hey,

Ich bin gerade dabei mich für eine Programmiersprache zu entscheiden, da mir schon sehr oft gesagt worden ist das Python eine sehr gut Programmiersprache ist, will ich mal meine Fragen an die Profis stellen.

Ich suche eine plattformunabhängig, zukunftsichere und modern Programmiersprache. Da ich keine Lust habe C/C++ zu lernen (viel zu alt, verbrauch unnötiger Hirnspeicher). Ich möchte auch für Unix System Anwedungen schreiben. Ist es Möglich mit python Anwendungen wie Word, Foobar, Miranda,... zu schreiben? Zahlt es sich aus für größere Anwedungen (bytes)? Im vergleich C#, Rubby and Java Pro/Contra?
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Libo hat geschrieben:Ich möchte auch für Unix System Anwedungen schreiben. Ist es Möglich mit python Anwendungen wie Word, Foobar, Miranda,... zu schreiben?
Ja. Gerade auf unixoiden Systemen erfreut sich Python ziemlicher Beliebtheit.
Libo hat geschrieben:Zahlt es sich aus für größere Anwedungen (bytes)?
Du meinst vom Hauptspeicherverbrauch? Nein, in der Regel haben C oder C++-Programme einen geringeren Speicherverbrauch (außer du hast Memory-Leaks).
Libo hat geschrieben:Im vergleich C#
Wesentlich höhere Akzeptanz im Unix-Bereich.
Libo hat geschrieben:Rubby
Schneller, IMHO klarer und populärer als Ruby.
Libo hat geschrieben: and Java Pro/Contra?
Puh, also wenn es nicht um Dinge geht die Performance benötigen würde mir kein Grund einfallen, warum man mit Java Anwendungen schreiben wollte.

Lies dir doch die vielen anderen Threads zu dem Thema durch. Das müssen wir jetzt nicht alles ständig neu aufrollen, oder?
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
problembär

Aha, Du willst "Anwendungen wie Word" schreiben.
Hast Du überhaupt schonmal irgendwas geschrieben?
Schreib' doch erstmal einen kleinen Editor, erst in Python, dann in Java. Dann vergleiche und entscheide Dich, mit welcher Sprache Du den Rest schreiben willst.

Gruß
Zuletzt geändert von problembär am Montag 27. April 2009, 22:20, insgesamt 1-mal geändert.
Dauerbaustelle
User
Beiträge: 996
Registriert: Mittwoch 9. Januar 2008, 13:48

Leonidas hat geschrieben: Puh, also wenn es nicht um Dinge geht die Performance benötigen würde mir kein Grund einfallen, warum man mit Java Anwendungen schreiben wollte.
Gerade *wenn* es um Performance geht, würde ich kein Java nehmen. Java würde ich sowieso nicht nehmen, das Argument "Plattformunabhängigkeit" ist zwar ein gutes, aber andere Sprachen beherrschen selbige besser.
Benutzeravatar
BlackVivi
User
Beiträge: 762
Registriert: Samstag 9. Dezember 2006, 14:29
Kontaktdaten:

Dauerbaustelle hat geschrieben:
Leonidas hat geschrieben: Puh, also wenn es nicht um Dinge geht die Performance benötigen würde mir kein Grund einfallen, warum man mit Java Anwendungen schreiben wollte.
Gerade *wenn* es um Performance geht, würde ich kein Java nehmen.
Wieso?
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Dauerbaustelle hat geschrieben:Gerade *wenn* es um Performance geht, würde ich kein Java nehmen.
Ach, sondern? In Performance sehe ich das Hauptargument, das überhaupt *für* Java spricht.
Dauerbaustelle hat geschrieben:Java würde ich sowieso nicht nehmen, das Argument "Plattformunabhängigkeit" ist zwar ein gutes, aber andere Sprachen beherrschen selbige besser.
Das stimmt. Java-Applikationen wirken oftmals wie Fremdkörper, weil auch die JVM verspricht, dass man so tun kann als wäre das OS egal und folglich ist die Platformuntegration eher schlecht. Für Web-Applikations-Server ist das ja oftmals egal, aber auf dem Desktop ist das eher lästig. Zudem Qt Jambi eingestellt wurde, wxJava und jwx eher tot sind bleibt dann eigentlich nur noch SWT und selbst das kümmert sich nur um die GUI.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Benutzeravatar
darktrym
User
Beiträge: 784
Registriert: Freitag 24. April 2009, 09:26

Ich komme selber von der Java/C Ecke. Plattformunabhängig würde ich weder Python noch Java bezeichnen(Stichwort Shell und das leidige curses Thema). Da ist C/C++ mit den entsprechenden Toolkits wesentlich einheitlicher.
Und was meinst du mit schnell? Schnell in der Ausführung, dann für Java und Konsorten, schnell in der Entwicklung eindeutig Python.
Wobei noch für Python spricht das der Code lesbarer ist und sich fast selbst dokumentiert. Ausserdem muss man nicht so viel tippen, schont meine Tastatur . :lol:

Mit C# bist du ständig im Hintertreffen was Bibs und Sprachfeatures angeht, weil MS keine Entwicklung ausserhalb Windows unterstützt.

Es heißt im übrig. Ruby.
„gcc finds bugs in Linux, NetBSD finds bugs in gcc.“[Michael Dexter, Systems 2008]
Bitbucket, Github
Benutzeravatar
snafu
User
Beiträge: 6738
Registriert: Donnerstag 21. Februar 2008, 17:31
Wohnort: Gelsenkirchen

darktrym hat geschrieben:Plattformunabhängig würde ich weder Python noch Java bezeichnen(Stichwort Shell und das leidige curses Thema). Da ist C/C++ mit den entsprechenden Toolkits wesentlich einheitlicher.
Dann würde mich doch mal interessieren, wie du zB unter Windows mit C oder C++ die curses-Bibliothek ansprichst. Sowas sind für mich Details der Betriebssysteme, die nicht allesamt zwingend unterstützt werden müssen, um eine Sprache plattformunabhängig zu machen. Gewisse Techniken gibt es halt einfach nicht für alle Systeme. Aus diesem Grund sind sie ja auch so unterschiedlich (irgendwie logisch).

Was meinst du mit der Shell? Soll Python jetzt eine Unix-Shell für Windows emulieren, damit es endlich als plattformunabängig gelten kann? Mit Verlaub, aber das ist Unsinn.

EDIT: Okay, curses existiert offenbar als eine Art Nischenprodukt auch für Windows. Weiß jetzt nicht, was das genau ist, aber hier.
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

snafu hat geschrieben:Was meinst du mit der Shell? Soll Python jetzt eine Unix-Shell für Windows emulieren, damit es endlich als plattformunabängig gelten kann? Mit Verlaub, aber das ist Unsinn.
Das Argument habe ich auch nicht verstanden. Zudem, wozu braucht man eine Unix-Shell? Prozesse aufrufen geht über ``subprocess`` viel sauberer und das ist ebenfalls platformunabhängig.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Benutzeravatar
snafu
User
Beiträge: 6738
Registriert: Donnerstag 21. Februar 2008, 17:31
Wohnort: Gelsenkirchen

Wichtig zu erwähnen wäre noch die dynamische Typisierung, die zwar typisch für Skriptsprachen ist, aber natürlich einen wesentlichen Unterschied im Vergleich zur statischen Typisierung, wie man sie z.B. bei C oder C++ findet, ausmacht.
Libo hat geschrieben:Zahlt es sich aus für größere Anwedungen (bytes)?
Falls es sich auf den Umfang des benötigten Codes bezieht: Definitiv. Du kannst sehr viel deutlich kürzer und lesbarer darstellen.

Wenn es um Peformance geht: Kommt auf den Anwendungsbereich an. Du kannst z.B. problemlos große GUI's erstellen. Da merkt der User keinen Unterschied. Relevant dürfte das erst bei irgendwelchen wissenschaftlichen Berechnungen werden (da können andere Leute sicher mehr zu sagen). Nur unterstützt Python die Möglichkeit, bestimmte Programmteile in C auszulagern. Du würdest dann mit Python die benötigte Funktion aufrufen, C die nötigen Rechenschritte durchführen lassen (was dann deutlich schneller wäre) und in Python nur das Ergebnis übergeben bekommen. Vieles davon müsstest du nicht mal selbst implementieren, da es einige Python-Module gibt, die für sowas geschaffen wurden und intern mit C arbeiten (z.B. numpy)
Benutzeravatar
darktrym
User
Beiträge: 784
Registriert: Freitag 24. April 2009, 09:26

curses gibt es in Form von pdcurses für Windows, für die C/C++ Sektion.

Mit der Shell war eigentlich das Terminal bzw. dessen Emulation gemeint.
„gcc finds bugs in Linux, NetBSD finds bugs in gcc.“[Michael Dexter, Systems 2008]
Bitbucket, Github
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

darktrym hat geschrieben:Mit der Shell war eigentlich das Terminal bzw. dessen Emulation gemeint.
Und was ist damit?
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Libo
User
Beiträge: 3
Registriert: Montag 27. April 2009, 21:24

Erst mal danke für die vielen Atworten :)

Ganz einfache Programme habe ich mit AutoIt geschrieben, fals jemand diese Script-Sprache kennt. Wie sieht es eig mit der verbreitung Pythons aus? (wachsende Community, oder schrumpfende?) Welche IDE ist zu empfehlen und verwendet man in der Software-Branche (Softwarehersteller-Konzerne) auch Python oder in der Regle nur C/C++? Python anwendungen laufen aber nur unter Windows\Unix wenn Python selbst installiert ist??
Benutzeravatar
jens
Python-Forum Veteran
Beiträge: 8502
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Im Wiki haben wir u.a. die Liste "Allgemeine Vor- und Nachteile von Python":
[wiki]Python#AllgemeineVorUndNachteileVonPython[/wiki]

GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
Libo
User
Beiträge: 3
Registriert: Montag 27. April 2009, 21:24

Danke für den Link,

Stimmt es das Ruby schneller ist in v1.9 als Python? Worin liegt eig. der Unterschied zwischen Ruby und Phyton?
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Libo hat geschrieben:Stimmt es das Ruby schneller ist in v1.9 als Python?
Nein, nicht generell und signifikant. Ab 1.9 ist es ähnlich schnell (oder langsam)
Libo hat geschrieben:Worin liegt eig. der Unterschied zwischen Ruby und Phyton?
Erstens heißt es Python und zweitens sind die Unterschiede eher gering. Ruby-Programmierer können oft Klammern weglassen (ob es dann klarer wird, sei dir überlassen) und Ruby besitzt im Gegensatz zu Python "Blöcke" also quasi anonyme Funktionen.

Ich habe mir Ruby eine zeitlang angesehen, aber aus Python-Sicht war es zu ähnlich um interessant zu sein. Selbiges gilt sicherlich auch aus der Ruby-Perspektive.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Benutzeravatar
HerrHagen
User
Beiträge: 430
Registriert: Freitag 6. Juni 2008, 19:07

Ganz einfache Programme habe ich mit AutoIt geschrieben, fals jemand diese Script-Sprache kennt. Wie sieht es eig mit der verbreitung Pythons aus? (wachsende Community, oder schrumpfende?)
Zu dem Thema wird ich mir folgendes anschauen:
http://www.tiobe.com/index.php/content/ ... index.html
http://www.langpop.com/ (besonders der untere Teil dürfte interessant sein)
Über die Bewertungskriterien kann man sicher streiten, im groben geben sie aber doch ein annehmbares Bild über die Popularität der Sprachen.
verwendet man in der Software-Branche (Softwarehersteller-Konzerne) auch Python oder in der Regle nur C/C++?
Python wird mittlerweile relativ häufig, in verschiedensten Bereichen, eingesetzt, die Tendenz ist hierbei stark steigend. Prominentestes Beispiel ist hierbei sicherlich immernoch Google.
Hier würde ich auch einen großen Unterschied zu Ruby sehen. Dessen Einsatz in der Wirtschaft beschränkt sich im wesentlichen auf Ruby on Rails und Webanwendungen. Ich sehe auch ehrlich gesagt nicht, dass sich das jemals ändern wird. Ich finde auch (mit eigener Erfahrung) das die Einführung von Python in ein Unternehmen sicherlich einfacher ist, als bei Ruby, da Python doch viel leichter zu lernen ist.
Python anwendungen laufen aber nur unter Windows\Unix wenn Python selbst installiert ist??
Man kann auch den Python-Interpreter mit dem eigentlichen Programm bündeln, so das der Endanwender von Python nichts mitbekommt.

MFG HerrHagen
ichbinsisyphos
User
Beiträge: 120
Registriert: Montag 4. Juni 2007, 19:19

Python würde ich für Anfänger empfehlen, weil es intuitiver und zwangloser ist als jede andere Programmiersprache die ich kenne.

Je nachdem was du vor hast kann das aber auch ein Nachteil sein. C/C++ sind die zwanghaftesten Sprachen die ich kenne. Die Hälfte der Zeit wirst mit Dateitypen, Klammern- und Strichpunkte- suchen verbringen, was es bei Python praktisch überhaupt nicht gibt.
Aber gerade dadurch lernst du sauber zu programmieren.

Für Java spricht, dass es wohl immer noch Industrie-Standard ist, sonst aber nichts.

Von Microsoft-Sprachen würd ich persönlich die Finger lassen. Teils sicher aus ideologischen, aber auch aus Kostengründen und weil es in den Kreisen generell weniger freien Informationsaustausch gibt. Zum Geldverdienen sind sie aber sicher immer noch geeignet.

Die Unterschiede zwischen Ruby und Python sind nicht besonders groß, Python ist aber weiter verbreitet und hat dadurch auch mehr Erweiterungen, die das Leben einfacher machen.


Ich würd sagen, Python wenn du schnelle Erfolge willst, C++ bei rechenintensiven Aufgabenstellungen.


Ich hab vor kurzem eine Zoomfahrt in die Mandelbrotmenge berechnet, da war das C++-Programm um Faktor 10 schneller als mein Python-Entwurf. Für alltägliche Anwendungen fällts aber kaum auf.

Die ersten Entwürfe mach ich übrigen fast immer in Python bevor ich mich zwinge das ganze nochmal in C++ zu schreiben. Man kann auch schnell mal was in der Shell ausprobieren, bei C++ muss man bei jedem einzelnen geänderten Punkt alles neu kompilieren.

Aber über das Alter von C++ musst du dir keine Gedanken machen, die Sprache wird dich wahrscheinlich überleben :-D.
Benutzeravatar
hendrikS
User
Beiträge: 420
Registriert: Mittwoch 24. Dezember 2008, 22:44
Wohnort: Leipzig

ichbinsisyphos hat geschrieben:C/C++ sind die zwanghaftesten Sprachen die ich kenne. Die Hälfte der Zeit wirst mit Dateitypen, Klammern- und Strichpunkte- suchen verbringen, was es bei Python praktisch überhaupt nicht gibt.
Das wuerde ich mal ein bisschen relativieren. So zwanghaft sind C/C++ nun auch wieder nicht. Die wirkliche Zwangsjacke bekommst Du bei Ada oder Haskell. :)
bankkind
User
Beiträge: 106
Registriert: Freitag 14. September 2007, 23:02
Wohnort: Teltow
Kontaktdaten:

Ich habe zu dem Thema auch noch mal eine Frage: Wie gut ist die Performance von python im vergleich zu PHP? Also Speziell im bereich Web-Applikationen?
Antworten