guter Python-Editor

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.
Antworten
smith0815
User
Beiträge: 99
Registriert: Dienstag 13. April 2010, 11:08

Hi Leute,

zur Zeit ärgere ich mich mit diesem Pydev rum, genauer gesagt ist es Eclipse.
Immer wieder gibt es irgendwelche internen Probleme, weshalb es bei der Codevervollständigung hängen bleibt, eine Neubildung der Workspace verlangt (die dann ewig dauert) oder einfach irgendwelche Java-Probleme hat.

Gibt es keinen anderen Python-Editor mit Codevervollständigung, -kontrolle und Debugger, bei dem ich endlich Python progrommieren kann ohne mich mit dem administrativen Kram rumärgern zu müssen?
smith0815
User
Beiträge: 99
Registriert: Dienstag 13. April 2010, 11:08

Super Danke
Endlich weg von dem Ding
sma
User
Beiträge: 3018
Registriert: Montag 19. November 2007, 19:57
Wohnort: Kiel

Für größere Projekte gefällt mir PyCharm. Wie Eclipse braucht sie allerdings Java zum Laufen. Und sie ist kommerziell, wenn auch zu Ostern gerade 50% reduziert. Im Gegensatz zu den in der Endlos-Diskussion verlinkten einfachen Editoren ist PyCharm eine IDE mit Debugger-, Unit-Test- und Versionsverwaltungsintegration und versteht den Quelltext so weit, dass auch auf stilistische Probleme hingewiesen wird. Damit wird ein Mindestmaß von Komfort geboten, der z.B. bei der Java-Entwicklung selbstverständlich ist.

Stefan
ms4py
User
Beiträge: 1178
Registriert: Montag 19. Januar 2009, 09:37

smith0815 hat geschrieben:Super Danke
Endlich weg von dem Ding
Was ist denn deine neue Wahl?

Für kleinere Projekte finde ich Sublime Text ganz gut, es fehlen allerdings die geforderten IDE Funktionen (Debugger, VCS, etc.).
„Lieber von den Richtigen kritisiert als von den Falschen gelobt werden.“
Gerhard Kocher

http://ms4py.org/
Dauerbaustelle
User
Beiträge: 996
Registriert: Mittwoch 9. Januar 2008, 13:48

Meine Theorie ist ja, dass die Abwesenheit der meisten IDE-Funktionalitäten -- gepaart mit dem Drang, idiomatischen Code zu schreiben -- letztendlich zu besserem Code führt. Wenn man seine Namen immer austippen muss, gewöhnt man sich dran, "short and sweet and to the point"-Namen zu erfinden. Ein nicht vorhandener Codebrowser führt meiner Erfahrung nach zu minimalistischerer, simplerer Software.

Zugegeben, ein komfortabler Debugger, schön integriert in den Editor, fehlt meinem Vim-Setup noch. Und etwas, das diese widerlichen VCS-Commandlineinterfaces grafisch wegabstrahiert.

Ansonsten kann ich nur empfehlen, mal die Idee mit der IDE zu verdrängen und stattdessen nach einem anständigen Editor zu suchen.
Benutzeravatar
Hyperion
Moderator
Beiträge: 7478
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

Dauerbaustelle hat geschrieben:Wenn man seine Namen immer austippen muss, gewöhnt man sich dran, "short and sweet and to the point"-Namen zu erfinden.
Oder eben zu `a, b, i` oder noch `l1` :twisted:
encoding_kapiert = all(verstehen(lesen(info)) for info in (Leonidas Folien, Blog, Folien & Text inkl. Python3, utf-8 everywhere))
assert encoding_kapiert
Dauerbaustelle
User
Beiträge: 996
Registriert: Mittwoch 9. Januar 2008, 13:48

Hyperion hat geschrieben:
Dauerbaustelle hat geschrieben:Wenn man seine Namen immer austippen muss, gewöhnt man sich dran, "short and sweet and to the point"-Namen zu erfinden.
Oder eben zu `a, b, i` oder noch `l1` :twisted:
Du hast den Drang zu idiomatischem Code vergessen ;)
derdon
User
Beiträge: 1316
Registriert: Freitag 24. Oktober 2008, 14:32

Dauerbaustelle hat geschrieben:Zugegeben, ein komfortabler Debugger, schön integriert in den Editor, fehlt meinem Vim-Setup noch. Und etwas, das diese widerlichen VCS-Commandlineinterfaces grafisch wegabstrahiert.
Wie wär's mit PIDA für VCS-Abstraktion?
Dauerbaustelle
User
Beiträge: 996
Registriert: Mittwoch 9. Januar 2008, 13:48

derdon hat geschrieben:
Dauerbaustelle hat geschrieben:Zugegeben, ein komfortabler Debugger, schön integriert in den Editor, fehlt meinem Vim-Setup noch. Und etwas, das diese widerlichen VCS-Commandlineinterfaces grafisch wegabstrahiert.
Wie wär's mit PIDA für VCS-Abstraktion?
Der Editor? Kann der sowas? Letztes mal als ich den ausprobierte war das ein einziger Bughaufen. Aber ich bezweifle, dass deren VCS-Abstraktion so gut ist, dass man damit etwas "fortgeschritteneres" Zeugs grafisch erledigen kann -- sowas wie `git rebase/cherry-pick/reset/add -i/add -p` etc (falls dir Git-Befehle was sagen :-)
Benutzeravatar
jens
Python-Forum Veteran
Beiträge: 8502
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Statt Eclipse nutzte ich schon eine weile Aptana Studio 3. Eigentlich ist das quasi auch Eclipse, aber irgendwie alles wesentlich runder abgestimmt. Gut finde ich auch die GIT Anbindung.

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

Dauerbaustelle hat geschrieben:Meine Theorie ist ja, dass die Abwesenheit der meisten IDE-Funktionalitäten -- gepaart mit dem Drang, idiomatischen Code zu schreiben -- letztendlich zu besserem Code führt.
So ein Argument erinnert mich immer an Aussagen wie "früher war alles besser" und "ihr müsst alle den gleichen (mühsamen) Weg gehen, wie ich, damit ihr's lernt" und ich bin nicht überzeugt, dass diese Aussagen richtig sind.

Für Python haben ich da keine "Zahlen", aber Java-IDEs haben uns in meiner letzten Firma definitiv geholfen, qualitativ guten Code zu schreiben und haben den Entwicklern einen guten Stil beigebracht. Außerdem haben sie definitiv geholfen, von dem ganzen CLASSPATH-Scheiß oder Compiler-Abhängigkeiten zu abstrahieren und den Kopf für das wesentliche frei zu bekommen. Für Java würde ich daher guten Gewissens behaupten, dass Aussagen, wie, man soll doch bitte mit Editor und Kommandozeilen-Compiler (um den ganzen Schmerz der Entwicklung zu spüren und jeden Fehler einmal selbst zu machen) um ein guter Programmierer zu sein, falsch sind.

Ich greife nur ein Beispiel heraus: Namen sind mit das schwierigste in der Programmierung. Wie man Variablen, Funktionen oder Klassen nennt, ist entscheidend für das Verständnis des Programms. Gleichzeitig ist Programmieren Lernen und normalerweise weiß man am Anfang noch gar nicht genug über das Problem, um die besten Namen zu finden. Daher liegt man zumeist erst falsch bzw. findet später bessere Namen. Wenn es jetzt nicht einfach ist (wie bei einer IDE, die das gesamte Programm versteht und semantisch korrekte Refactorings anbieten kann) verbaut man sich die Chance, das neu gelernte auch in das Programm zu übertragen. Bei einem einfachen Editor, der nur Search-und-Replace beherrscht, gewöhnt man sich eher an, mit den schlechten Namen zu leben, weil einen das Werkzeug mangelhaft unterstützt.

Stefan
BlackJack

@sma: Der Vergleich mit Java hinkt IMHO. In Python kann man prima ohne IDE programmieren, was ich von Java nicht behaupten würde. Bei Java braucht man zwingend eine IDE wenn man nicht irre werden will.

Bei Python ist der Nutzen einer IDE auch nicht so hoch. Die angesprochenen Refactorings sind in Python oft nicht zuverlässig automatisierbar. Einer der Nachteile das die Sprache so dynamisch ist.

Wenn ich zum Beispiel Eclipse für Java und Python vergleiche, dann sehe ich sehr viele überaus nützliche Funktionalität für Java-Programmierer und im Grunde nur eine Autovervollständigung für Python, die auch nicht immer funktioniert. Was für mich kein ausreichender Grund ist so eine riesige IDE nur für Python-Programmierung zu starten.
Benutzeravatar
Hyperion
Moderator
Beiträge: 7478
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

Was in solchen Diskussionen auch oft untergeht: Es gibt ja durchaus auch viele Umsteiger oder Neulinge, die aus der Java- / C++-Ecke o.ä. kommen. Wenn diese bereits Eclipse kennen und mit der Bedienung vertraut sind, dann empfiehlt es sich für diese einfach PyDev zu nutzen. Schließlich bietet diese IDE ja auch viel sprachunabhängiges Zubehör, wie Plugins für VCS usw.
BlackJack hat geschrieben: Bei Python ist der Nutzen einer IDE auch nicht so hoch. Die angesprochenen Refactorings sind in Python oft nicht zuverlässig automatisierbar. Einer der Nachteile das die Sprache so dynamisch ist.
Ich will Dir da nicht widersprechen, aber kannst Du da mal Beispiele geben, bei denen es zu Problemen kommen kann?
encoding_kapiert = all(verstehen(lesen(info)) for info in (Leonidas Folien, Blog, Folien & Text inkl. Python3, utf-8 everywhere))
assert encoding_kapiert
BlackJack

@Hyperion: Zum Beispiel überall wo Namen in Form von Zeichenketten vorkommen. Beispielsweise ``sorted(persons, key=operator.attrgetter('eitsch'))``. Versuch mal da automatisiert das `Person.eitsch` in `Person.age` umzubenennen.

Oder auch ganz normaler Attributzugriff. Eine IDE kann bei Python ja im Allgemeinen Fall nicht herausfinden von welchem Typ ein Objekt ist. Wenn ich eine Funktion habe ``def f(o): print o.x`` und eine Klasse mit einem `x`-Attribut und jetzt bei einem von beiden das `x` umbenenne -- muss das Refactoring auch das andere `x` umbenennen oder nicht?
Benutzeravatar
Hyperion
Moderator
Beiträge: 7478
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

Stimmt. Danke dafür.

Ich muss mir mal das Refactoring von PyDev diesbezüglich mal angucken; da die Namen als String vorkommen, könnten da zumindest die Stellen einfach gefunden werden, bei denen die Refactoring-Methode nachfragen muss. Wobei das bei Suchen+Ersetzen in einem normalen Editor ja letztlich das gleiche wäre :-)
encoding_kapiert = all(verstehen(lesen(info)) for info in (Leonidas Folien, Blog, Folien & Text inkl. Python3, utf-8 everywhere))
assert encoding_kapiert
Benutzeravatar
naeg
User
Beiträge: 33
Registriert: Dienstag 27. April 2010, 11:53

Mich wundert es, dass die Komodo IDE noch nicht erwähnt wurde. Bzw. KomodoEdit, wenn man kein Geld ausgeben will (wie ich).

Ich habe früher Eclipse mit PyDev verwendet, war damit eig. auch zufrieden. Doch dann entdeckte ich zufällig Komodo und habe es mal getestet. Seit dem verwende ich nur noch KomodoEdit. Es isch wesentlich flinker, hat kaum diese Ladezeiten für Intellisense usw. (Bei Eclipse war es zumindest bei mir so, dass es zwischendurch mal eine Sekunde festhing)

Ich würde jedem raten(nicht nur Eclise-Usern), Komod(Edit) mal zu testen, aus meiner Sicht lohnt es sich garantiert!
mfg naeg
TrayserCassa
User
Beiträge: 97
Registriert: Donnerstag 2. Mai 2013, 19:11

Mich wundert es, dass die Komodo IDE noch nicht erwähnt wurde. Bzw. KomodoEdit, wenn man kein Geld ausgeben will (wie ich).

Ich habe früher Eclipse mit PyDev verwendet, war damit eig. auch zufrieden. Doch dann entdeckte ich zufällig Komodo und habe es mal getestet. Seit dem verwende ich nur noch KomodoEdit. Es isch wesentlich flinker, hat kaum diese Ladezeiten für Intellisense usw. (Bei Eclipse war es zumindest bei mir so, dass es zwischendurch mal eine Sekunde festhing)

Ich würde jedem raten(nicht nur Eclise-Usern), Komod(Edit) mal zu testen, aus meiner Sicht lohnt es sich garantiert!
Zwar besitzte ich noch nicht viel Ahnung von Python, aber mit dem Komodo komme ich zurzeit (als Einsteiger) ebenfalls gut klar. Leider hat die Komodoedit (Kostenfrei) keinen Debugger, die Vollversion natürlich schon :wink:

mfg
Trayser
Antworten