SCITE Problem F5

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.
DasIch
User
Beiträge: 2718
Registriert: Montag 19. Mai 2008, 04:21
Wohnort: Berlin

Eine Forensuche nach Idle liefert auf der ersten Seite schon mindestens einen Thread mit Code bei dem Idle (kommentarlos) abstürzt. Ende November sollte doch wohl aktuell genug sein?
Benutzeravatar
numerix
User
Beiträge: 2696
Registriert: Montag 11. Juni 2007, 15:09

DasIch hat geschrieben:Eine Forensuche nach Idle liefert auf der ersten Seite schon mindestens einen Thread mit Code bei dem Idle (kommentarlos) abstürzt. Ende November sollte doch wohl aktuell genug sein?
Der Beleg ist nichts Wert. Der Anwender weiß nicht, wie er IDLE richtig zu bedienen hat. Das beschriebene Verhalten ist genau das, was sich in dem anderen mir bekannten Thread zum "bösen IDLE" auch findet und leicht erklärbar ist (dort habe ich schon einen Post dazu geschrieben): Startet man IDLE ohne Subprozess (und das ist hier offenbar der Fall gewesen), merkt sich IDLE alle Importe etc., so lange man es nicht komplett schließt und neu startet. Startet man IDLE mit Subprozess, ist das nicht so. Das ist kein Bug, sondern definiertes Verhalten von IDLE. Wird - so weit ich mich erinnere - in der IDLE-Doku auch drauf hingewiesen.

Also: Ich warte weiter auf ein Beispiel ...
(Im übrigen hattest du speziell auf Probleme mit Tkinter hingewiesen, was im von dir zitierten Thread ja ohnehin nicht der Fall ist.)
Benutzeravatar
BlackVivi
User
Beiträge: 762
Registriert: Samstag 9. Dezember 2006, 14:29
Kontaktdaten:

Tkinter wird wohl nicht soviele Probleme machen, weil's ja selber in Tkinter geschrieben ist. Aber GUI-Programmierung in anderen Toolkits verursacht 100% merkwürdiges Verhalten. Das habe ich bei wx, QT und auch bei anderen Bibliotheken wie numpy + plotten beobachtet. Jedoch ist das kein unbedingtes Problem von tkinter, sondern allgemein von allen shells. Ipython fühlt sich mich Gui-Programmierung auch ein wenig komisch an, wenn man mal etwas ausprobieren will (jedoch gibts da schöne Kommandozeilenargumente die irgendwas mit den Threads machen, dass sich das ganze nicht in die Quere kommt)

Das merkwürdige Verhalten lässt sich ganz einfach erklären - der Mainthread von Tkinter und andere Threads kommen sich bös in die Quere. Wie Gui-Programmiung + Threads. Geht auch grundsätzlich schief, ... manchmal nich, manchmal schon, manchmal _arg_ komisch.

IDLE ist nicht unbedingt schlecht, aber ... ich finds nich besonders schön, um ehrlich zu sein. GUI-Programmierung ist damit eher mässig, Logikprogrammierung is auch manchmal so'ne Sache, wenn man beispielsweise Threads verwendet oder mehrere Programme übers Netzwerk kommunizieren lässt. Das alles sind Fehler, die du in den Bugreports auf der Seite nachlesen kannst und das sind auch alles keine gravierenden Fehler für einen Anfänger. Aber sie lassen sich, durch die Beschaffenheit von Tkinter und der Programmierung von IDLE über einen localhost Socket, nicht so einfach beheben. IDLE is für'n Anfang ganz knuffig und für's schnelle bearbeiten von Dateien und so... Aber es gibt bessere IDE oder Editoren, finde ich zumindest.

Und die Buggykeit von IDLE lässt sich definitiv nicht bestreiten, weil's, wie gesagt, einfach in der Beschaffenheit des Programmes liegt.
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

numerix hat geschrieben:Startet man IDLE ohne Subprozess (und das ist hier offenbar der Fall gewesen), merkt sich IDLE alle Importe etc., so lange man es nicht komplett schließt und neu startet. Startet man IDLE mit Subprozess, ist das nicht so. Das ist kein Bug, sondern definiertes Verhalten von IDLE. Wird - so weit ich mich erinnere - in der IDLE-Doku auch drauf hingewiesen.
Also für mich klingt der Start ohne Subprozess wie ein Bug. vi hat auch Bugs, obwohl diese "dokumentiertes Verhalten" sind (und von vi-Klonen emuliert werden können).
Benutzeravatar
HerrHagen
User
Beiträge: 430
Registriert: Freitag 6. Juni 2008, 19:07

Ich muss den Kritikern teilweise Recht geben. Das ausführen von Programmen in IDLE ist so eine Sache... mal gehts - mal gehts nicht. Die Probleme lassen sich meißt alle irgendwie fixxen (z.B. plotten mit matplotlib). Aber was ist das für eine IDE, die für jedes Problem extra angepasst werden muss? Ich kann euch auch gern Code geben der in ner normalen Shell funktioniert und unter IDLE nicht. (hat noch nicht mal was mit Tkinter zu tun).
Der Grund warum ich IDLE trotzdem mag und einsetze ist die Code-Completion. Die funktioniert - im Gegensatz zu den meißten Editoren. Starten kann man das Programm dann immer noch von außerhalb. (damit ein Modul für die Completion verfügbar wird, reicht es auch diese in der "IDLE-Shell" zu importieren - man muss es nicht über IDLE starten). Und gerade zum Ausprobieren von kleinen Ideen oder zum Spielen mit numpy und matplotlib ist es ganz hervoragend geeignet.
Eigentlich müsste man mal IDLE überarbeiten. Schließlich wird es mit der Stadard-Distribution mitgeliefert und ich finde es ein wenig blamabel, dass es so viele Schnitzer hat.

MFG HerrHagen
Benutzeravatar
numerix
User
Beiträge: 2696
Registriert: Montag 11. Juni 2007, 15:09

@BlackVivi & HerrHagen: Eure Beiträge heben sich glücklicherweise positiv ab von der oft pauschal an IDLE geübten Kritik. So einfach, wie es oft dargestellt wird - IDLE ist mehr oder weniger unbrauchbar und produziert alle Nase lang Fehler - ist es nämlich wahrhaftig nicht.

Gerade als Anfänger kann man mit IDLE prima arbeiten - Gründe wurden ja genannt. Was andere GUI-Toolkits außer Tkinter mit IDLE angeht, habe ich keine Erfahrung, aber die Geschichte mit der Mainloop ist eigentlich klar. Das würde ich nicht als Bug ansehen, das kann einfach nicht gut gehen. Gerade mit Tkinter aber hatte ich mit IDLE noch nie Probleme - wenn IDLE richtig konfiguriert ist.

Dass IDLE optisch nicht viel hermacht - keine Frage. Das ist für mich der Hauptgrund, warum ich es selbst nicht so gerne einsetze.

Wenn man noch mal an das OP dieses Threads denkt: SciTE wird als IDE in der Regel gelobt - dem schließe ich mich auch an -, dass man unter Linux im eingebetteten Shell-Bereich aber keine Anwendereingaben entgegennehmen kann, finde ich - gerade für Einsteiger - wirklich gravierend. Bevor man mit IDLE - wenn überhaupt - Probleme bekommt, ist man sicher in einem Stadium, das es einem ohne Probleme erlaubt, den Editor zu wechseln. Für Einsteiger ist das oft eine Hürde.
Benutzeravatar
numerix
User
Beiträge: 2696
Registriert: Montag 11. Juni 2007, 15:09

HerrHagen hat geschrieben:Ich muss den Kritikern teilweise Recht geben. Das ausführen von Programmen in IDLE ist so eine Sache... mal gehts - mal gehts nicht. Die Probleme lassen sich meißt alle irgendwie fixxen (z.B. plotten mit matplotlib). Aber was ist das für eine IDE, die für jedes Problem extra angepasst werden muss? Ich kann euch auch gern Code geben der in ner normalen Shell funktioniert und unter IDLE nicht. (hat noch nicht mal was mit Tkinter zu tun).
Inzwischen hatte ich die Möglichkeit, dein Beispiel auszuprobieren. Ja, tatsächlich, hier funktioniert die integrierte Shell von IDLE nicht korrekt, weil die Escape-Sequenz "\b" nicht interpretiert wird. Gilt im übrigen auch noch für die aktuellste IDLE-Version für Python 3.0.

Edit: SciTE kann dieses Programm auch nicht korrekt in seiner integrierten Shell darstellen - wenn auch weniger schlimm als IDLE. Geany kann es.
HerrHagen hat geschrieben:Eigentlich müsste man mal IDLE überarbeiten. Schließlich wird es mit der Stadard-Distribution mitgeliefert und ich finde es ein wenig blamabel, dass es so viele Schnitzer hat.
Abgesehen davon, dass es aus meiner Sicht nicht "viele" sind, wäre das auf jeden Fall eine gute Sache.
Antworten