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?
Warum Python?
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
Ja. Gerade auf unixoiden Systemen erfreut sich Python ziemlicher Beliebtheit.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?
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:Zahlt es sich aus für größere Anwedungen (bytes)?
Wesentlich höhere Akzeptanz im Unix-Bereich.Libo hat geschrieben:Im vergleich C#
Schneller, IMHO klarer und populärer als Ruby.Libo hat geschrieben:Rubby
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.Libo hat geschrieben: and Java Pro/Contra?
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
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ß
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.
-
- User
- Beiträge: 996
- Registriert: Mittwoch 9. Januar 2008, 13:48
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.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.
Wieso?Dauerbaustelle hat geschrieben:Gerade *wenn* es um Performance geht, würde ich kein Java nehmen.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.
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
Ach, sondern? In Performance sehe ich das Hauptargument, das überhaupt *für* Java spricht.Dauerbaustelle hat geschrieben:Gerade *wenn* es um Performance geht, würde ich kein Java nehmen.
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.Dauerbaustelle hat geschrieben:Java würde ich sowieso nicht nehmen, das Argument "Plattformunabhängigkeit" ist zwar ein gutes, aber andere Sprachen beherrschen selbige besser.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
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 .
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.
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 .
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.
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).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.
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.
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
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.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.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
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.
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)
Falls es sich auf den Umfang des benötigten Codes bezieht: Definitiv. Du kannst sehr viel deutlich kürzer und lesbarer darstellen.Libo hat geschrieben:Zahlt es sich aus für größere Anwedungen (bytes)?
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)
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??
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??
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
Nein, nicht generell und signifikant. Ab 1.9 ist es ähnlich schnell (oder langsam)Libo hat geschrieben:Stimmt es das Ruby schneller ist in v1.9 als Python?
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.Libo hat geschrieben:Worin liegt eig. der Unterschied zwischen Ruby und Phyton?
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
Zu dem Thema wird ich mir folgendes anschauen: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?)
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.
Python wird mittlerweile relativ häufig, in verschiedensten Bereichen, eingesetzt, die Tendenz ist hierbei stark steigend. Prominentestes Beispiel ist hierbei sicherlich immernoch Google.verwendet man in der Software-Branche (Softwarehersteller-Konzerne) auch Python oder in der Regle nur C/C++?
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.
Man kann auch den Python-Interpreter mit dem eigentlichen Programm bündeln, so das der Endanwender von Python nichts mitbekommt.Python anwendungen laufen aber nur unter Windows\Unix wenn Python selbst installiert ist??
MFG HerrHagen
-
- 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 .
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 .
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.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.