Python IDE Roundup zum Jahresbeginn..

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.
mpathy
User
Beiträge: 48
Registriert: Montag 17. September 2007, 12:29

Hallo Zusammen!


Ich probiere gerade Netbeans mit Python-Plugin unter Ubuntu 9.10 sowie Windows 7 aus.

Es ist inzwischen eine sehr ernstzunehmende Alternative zu Eclipse + PyDev.

Aktuell spricht bei den "Großen" für Eclipse noch Aptana und seine diversen Webentwicklungs-Gimmicks.

Gut, generell nutze ich meistens vim, wenns um was kleines oder schnelle Änderungen geht, und Komodo Edit für meine Projekte in jeglicher Programmiersprache. Die zwei Programme mag ich und habe ich jetzt schon länger in Benutzung - aber merke bei manchen Tests schon, wie viel Erleichterung während des Codes auch eine der größeren IDEs bietet.

Da schon lange nicht mehr - finde ich - hier über den aktuellen Stand der IDEs etc. geredet wurde, dachte ich mir, ich mache mal einen Thread auf.

Flames gegen IDEs finde ich hier im Thread jetzt weniger interessant, ich weiß die Vor- und Nachteile und das bleibt jedem selber überlassen.

Hier interessiert mich mehr von denen, die eine IDE nutzen, wie sie sie nutzen, welche sie nutzen und wie da diverse Punkte ihrer Meinung nach besonders gut oder schlecht gelöst werden.

Von den großen spreche ich vor allem deswegen, weil viele von uns ja nicht ausschließlich Python-Code produzieren.

Für mich speziell interessant ist z.B. der Bereich Webentwicklung mit Python für mich, und somit natürlich auch "wie gut kann man auch HTML / CSS / Javascript / etc. bearbeiten".

Erfahrungen mit den integrierten SCM-Tools (wie reibungslos ist der SVN / Mercurial / Git - Support in den IDEs, um die drei wichtigsten zu nennen) ist auch sehr interessant!

Innerhalb von Python wäre außerdem noch interessant, ob jemand auf Stolpersteine bei der Nutzung von größeren Web-Frameworks gestoßen ist (Django, Pylons etc.) oder einem in diesem Hinblick irgendwo was besonders positiv aufgefallen ist.

Das sind grundsätzlich die Fragen, die mich interessieren, generell soll der Thread aber dazu dienen, das jetzt nochmal aktuell zu diskutieren.

Freue mich schon auf eure Erfahrungen etc.! :)
Matty265
User
Beiträge: 7
Registriert: Sonntag 3. Januar 2010, 22:30

Ich benutz auf Ubuntu momentan Terminator, in dem ich 3 Sessions aufhab: Vim, bpython und ein normales Terminal um python auszuführen.
Habe aber auch keine "großen" Projekte, eher kleine Scripts und lernzeug :D
burli
User
Beiträge: 1156
Registriert: Dienstag 9. März 2004, 18:22

Alle Jahre wieder? Naja, was soll's.

Für größere Sachen nutze ich Eclipse, weil das bisher die komfortabelste Umgebung ist. Für kleine Sachen nehm ich gern Geany, weil da Code Completion auch noch einigermaßen funktioniert, weil es schön schnell startet und alles wichtige kann, was ich gern hätte.
Benutzeravatar
jens
Python-Forum Veteran
Beiträge: 8502
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Also bisher nutzte ich Eclipse+PyDev u.a. wegen der Anbindung an SVN. Allerdings finde ich die Einrichtung davon immer recht umständlich. Unter Ubuntu 64 habe ich z.B. das Problem das Buttons in der IDE nicht immer mit der Maus funktionieren (Nutzte dann immer ALT+XY)

Hab gesehen, das von NetBeans eine spezielle Version für Python gibt. Allerdings etwas versteckt:
Auf der Download Seite http://netbeans.org/downloads/index.html gibt es oben rechts den Link "Python EA2": http://download.netbeans.org/netbeans/6.7/python/ea2/

Und das Tutorial http://netbeans.org/kb/docs/python/temp ... erter.html sieht echt nett aus.

Ich schau mir das mal an...

GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
burli
User
Beiträge: 1156
Registriert: Dienstag 9. März 2004, 18:22

jens hat geschrieben:Also bisher nutzte ich Eclipse+PyDev u.a. wegen der Anbindung an SVN. Allerdings finde ich die Einrichtung davon immer recht umständlich. Unter Ubuntu 64 habe ich z.B. das Problem das Buttons in der IDE nicht immer mit der Maus funktionieren (Nutzte dann immer ALT+XY)
Unter Karmic Koala ist das ein bekannter Bug. Die Version aus den Repositories funktioniert aber problemlos, zumindest bei mir. Oder du musst dir den Milestone 2 von Eclipse besorgen, da soll der Bug auch behoben sein.

http://www.widdix.de/2009/12/01/eclipse ... untu-9-10/
Benutzeravatar
jens
Python-Forum Veteran
Beiträge: 8502
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

@burli: Danke für die Info!

Nochmal zu Netbeans: Ich hab es doch anders gemacht. Bei der fertigen Python Variante, bekommt man Netbeans 6.7

Nun hab ich Netbeans 6.8 installiert (die PHP Variante, weil am kleinsten)... Nach der installation auf Tools/Plugin alles deinstalliert, was man nicht benötigt und danach das Python Plugin installieren (Was auch neuer ist, als das von 6.7)...

GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
Benutzeravatar
jens
Python-Forum Veteran
Beiträge: 8502
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

So... Hab mir mal NetBeans angeschaut. Es ist durchaus eine Alternative zu Eclipse+PyDev. Allerdings stören mich doch ein paar Dinge:

Die SVN Anbindung ist nicht so schön geregelt:
* Der Commit Dialog ist unbrauchbar: Man kann kein Diff der jeweiligen Datei erhalten. Man kann nur einzelne Dateien abwählen bzw. die Action für alle Dateien gleichzeitig ändern.
* Es gibt kein commit der aktuellen Datei im Editor Kontextmenü

Ansonsten:
* Beim Formatieren von Python code kann man zu wenig einstellen.

Auf der Habenseite:
* Das Plugin und Update System von NetBeans macht auch mich einen besseren Eindruck, als das von Eclipse.
* Man kann NetBeans schlanker machen, denn in Eclipse bekomme ich die für mich unnötigen Java Krams nicht deinstalliert.
* Generell ist das installieren von NetBeans viel einfacher.

Ich werde wohl erstmal bei Eclipse bleiben...

GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
sma
User
Beiträge: 3018
Registriert: Montag 19. November 2007, 19:57
Wohnort: Kiel

In einigen Wochen (oder Monaten) mag auch ein Blick auf PyCharm von Jetbrains bzw. das Python-Plugin für Intellij IDEA Ultimate lohnen. IDEA ist eine kommerzielle Java-IDE, für die es mittlerweile einen recht guten Ruby-Mode gibt, sowie Support für PHP, Flex und Groovy/Grails. Scala und Clojure werden ebenfalls unterstützt, diese sogar auch in der kostenlosen Opensource-Version der IDE. Laut Bugtracker wird es für PyCharm auch Django-Unterstützung geben, noch ist sie allerdings nicht zu sehen.

Und noch ist das Ding doch recht primitiv, was die Typanalyse und die Import-Unterstützung angeht. Ich glaube, die versuchen zur Zeit, durch eine reine statische Analyse des Quelltext herauszubekommen, welche Attribute es in einem Modul gibt. Das ist aber zu wenig. Auch unterstützt PyCharm wohl nur Python 2.x.

Vorteil ist, dass zumindest für Java-Entwickler, die schon IDEA kennen, eine weitere interessante Sprache unterstützt wird. Auch ist deren HTML-, CSS- und JavaScript-Mode einer der besten, die ich kenne und die IDE lohnt schon daher. Unterstützung für Versionsverwaltung (auch IMHO besser als z.B. bei Eclipse), Buildtools, usw. ist natürlich selbstverständlich.

Stefan
sma
User
Beiträge: 3018
Registriert: Montag 19. November 2007, 19:57
Wohnort: Kiel

Netbeans hat IMHO Potential, leidet aber darunter, dass Sun gerade Oracle werden will, aber nicht darf und Sun nicht mehr und Oracle noch nicht investiert und daher die meisten Projekte außer Java EE liegen geblieben sind.

Bei Netbeans störte mich noch, dass es kein (gutes) Git-Plugin gibt. Das gilt zwar auch für Eclipse, aber da war's mir egal... Zumindest Mercurial unterstützt Netbeans direkt (für Eclipse gibt es da ein nur weniger schlechtes Plugin als das schlechte für Git) und IDEA kann beides ganz ordentlich (Git ist eingebaut, Mercurial ein Community-Plugin). Das Eclipse noch nicht einmal SVN unterstützt und immer noch auf CVS festsitzt, ist fast schon lächerlich.

Stefan
burli
User
Beiträge: 1156
Registriert: Dienstag 9. März 2004, 18:22

Mal eine blöde Frage am Rand: wo ist eigentlich die Schwierigkeit mit dem Autocomplete bei Python, dass das nur so wenige Programme richtig beherrschen?
Benutzeravatar
Masaru
User
Beiträge: 425
Registriert: Mittwoch 4. August 2004, 22:17

Tun sie das? Mhm.

Welche "vielen" Programme beherrschen denn Autocomplete nicht richtig?
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

burli hat geschrieben:Mal eine blöde Frage am Rand: wo ist eigentlich die Schwierigkeit mit dem Autocomplete bei Python, dass das nur so wenige Programme richtig beherrschen?
Das Python nicht statisch ist, so kannst du zur Laufzeit Attribute hinzufügen, löschen, Typen ändern, ersetzen. Und das in beliebiger Reihenfolge, so kannst du aus einer Funktion je nach einem Parameter verschiedene Objekte zurückgeben lassen, die ganz verschiedene Attribute zurückgeben. Das kannst du mit einfacher statischer Codeanalyse nicht herausfinden.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Benutzeravatar
jens
Python-Forum Veteran
Beiträge: 8502
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

sma hat geschrieben:Das Eclipse noch nicht einmal SVN unterstützt und immer noch auf CVS festsitzt, ist fast schon lächerlich.
Für SVN gibt es zwei Plugins: http://subclipse.tigris.org/ und http://www.eclipse.org/subversive/

GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
burli
User
Beiträge: 1156
Registriert: Dienstag 9. März 2004, 18:22

Masaru hat geschrieben:Tun sie das? Mhm.

Welche "vielen" Programme beherrschen denn Autocomplete nicht richtig?
Ich sag mal so rum: das einzige Programm, dass das einigermaßen beherrscht und das ich kenne, ist Eclipse.

Kürzlich hab ich mal wieder Eric ausprobiert, aber da ging irgendwie gar nicht. Wenn ich "Variable = True" schreiben wollte hat er nach dem "Tr" die Vorschläge angezeigt und man konnte nicht mehr weitertippen. Man musste die Maus bemühen. Hab ich nicht weg bekommen.

Ansonsten fallen mir nicht mehr viele Editoren oder IDEs ein. Wie gut Netbeans ist weiß ich nicht. Mit vim, Emacs usw hab ich keine Erfahrung. Die beste "kleine" IDE ist immer noch Geany
burli
User
Beiträge: 1156
Registriert: Dienstag 9. März 2004, 18:22

Leonidas hat geschrieben:
burli hat geschrieben:Mal eine blöde Frage am Rand: wo ist eigentlich die Schwierigkeit mit dem Autocomplete bei Python, dass das nur so wenige Programme richtig beherrschen?
Das Python nicht statisch ist, so kannst du zur Laufzeit Attribute hinzufügen, löschen, Typen ändern, ersetzen. Und das in beliebiger Reihenfolge, so kannst du aus einer Funktion je nach einem Parameter verschiedene Objekte zurückgeben lassen, die ganz verschiedene Attribute zurückgeben. Das kannst du mit einfacher statischer Codeanalyse nicht herausfinden.
Hm, stimmt. Manche Parameter oder Rückgabewerte sind abhängig vom Kontext. Der Editor müsste den Code quasi ausführen und schauen, was in dem Moment passiert
sma
User
Beiträge: 3018
Registriert: Montag 19. November 2007, 19:57
Wohnort: Kiel

Masaru hat geschrieben:Welche "vielen" Programme beherrschen denn Autocomplete nicht richtig?
Für Java haben die IDEs das inzwischen perfektioniert und für C# und VB.NET soll VisualStudio wohl auch ganze okay sein. Das ist der Vorteil statischer Typisierung. (Zu statisch darf es dann aber offenbar auch nicht sein denn für Scala mit seinem sehr komplizierten Typsystem brechen sich noch alle IDEs die Beine ;)

Die vielen Programme die das nicht richtig können, sind eigentlich alle erhältlichen Python-Editoren oder Python-IDEs.

Die einzige Chance wäre IMHO, das lebende System zu untersuchen (wo wie Smalltalk das vor 30 Jahren gemacht hat) doch das birgt natürlich immer die Gefahr, dass das Analyseprogramm von dem zu analysierenden Programm negativ beeinflusst wird. Auch ist es bei Python ein Problem, dass der Interpreter beim ersten Fehler aussteigt. Wenn man Quelltext analysieren will, sollen aber Fehler (temporär) möglich sein. Eclipse ist hier bei Java (wieder war Smalltalk - genauer IBM VisualAge - das Vorbild) ungewöhnlich großzügig, dass man kaputte Programme sogar starten kann. In Python fehlt aber ein guter Weg, nach z.B. einem Einrückfehler wieder aufzusetzen und das Programm weiter zu übersetzen.

Stefan
sma
User
Beiträge: 3018
Registriert: Montag 19. November 2007, 19:57
Wohnort: Kiel

burli hat geschrieben:Hm, stimmt. Manche Parameter oder Rückgabewerte sind abhängig vom Kontext. Der Editor müsste den Code quasi ausführen und schauen, was in dem Moment passiert
Dies ist noch ein "harmloser" Fall, den man tatsächlich noch statisch prüfen könnte:

Code: Alles auswählen

def a(): pass
b = a
b()
def a(x): return x
b = a(a)(1)
Aber was ist z.B. mit diesem Ausdruck?

Code: Alles auswählen

import sys; setattr(sys.modules[__name__], "a", 2)
Stefan
burli
User
Beiträge: 1156
Registriert: Dienstag 9. März 2004, 18:22

sma hat geschrieben: Aber was ist z.B. mit diesem Ausdruck?

Code: Alles auswählen

import sys; setattr(sys.modules[__name__], "a", 2)
Keine Ahnung. Ich weiß nichtmal, was der Ausdruck genau macht. Mein Englisch ist immer noch besser als mein Python. Und das ist schon schlecht ;)
burli
User
Beiträge: 1156
Registriert: Dienstag 9. März 2004, 18:22

Mal noch eine andere dumme Frage: Gibt es sowas wie eine Entwicklungsumgebung nach dem Client/Server Prinzip? Also wo die gesamte Logik auf einem lokalen oder entfernten Server läuft und der eigentliche Editor ist nicht viel mehr als ein Userinterface (View).

Sowas ähnliches wie Gobby, nur eben eine vollwertige IDE
sma
User
Beiträge: 3018
Registriert: Montag 19. November 2007, 19:57
Wohnort: Kiel

Zope? Nur das da der Editor eher primitiv war. Könnte man aber dahingehend ausbauen. Mir fällt sonst noch WebVelocity, eine IDE für Seaside auf der Basis von VisualWorks Smalltalk ein.

Ich denke, man könnte so ein System auf der Basis von Python bauen und es wäre durchaus sinnvoll. Spannend...

Stefan
Antworten