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

Montag 27. April 2009, 21:38

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
Administrator
Beiträge: 16024
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Montag 27. April 2009, 22:15

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 Modvoice
problembär

Montag 27. April 2009, 22:19

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

Montag 27. April 2009, 22:19

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:

Montag 27. April 2009, 22:21

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
Administrator
Beiträge: 16024
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Montag 27. April 2009, 22:37

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 Modvoice
Benutzeravatar
darktrym
User
Beiträge: 709
Registriert: Freitag 24. April 2009, 09:26

Montag 27. April 2009, 23:19

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: 5537
Registriert: Donnerstag 21. Februar 2008, 17:31
Wohnort: Gelsenkirchen

Dienstag 28. April 2009, 05:45

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.
shcol (Repo | Doc | PyPi)
Leonidas
Administrator
Beiträge: 16024
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Dienstag 28. April 2009, 06:45

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 Modvoice
Benutzeravatar
snafu
User
Beiträge: 5537
Registriert: Donnerstag 21. Februar 2008, 17:31
Wohnort: Gelsenkirchen

Dienstag 28. April 2009, 07:13

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)
shcol (Repo | Doc | PyPi)
Benutzeravatar
darktrym
User
Beiträge: 709
Registriert: Freitag 24. April 2009, 09:26

Dienstag 28. April 2009, 12:03

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
Administrator
Beiträge: 16024
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Dienstag 28. April 2009, 13:08

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

Dienstag 28. April 2009, 13:21

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
Moderator
Beiträge: 8483
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Dienstag 28. April 2009, 13:35

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

CMS in Python: http://www.pylucid.org
GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
Libo
User
Beiträge: 3
Registriert: Montag 27. April 2009, 21:24

Dienstag 28. April 2009, 16:42

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?
Antworten