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.
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
Darii
User
Beiträge: 1177
Registriert: Donnerstag 29. November 2007, 17:02

burli hat geschrieben: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
Bespin von Mozilla vielleicht.
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

burli hat geschrieben: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).
Ja, vim via SSH. So mache ich das seit Jahren. :twisted:
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
burli
User
Beiträge: 1156
Registriert: Dienstag 9. März 2004, 18:22

sma hat geschrieben:Ich denke, man könnte so ein System auf der Basis von Python bauen und es wäre durchaus sinnvoll. Spannend...
Hab ich mir auch gerade überlegt. Ich würde so weit gehen und sagen, dass der Server ein völlig eigenständiges Projekt ist, so dass man entweder einen eigenen Editor dafür schreibt oder für einen bestehenden ein Plugin erstellt. Wenn das ganze dann noch einen "Multiplayer" Modus bekommt wie Gobby wäre das dann schon eine nette Sache.

Hab gerade mal geschaut. Der Gobby Server ist leider in C++ geschrieben

@Leonidas: denk an die alten Leute, die Jahre zum erlernen der vim Bedienung bräuchten. In der Zeit können die was sinnvolleres machen ;). Ich für meinen Teil komme damit nicht zurecht und investiere meine Zeit lieber in die Erschaffung von neuem als in das Erlernen von altem.
burli
User
Beiträge: 1156
Registriert: Dienstag 9. März 2004, 18:22

Darii hat geschrieben:Bespin von Mozilla vielleicht.
Im Prinzip gar nicht mal schlecht. Hab mal den Python Server installiert. Aber ich hasse Browser Apps und Clouds.
Benutzeravatar
keppla
User
Beiträge: 483
Registriert: Montag 31. Oktober 2005, 00:12

burli hat geschrieben:
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.
Der ausdruck ist in etwas gleichwertig zu

Code: Alles auswählen

a = "2"
der witz dabei wird klar, wenn du betrachtest, wieviel von dieser info "laufzeit"-information sind.

importiert sys wirklich das modul, was du als sys kennst?
ist setattr tatsächlich das buildin?
ist sys.modules verändert worden?
etc.

um es mal ganz plakativ zu machen: denke dir statt "a" ein raw_input.
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

burli hat geschrieben:@Leonidas: denk an die alten Leute, die Jahre zum erlernen der vim Bedienung bräuchten. In der Zeit können die was sinnvolleres machen ;). Ich für meinen Teil komme damit nicht zurecht und investiere meine Zeit lieber in die Erschaffung von neuem als in das Erlernen von altem.
Man kann genausogut auch joe, nano, emacs statt vim in dieser Kombination nutzen. Achja, ich nutze außerdem noch screen und lasse meine Session so monatelang laufen.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
mpathy
User
Beiträge: 48
Registriert: Montag 17. September 2007, 12:29

burli hat geschrieben:Alle Jahre wieder? Naja, was soll's.
Naja, weil sich permanent was ändert in der IDE-Welt.

Ich habe zwar viele Sachen gefunden, aber meist mit total veralteten Ansichten und Informationen.

Ich bin auch kein Fan von unnötiger Redundanz, aber das hier ist keine :)
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)

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...
Das ist die EarlyAdopter-Version, die ist 6.7!

Ich habe die aktuelle 6.8 installiert. Auch weil ich für manche Dinge leider auch mal PHP nutzen muss, hab ich mir also die PHP Version (einer der 32MB großen) herunter geladen und das Python-Plugin heruntergeladen.

Was mich aktuell am zweiten Tag jetzt begeistert, ist, das ich im Gegensatz zu Eclipse sehr schnell die benötigten Sachen fand und die zudem nicht so total untergehen in Kontexmenüs etc.

Ein Beispiel:
Die Rename-Funktion, wie sie auch im Tutorial verwendet wird - supereinfach zu benutzen. Da macht Refactoring Spaß :)

Auch das Mercurial nativ unterstützt wird ist ein großes Plus.

Ich probiere jetzt mal ne Weile damit rum - wenn ich gut reinfinde und damit zurecht komme.

Ansonsten bin ich aber gerade auch mit meinem KomodoEdit zufrieden, das ist für mich so ein Mittelding zwischen normalem Editor und IDE.

Außerdem kann man Komodo gut mit Python skripten, schaut euch einfach mal den Quellcode an, ist ja alles open source seit ner Weile. Stichwort "OpenKomodo".
Mad-Marty
User
Beiträge: 317
Registriert: Mittwoch 18. Januar 2006, 19:46

Mir fehlt hier eindeutig noch Wing IDE

SVN Support funktioniert, Autocomplete ist das beste was ich bisher erlebt hab, kommt auch mit nicht trivialen code zurecht.

Und wenns dochmal zuviel dynamik ist, kann man noch type hints angeben.

debugger, breakpoints, variablen watch, unittest etc - halt alles was es gibt.
Textmakros/templates und für die harten vim makros.

IMO die beste IDE, aber nicht für lau
Lufia
User
Beiträge: 83
Registriert: Samstag 13. Mai 2006, 10:04
Wohnort: Berlin

Jedes Jahr das gleiche :roll: :wink:

Ich finde immer so einen Beitrag wo ich denke jetzt installierst du dir auch mal eine ordentliche IDE,.... aber ich kapiere die dann am Ende immer nicht so recht.

"Leider" nutze ich immer noch gvim und dann eben eric zum debuggen wobei der furchtbar träge ist.

Ich verstehe es nicht wie man mit Eclipse arbeiten kann wo man doch ständig ein Projekt machen muss,.... importieren muss,.... ich meine mir ist das zu viel Arbeit. :oops: oder ich bin zu doof. :( soll ich noch mal netbeans oder eclipse testen?
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5555
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Oberhofen im Inntal (Tirol)
Kontaktdaten:

burli hat geschrieben:
Masaru hat geschrieben: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.
Hallo!

Automatische Vervollständigung ist für mich DAS wichtigste Feature einer IDE. Deshalb habe ich ziemlich viele IDEs auf dieses Feature hin getestet.

Der größte Teil der IDEs und Editoren arbeitet mit einer Wortliste und kann deshalb nur bekannte Schlüsselworte vorschlagen.

Dann gibt es oft noch eine Erweiterung dieses Systems, indem z.B. beim Speichern des Modules das Modul nach neuen "Wörtern" durchsucht wird. Oft wird dabei aber auf importierte Module vergessen, so dass hier ziemlich schnell wieder die Grenzen erreicht sind.

Dann gibt es noch ein paar Zwischenstufen -- mehr oder weniger gut umgesetzt. An die Vervollständigung von Eclipse kann ich mich leider nicht mehr erinnern. Bei Eclipse hat mich mehr gestört, dass man für jedes kleine Programm ein Projekt anlegen muss. Ich kann doch nicht für jedes kleine Modul das ich schnell mal ändern möchte, ein Projekt anlegen -- das kostet mich viel zu viel Zeit.

Ich bin dann bei WingIDE hängen geblieben. Denn dort wird der Code während der Eingabe analysiert und auch teilweise "trocken" ausgeführt, um die möglichen Vervollständigungen zu ermitteln. So ist es für WingIDE Professional eine der leichtesten Aufgaben, die Attribute einer Klasse schon beim Schreiben der nächsten Codezeile korrekt vorzuschlagen und die Parameterbeschreibung einer kurz vorher erstellten Funktion anzuzeigen.

Codevervollständigung und die Anzeige der Parameter und Docstrings funktioniert Modul- und Projektübergreifend. Will man mehr wissen, dann klickt man mit der rechten Maustaste auf den Namen z.B. einer Funktion -- über das Kontextmenü kann man dann direkt zum Quellcode der Funktion springen und sich den Aufbau der Funktion ansehen.

Ich habe immer wieder mal IDEs angetestet und feststellen müssen, dass keine -- wirklich keine -- der anderen getesteten IDEs eine so hochqualitative Codevervollständigung wie WingIDE Professional geboten hat. Dass man dafür 179 Dollar (nicht Euro) hinlegen muss, trage ich mit einem Lächeln der Zufriedenheit. :-)

mfg
Gerold
:-)

PS: In meinen Tests sind mir auch einige IDEs untergekommen, die vorher falsch geschriebene und später ausgebesserte Funktionsnamen im weiteren Verlauf der Entwicklung *falsch* vorschlugen. :roll:
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Lufia
User
Beiträge: 83
Registriert: Samstag 13. Mai 2006, 10:04
Wohnort: Berlin

gerold hat geschrieben:Bei Eclipse hat mich mehr gestört, dass man für jedes kleine Programm ein Projekt anlegen muss. Ich kann doch nicht für jedes kleine Modul das ich schnell mal ändern möchte, ein Projekt anlegen -- das kostet mich viel zu viel Zeit.
Ich frage einfach mal konkret: Wie machen das die Eclipse-Fans unter euch?
gerold hat geschrieben: Ich bin dann bei WingIDE hängen geblieben.....
Habe ich auch mal getestet und fand es ganz gut, evtl. sollte ich mal etwas Geld investieren. Andererseits muss ich auch C und C++ programmieren und spätestens bei C++ bietet sich es an dann doch Eclipse zu nehmen.
burli
User
Beiträge: 1156
Registriert: Dienstag 9. März 2004, 18:22

Eclipse hat halt den Vorteil, dass es inzwischen alles wichtige kann. PHP, Java, C/C++, Python...

Da nimmt man im Zweifelsfall lieber die eine oder andere Einschränkung in kauf als sich mit fünf verschiedenen Entwicklungsumgebungen rumzuschlagen.

Btw: unterstützt Wing IDE die Erweiterung von Python mit C oder C++ Modulen? Wäre noch ein interessantes Feature generell für solche IDEs
Benutzeravatar
jens
Python-Forum Veteran
Beiträge: 8502
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Lufia hat geschrieben:
gerold hat geschrieben:Bei Eclipse hat mich mehr gestört, dass man für jedes kleine Programm ein Projekt anlegen muss. Ich kann doch nicht für jedes kleine Modul das ich schnell mal ändern möchte, ein Projekt anlegen -- das kostet mich viel zu viel Zeit.
Ich frage einfach mal konkret: Wie machen das die Eclipse-Fans unter euch?
Das ist für mich nicht relevant. Denn ich arbeite eigentlich nur für konkrete Projekte. Zum spielen mit einer "test.py" nehme ich SciTE.

Wobei man natürlich auch einfach irgendeine Datei in Eclipse öffnen kann, also auch welche die nicht zum aktuellen Projekt gehört.

GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
mpathy
User
Beiträge: 48
Registriert: Montag 17. September 2007, 12:29

Lufia hat geschrieben:Jedes Jahr das gleiche :roll: :wink:

Ich finde immer so einen Beitrag wo ich denke jetzt installierst du dir auch mal eine ordentliche IDE,.... aber ich kapiere die dann am Ende immer nicht so recht.

"Leider" nutze ich immer noch gvim und dann eben eric zum debuggen wobei der furchtbar träge ist.

Ich verstehe es nicht wie man mit Eclipse arbeiten kann wo man doch ständig ein Projekt machen muss,.... importieren muss,.... ich meine mir ist das zu viel Arbeit. :oops: oder ich bin zu doof. :( soll ich noch mal netbeans oder eclipse testen?
Ich steh in Eclipse manchmal auch wie ein Ochs vorm Berg.

Ich sehe zwar, was man für mächtige Features und Funktionen man oft findet, aber diese nicht sinnvoll einsetzen kann.

Das mit den Projekten etc. und das manche Sachen zwar auf jeden Fall machbar sind, aber mit ziemlich viel Trara außenrum, hat mich ja zu meiner aktuellen Konstellation OpenKomodo / KomodoEdit und Vim gebracht.

Vim, wenn ich mal schnell etwas editieren will, wenn ich irgendwas mit nur einer Datei habe oder eben kein Komodo offen, und natürlich auf dem Server.

Im Laufe der Jahre habe ich eine vernünftige Anzahl von Kürzel aus dem EffEff drin und habe nen Vim auch auf meinem USB-Stick, falls mal unterwegs was zu bearbeiten wäre ;)

Das schöne an VIM ist nämlich, das gibts auf jeder Plattform, und wenn man einen derart mächtigen Editor hat, das viele gar keine IDE brauchen fürs Programmieren, ist schon ein Glücksfall für uns. Auch auf meinem HTC Touch Pro 2 hab ich einen ;)

Für dich als Zwischending würde ich mal Komodo Edit ans Herz legen.

---

Was die Autovervollständigung angeht - von der darf man ja so oder so erst reden wenn es eine intelligente ist!

Eine "ich schau mal welche Wörter in der Datei vorkommen und schlage diese vor" ist für mich keine erwähnenswerte Autocompletion.

Die fängt erst dann an, wenn das Programm zwischen Funktionen, Klassen und den mitgegeben Werten unterscheiden kann, Docstrings zur Generierung von Hilfepopus während des eingebens mitgeben kann, etc. pp.

Und da hat mir sowohl mein Komodo Edit, als auch PyDev und jetzt auch NetBeans ausgereicht, die beherrschen das doch alle in einem umfassenden Maße?

Mich würde echt mal interessieren, was eine Autocompletion der kommerziellen IDE WingIDE (bei der die UI ja mal extrem unergonomisch aussieht) denn für einen Mehrwert hat gegenüber der von z.B. Komodo Edit, Netbeans oder Eclipses Python-Plugin.

Ich weiß noch das ich die IDE in der Demoversion auch mal installiert habe und noch am selben Tag wieder gelöscht. Von einem Kaufprogramm hätte ich da mehr erwartet, einen Mehrwert gegenüber anderen IDEs hatte ich da nie gesehen. Im Gegenteil.
DasIch
User
Beiträge: 2718
Registriert: Montag 19. Mai 2008, 04:21
Wohnort: Berlin

Das beeindruckende an Eclipse ist ja mal, dass eine IDE größer als mein Betriebssystem noch nicht mal in der Lage ist spaltenweise zu editieren ohne ein Plug-in zu installieren.
Antworten