Argumente für Python?

Alles, was nicht direkt mit Python-Problemen zu tun hat. Dies ist auch der perfekte Platz für Jobangebote.
Antworten
Karl
User
Beiträge: 252
Registriert: Freitag 29. Juni 2007, 17:49

Hi.
Gibt es bzw. kennt ihr irgendeine Liste/Seite, in der/auf der alle Argumente, die für (von mir aus auch gegen, gehört ja auch dazu ;) ) Python sprechen?
Mir selbst fallen zwar auch schon einige ein, aber eben bestimmt nicht alle, vorallem da ich noch nicht so tief in Python reinblicken kann, wie manch anderer.
Ich würde mir das nur mal als Bekräftigung für meine Wahl auf Python anschaun :p
Cool wäre es, wenn es konkrete Beispiele und Vergleiche mit anderen Sprachen beinhalten würde, aber sowas ist dann auch meistens wieder zu subjektiv
Benutzeravatar
BlackVivi
User
Beiträge: 762
Registriert: Samstag 9. Dezember 2006, 14:29
Kontaktdaten:

Plattformunabhängig, funktional, schnell zu erlernen, fördert saubere Programmierung, freie Implementierung in C, C#, Java und Python selbst, Batteries included...

Konkrete Vergleiche mit anderen Sprache?

Man muss auf weniger achten als bei C, es ist nicht so uberkomplex wie Java und zwingt außerdem nicht zu OOP... Es ist komplett frei, in Gegensatz zu C#... Es bietet OOP das näher an Smalltalk ist, was mir sehr zusagt. Es ist aber sehr aktuell! Es bietet eine sehr übersichtliche Dokumentation und auch Standardbibliothek.

Das einzige was mich an Python stört ist wohl... Weiß nicht, die meisten Implementationen sind nicht die allerschnellsten. Zwar ist Geschwindigkeit nicht sonderlich wichtig, aber wenn man Programme in Python distributiert ist es besondern unter Windows immre so eine Sache... ein Programm braucht irgendwie recht lang zum starten für mich, mag das nicht so gerne bei kleinen Sachen :)
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Schon mal die Forensuche benutzt? Dort gibt es mehrere Threads zu dem Thema, auch vergleiche mit anderen Sprachen.

Ein Argument was glaube ich bisher noch nicht erwähnt hatte ist, dass du durch die Wahl von Python die Möglichkeit hast mit Lichtgestalten der Programmierung wie BlackJack, Y0GI, mitsuhiko, birkenfeld, lunar, gerold, sma, EyDu, Leonidas und anderen in Kontakt zu treten. Na wenn das mal nichts ist ;)
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Benutzeravatar
BlackVivi
User
Beiträge: 762
Registriert: Samstag 9. Dezember 2006, 14:29
Kontaktdaten:

Leonidas hat geschrieben:Schon mal die Forensuche benutzt? Dort gibt es mehrere Threads zu dem Thema, auch vergleiche mit anderen Sprachen.

Ein Argument was glaube ich bisher noch nicht erwähnt hatte ist, dass du durch die Wahl von Python die Möglichkeit hast mit Lichtgestalten der Programmierung wie BlackJack, Y0GI, mitsuhiko, birkenfeld, lunar, gerold, sma, EyDu, Leonidas und anderen in Kontakt zu treten. Na wenn das mal nichts ist ;)
Oh, verzeih mir dies'. Insbesondere dich und BlackJack seh ich meist' als Phänomen! Positiv :3
Karl
User
Beiträge: 252
Registriert: Freitag 29. Juni 2007, 17:49

BlackVivi hat geschrieben:Plattformunabhängig, funktional, schnell zu erlernen, fördert saubere Programmierung, freie Implementierung in C, C#, Java und Python selbst, Batteries included...

Konkrete Vergleiche mit anderen Sprache?

Man muss auf weniger achten als bei C, es ist nicht so uberkomplex wie Java und zwingt außerdem nicht zu OOP... Es ist komplett frei, in Gegensatz zu C#... Es bietet OOP das näher an Smalltalk ist, was mir sehr zusagt. Es ist aber sehr aktuell! Es bietet eine sehr übersichtliche Dokumentation und auch Standardbibliothek.

Das einzige was mich an Python stört ist wohl... Weiß nicht, die meisten Implementationen sind nicht die allerschnellsten. Zwar ist Geschwindigkeit nicht sonderlich wichtig, aber wenn man Programme in Python distributiert ist es besondern unter Windows immre so eine Sache... ein Programm braucht irgendwie recht lang zum starten für mich, mag das nicht so gerne bei kleinen Sachen :)
Kurze, knappe Zusammenfassung ;)
Entählt wahrscheinlich wirklich fast alle Argumente.
Schon mal die Forensuche benutzt? Dort gibt es mehrere Threads zu dem Thema, auch vergleiche mit anderen Sprachen.

Ein Argument was glaube ich bisher noch nicht erwähnt hatte ist, dass du durch die Wahl von Python die Möglichkeit hast mit Lichtgestalten der Programmierung wie BlackJack, Y0GI, mitsuhiko, birkenfeld, lunar, gerold, sma, EyDu, Leonidas und anderen in Kontakt zu treten. Na wenn das mal nichts ist ;)
Sorry @Forensuche aber ich hab zu oberflächlich gesucht :p
@Lichtgestalten der Programmierung: Hat aber auch was frustrierendes ;) Ich wechsel zu irgend ner Sprache, in der man einfach nicht gut sein kann :p
Benutzeravatar
BlackVivi
User
Beiträge: 762
Registriert: Samstag 9. Dezember 2006, 14:29
Kontaktdaten:

Achja! Wenn du jemanden von Python erzählst ist das erste was fällt: "IST DOCH NUR EINE SKRIPTSPRACHE..."

Könnt' ausrasten bei sowas. Es ist intepretiert, es ist eine "Skriptsprache". JA UND? Programme sind kleiner, ordentlicher, schöner, effizenter zu gestalten als in einer NICHT SKRIPTSPRACHE. Bei Perl und TCL und Matlab versteh ich ja die ganzen Argumente, aber bei Python? Für mich ist Python was besonderes.
Benutzeravatar
mkesper
User
Beiträge: 919
Registriert: Montag 20. November 2006, 15:48
Wohnort: formerly known as mkallas
Kontaktdaten:

In der neuen c't (10/2008, S. 163f.) gibt's einen Artikel "Das Beste aus Java, Perl und Python: Groovy". Dort wird als Vorteil von Groovy unter anderem gesehen, daß man es auch statisch typisiert benutzen kann und daß man performancekritische Stellen in Python etc. in C schreibt, wogegen man dies in Groovy naturgemäß in Java erledigt und damit sicherer sei.
Ich hätte einen Vergleich mit Jython spannender und auch gerechtfertigter gefunden.
AlArenal
User
Beiträge: 23
Registriert: Sonntag 27. April 2008, 00:53
Wohnort: Iserlohn
Kontaktdaten:

Jython wird aber gerade nicht gehypet und ist in dem Sinne auch nicht neu. Persönlich kann ich mit Groovy nicht viel anfangen. Es scheint mir, als versuche man mit Grails krampfhaft ein Framework zu schaffen, dass Ruby on Rails nachäfft, um irgendein Zugpferd für Groovy zu haben.

Auch hatte ich mal am Rande einer Diskussion mitbekommen, dass sich die Groovy-Entwickler nicht ganz grün sind, in welche Richtung es nun gehen soll.

M.E. gibt es mit Rhino (JavaScript), BeanShell, Jython und JRuby (deren beide Chefentwickler vorletztes Jahr von Sun angestellt wurden) bereits sehr gute Implementierungen, die man in Java nutzen kann, ohne das Rad neu zu erfinden. Vielleicht mal abgesehen von BeanShell, dass aber zum Testen und Rapid Prototyping ganz nett ist und seines Alters wegen von mir erwähnt wird. Mit der Integration von JS, Ruby und Python ist man bereits exzellent aufgestellt und da braucht es nicht noch eine neue Sprache, die es zu lernen gilt.

Effizienter ist es m.E. jedenfalls eine dieser drei Engines zu nutzen. Im Zweifelsfalle ist es einfacher jemanden zu finden, der JS, Ruby oder Python kann und diesen anzulernen, als jemanden Groovy lernen zu lassen.

Ich kann an Groovy jedenfalls nichts grooviges finden.

P.S.:
Und komm mir nun keiner mit Scala. Wenn ich Scala-Code nur sehe, dreht sich mir der Magen rum. Aber scheinbar musste man unbedingt auch den aktuellen Hype um funktionale Sprachen irgendwie bedienen.
"Ein schwarzes Loch hat keine Haare" - John A. Wheeler
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

AlArenal hat geschrieben:Und komm mir nun keiner mit Scala. Wenn ich Scala-Code nur sehe, dreht sich mir der Magen rum. Aber scheinbar musste man unbedingt auch den aktuellen Hype um funktionale Sprachen irgendwie bedienen.
Scala war doch letzten Monat auf reddit modern, diesen Monat ist Closure cool ;)
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
AlArenal
User
Beiträge: 23
Registriert: Sonntag 27. April 2008, 00:53
Wohnort: Iserlohn
Kontaktdaten:

Leonidas hat geschrieben:Scala war doch letzten Monat auf reddit modern, diesen Monat ist Closure cool ;)
Die Beschreibung von Clojure liest sich wie die eines Verschnitts aus Lisp und Erlang.
"Ein schwarzes Loch hat keine Haare" - John A. Wheeler
lunar

BlackVivi hat geschrieben:Es ist komplett frei, in Gegensatz zu C#...
Dem würde ich so pauschal widersprechen. C# ist ISO-standardisiert, nicht patent-belastet und mit Mono auch frei implementiert. Im Gegensatz zu Python ist die Grammatik der Sprache auch vollständig dokumentiert ;)

Gegen C# würde ich eher anführen, dass es auch statisch typisiert ist, und mir persönlich statische Typisierung viel zu aufwendig ist ;) Für Leute, die auf statische Typisierung stehen, ist C# dagegen sehr fein.

Ich persönlich halte C# für eine gute Sprache (ich habe früher selbst damit gearbeitet), nur mag ich statische Typisierung halt nicht, was die Sprache für mich *persönlich* disqualifiziert.
BlackJack

Die (Kern)Sprache ist zwar standardisiert und patentfrei, das muss aber auf die Standardbibliothek bzw. alles was Microsoft da noch so beipackt nicht gelten. Mono hinkt auch immer hinterher.
lunar

BlackJack hat geschrieben:Die (Kern)Sprache ist zwar standardisiert und patentfrei, das muss aber auf die Standardbibliothek bzw. alles was Microsoft da noch so beipackt nicht gelten.
Der relevante Teil der Standardbibliothek ist nicht patent-belastet. Patente existieren nur für ASP.NET, die WinForms bzw. WPF-Klassen und einige weitere Windows-spezifische APIs. Die interessieren unter Linux eh nicht, wer plattformunabhängige Programme schreiben möchte, wird auf diese Teile eh verzichten.
Mono hinkt auch immer hinterher.
Naja, wenn man das als Kriterium sieht, dann ist Python auch nur bedingt besser. Hier hinken alternative Implementierungen auch meistens hinterher ;)
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

AlArenal hat geschrieben:Die Beschreibung von Clojure liest sich wie die eines Verschnitts aus Lisp und Erlang.
Für Erlang gibt es ja Lisp Flavoured Erlang (LFE). 8)
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Benutzeravatar
BlackVivi
User
Beiträge: 762
Registriert: Samstag 9. Dezember 2006, 14:29
Kontaktdaten:

lunar hat geschrieben:
BlackJack hat geschrieben:Die (Kern)Sprache ist zwar standardisiert und patentfrei, das muss aber auf die Standardbibliothek bzw. alles was Microsoft da noch so beipackt nicht gelten.
Der relevante Teil der Standardbibliothek ist nicht patent-belastet. Patente existieren nur für ASP.NET, die WinForms bzw. WPF-Klassen und einige weitere Windows-spezifische APIs. Die interessieren unter Linux eh nicht, wer plattformunabhängige Programme schreiben möchte, wird auf diese Teile eh verzichten.
Mono hinkt auch immer hinterher.
Naja, wenn man das als Kriterium sieht, dann ist Python auch nur bedingt besser. Hier hinken alternative Implementierungen auch meistens hinterher ;)
Es geht mir hier aber um die Referenzimplementierung ;P ^_^
meneliel
User
Beiträge: 256
Registriert: Montag 25. Juni 2007, 08:35
Kontaktdaten:

... ich find Python-Code einfach unheimlich schön ... vielleicht nicht immer meinen eigenen... aber ....

v.a. BlackJack, was der so ab und an zusammenzaubert.... :)

(Also da ist er nicht der einzige, aber bei ihm fällt es mir gehäuft auf..... :) da ist ab und an so der sprachlos effekt da ....)
sma
User
Beiträge: 3018
Registriert: Montag 19. November 2007, 19:57
Wohnort: Kiel

Lichtgestalt? Zu viel der Ehre ;) Mir gefällt an Python die einfache, einheitliche und lesbare Syntax. Dadurch ist Python leicht erlernbar. Dennoch hat die Sprache eine große Tiefe, was verschiedene Konzepte angeht. Python ist somit für Anfänger und Fortgeschrittene geeignet. Python versucht nicht, den Anwender dumm zu halten oder vor sich selbst zu schützen. Mir gefällt, dass man funktional und/oder objektorientiert programmieren kann. Mir gefällt, dass die Sprache (im Gegenzug zu Ruby etwa) vollständig spezifiziert ist. Weniger gefällt mir die die Funktions- und Klassenbibliothek, die historienbedingt ziemlich zusammengewürfelt und zum Teil veraltet ist. Die Möglichkeit zur Metaprogrammierung ist nett, auch wenn dabei zu viele "_" für meinen Geschmack im Spiel sind. Mir gefällt zudem die Einfachheit der Web-Entwicklung mit Python.

Ich halte Java eigentlich nicht für komplex, nur für kompliziert. Die Konzepte von Java sind (bis auf Generics) deutlich einfacher. C# ist komplex (und kompliziert). Bei OOP a la Smalltalk würde ich eher auf Ruby als auf Python tippen, denn Python kennt keine dualen Exemplar- und Klassenmethoden wir Ruby und Smalltalk.

Statische Typen sind (sagt der langjährige Lisp und Smalltalk-Entwickler) entbehrlich, dennoch können sie Schnittstellen dokumentieren und daher finde ich gut, was mit Python 3 kommt. Dennoch finde ich Scala bemerkenswert, auch wenn es sich in den Jahren zu einer IMHO zu komplexen (kompliziert ist es eh) Sprache entwickelt hat.

Groovy habe ich immer als einen ungeliebten Bastard aus Ruby und Java gesehen, dennoch, die Sprache gewinnt mehr und mehr Anhänger, vielleicht auch, weil sie ein bisschen den Schmerz von Java nimmt, ohne das man radikale Brüche hat.

Leider ist Jython vor einigen Jahren eingeschlafen und vielleicht ist es jetzt zu spät, aufzuwachen. Wie groß ist der Aufmerksamkeitsmarkt für Scriptsprachen auf der Java-Plattform? JRuby und wahrscheinlich Groovy sind gekommen um zu bleiben.

Tinypy finde ich übrigens faszinierend, gerade weil der Quelltext so klein ist. Leider kann es auch recht wenig im Vergleich zu einem "echten" Python. Ich hatte neulich den Gedanken, dass es vielleicht interessant wäre, Tinypy von C auf Java zu portieren. Glücklicherweise der Parser und Compiler ja in Python (Tinypy?) geschrieben, wir reden hier von ca. 25k C-Code. Vielleicht etwas für das kommende lange Wochenende...?

Stefan
BlackJack

Argument für Python: Es hat den ersten Platz bei der Leserwahl des *Linux Journal* in der Kategorie *Scripting Languages* belegt:

http://www.linuxjournal.com/article/10065

Der Artikel geht auch darauf ein, das die Einteilung in *Programmiersprachen* und *Skripting-Sprachen* bei den Lesern eine Menge Reaktionen ausgelöst hat.
You wouldn't believe the number of “WTFs” we got when readers didn't find Python, Ruby or other languages here but rather in the scripting language category. Check out that category's results, as well as Michael Baxter's explanation in the sidebar for how we differentiated between programming and scripting languages. (No doubt we'll see you in the on-line comments section too!)
lunar

Der erinnert mich schon wieder an den **Perl**-Programmierwettbewerb des Linux-Magazins. Gewonnen hatte ein Skript, welches ein **Python**-Skript aufrief, welches dann die Aufgabe löste ;) Wenn das mal kein Argument für Python ist, dann weiß ich nicht weiter ;)


@sma
Komplexe Probleme bzw. Sprache sind doch eigentlich besser als komplizierte, weil hinter komplexen Dingen immer noch ein System steht, während komplizierte Dinge meistens konzeptlos sind. Oder sehe ich da was falsch?

Mir gefällt C# trotzdem besser als Java. Es vereinfacht vieles, weil es syntaktischen Zucker z.B für Eigenschaften und Delegates bietet, den Java nicht hat. Gerade die Art, auf die Java Callbacks definiert (anonyme lokale Klassen) ist doch irgendwie krank ;) Außerdem hat C# besonders seit 3.0 ein paar nette Features zur Metaprogrammierung, was die statische Typisierung etwas erträglicher macht ;)

Letztendlich mag ich statisch typisierte Sprachen nicht (viel zu viel Boilerplate), und bei den dynamischen ist halt Python die, bei der Verbreitung und Lesbarkeit so Hand in Hand gehen, dass man damit wunderbar spielen kann ;)
Antworten