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.!
Python IDE Roundup zum Jahresbeginn..
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.
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.
- 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...
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...
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.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)
http://www.widdix.de/2009/12/01/eclipse ... untu-9-10/
- 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)...
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)...
- 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...
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...
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
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
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
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
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
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.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?
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
- jens
- Python-Forum Veteran
- Beiträge: 8502
- Registriert: Dienstag 10. August 2004, 09:40
- Wohnort: duisburg
- Kontaktdaten:
Für SVN gibt es zwei Plugins: http://subclipse.tigris.org/ und http://www.eclipse.org/subversive/sma hat geschrieben:Das Eclipse noch nicht einmal SVN unterstützt und immer noch auf CVS festsitzt, ist fast schon lächerlich.
Ich sag mal so rum: das einzige Programm, dass das einigermaßen beherrscht und das ich kenne, ist Eclipse.Masaru hat geschrieben:Tun sie das? Mhm.
Welche "vielen" Programme beherrschen denn Autocomplete nicht richtig?
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
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 passiertLeonidas hat geschrieben: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.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?
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 ;)Masaru hat geschrieben:Welche "vielen" Programme beherrschen denn Autocomplete nicht richtig?
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
Dies ist noch ein "harmloser" Fall, den man tatsächlich noch statisch prüfen könnte: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
Code: Alles auswählen
def a(): pass
b = a
b()
def a(x): return x
b = a(a)(1)
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 schlechtsma hat geschrieben: Aber was ist z.B. mit diesem Ausdruck?Code: Alles auswählen
import sys; setattr(sys.modules[__name__], "a", 2)
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
Sowas ähnliches wie Gobby, nur eben eine vollwertige IDE
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
Ich denke, man könnte so ein System auf der Basis von Python bauen und es wäre durchaus sinnvoll. Spannend...
Stefan