Editor Geany und meine Einstellungen für Python3

Seit einiger Zeit beschäftige ich mich mit der Programmiersprache Python. Einfach mal um etwas anderes als nur JS, PHP oder C-Syntax zu sehen und auch mal auf neue Ideen zu stoßen. Für mich die erste Herausforderung, die Python-Syntax, die sich von der C-Syntax unterscheidet und am Anfang ziemlich seltsam wirkt. Die zweite Herausforderung, geeignete Werkzeuge. Ich habe schon einige Editoren ausprobiert und schnell wieder verworfen, wie zum Beispiel das Notepad++. Mein Problem ist, das es Editoren gibt, welche bei der Tab-Tasten einen Tabstop anlegen und keine leere Zeichen, oder sie mischen. Das Problem daran ist dann, das scheinbar die simpelsten Python-Programme nicht funktionieren, sobald da auch nur ein solcher Tabstop zu finden ist. Wenn man das Problem nicht kennt, kann man sich bei der Problembehebung dumm und dusselig suchen.

Eine IDE habe ich noch nicht im Sinn, wobei PyCharm schon installiert ist 😉

Was mir für Python gut gefällt ist der Editor Geany. Es ist Open Source, wird für verschiedene Betriebssysteme angeboten wie MacOS, Linux, *BSD und Windows. Sehr nettes Feature, zumindest für mich, Kommandos zum Erstellen von Programmen lassen sich editieren. Das sind meine Einstellungen:

Mit simplem Tastendruck lassen sich die Python Programme nun kompilieren und ausführen.

Mir gefällt es 🙂

jEdit kompilieren

Wie bereits schon kurz vorher beschrieben, ist es mir gelungen jEdit aus den Sourcen zu bauen und mittlerweile auch einzusetzen. jEdit ist mittlerweile zu meinem “Lieblings-Editor” avanciert und wenn es mir möglich ist, nutze ich den. Mittlerweile habe ich mir den Source Code besorgt und ihn mir auch schon etwas angesehen. Da ich hauptsächlich mit PHP zu tun habe, ist mir Java im Code design “etwas” fremd. Aber vielleicht wachse ich in den Code auch mal rein.

Nichts desto trotz habe ich es geschafft jEdit zu kompilieren. Im großem und ganzem ist das gar nicht so schwierig. Schwieriger war es, die Dokumentation zu finden, wo es beschrieben wird und für eine erforderliche Umgebung zu sorgen. Kurzum, um jEdit zu kompilieren braucht man den jEdit Source-Code und Apache-Ant.

Apache-Ant besorgen.

Apache-Ant besorgt man sich direkt beim Hersteller selbst, nämlich hier. Das entpackt man und richtet am besten einen Pfad ins apache-ant/bin ein. Das hilft nämlich später ant aus jedem beliebigen Ort aufzurufen. Da es viele Betriebssysteme gibt, gehe ich nicht darauf ein. Zu viele Unterschiede…

jEdit aus dem SVN holen.

Auch jEdit holt man sich direkt beim Hersteller und am bestem direkt aus dem SVN, das gibt es hier. Ihr solltet euch schlau machen, wie ihr SVN auf euer System bringt, wiederum gibt es viele Wege und viele sind unterschliedlich. Wenn die Daten geholt worden sind, öffnet man einen Terminal-Emulator(Linux/Unix) oder die Eingabeaufforderung(Windows) und wechselt in den Source-Code Verzeichnis von jEdit.

Im Ordner findet ihr die Datei README.SRC.txt. In ihr viele nützliche Informationen, wie minimale Anforderungen für jEdit sowie unterschiedliche Optionen für kompilieren. So gibt es Anmerkungen, wie man ein Programm samt Windows Installer baut, etwas für Mac OSX, verschiedene Linux Distributionen usw.

jEdit kompilieren

Nun leitet man die kompilierung mit den Befehlen ant dist ein. Der Code wird von Ant nun kompiliert und das ausführbare Programm wird im Ordner dist abgelegt. In meinem Fall, erhielt ich sogar einen Installer, womit ich das neue jEdit auch richtig installieren konnte. Ob der Installer für jedes OS existiert, kann ich nicht sagen. Werde es aber auf jeden fall bei Gelegenheit mal prüfen. Ich bin den Dingen mal etwas nachgegangen und weiß nun ungefähr was passiert. Führt man ant dist aus, wird versucht sämtliche Programmformen zu bauen. In der besagten README.SRC.txt steht drin, wie man nur eine ganz bestimmte jEdit Version bauen kann. So kann man zb. jEdit nur für sein Betriebssystem bauen.

Fazit

http://community.jedit.org/cgi-bin/TWiki/view/Main/BuildingFromSource beschreibt noch einmal, wie man sich die aktuellste Version aus dem SVN besorgt und aus dem Source-Code übersetzt. Insgesamt bin ich sehr froh wie einfach es geklappt hat und es war eine sehr interessante Erfahrung aus der Entwickler-Sicht einer anderen Sprache, mal etwas anderes zu sehen. Als PHP-Entwickler muss man ja nichts kompilieren.

Die nächsten Schritte wären wohl, sich den Code anzuschauen, PlugIn zu erweitern/entwickeln oder vielleicht versuchen den ein oder anderen Bug aus dem Bugtracker zu beseitigen. Aber noch ist es Zukunftsmusik 🙂

jEdit als meine Alternative zu Notepad++

In der Arbeit nutze ich überwiegend den Notepad++-Editor. Er ist sehr einfach zu nutzen, läßt sich auf Wunsch mit Plug-Ins und Makros sehr stark erweitern und hat eine sehr praktische Suche das über ganze Ordner nach einem Begriff suchen kann. Vor allem wegen der Suche, mag ich den Notepad++ sehr und habe lange nach einer Alternative suchen müssen, den Notepad++ gibt es nur für Windows.

Das ist für mich ein Nachteil den privat nutze ich Windows nicht. Auch nutze ich kein Linux und bin Windows gar nicht abgeneigt. Privat nutze ich eben kein Windows. Es gibt viele tolle Editoren, die sich unter mehreren Betriebssystemen nutzen lassen, meist sind diese aber auch irgendwie speziell, wie Emacs/Vim oder SublimeText.

Sicherlich keine schlechte Editoren und sind auch sehr mächtig wenn man sie beherrscht. Die Betonung liegt hier auf “sehr mächtig wenn man sie beherrscht”. Um sie zu beherrschen, muss man oft und relativ lange viele Tastaturbefehle auswendig lernen, nur um am Ende so etwas einfaches wie Kopieren eines Textes etwas komplizierter zu machen, was man mit Strg. + C auch erreicht.

Also habe ich mich lange umsehen müssen und meist nutze ich für die Programmierung doch eine IDE, wie zum Beispiel Netbeans. Ein Problem zwang mich jedoch auch unter Windows nach anderen Lösung für den Notepad++ zu suchen. Gelegentlich stürzte der Notepad++ bei mir komplett ab, was erstmals nicht weiter tragisch ist. Nur falls der Editor abstürzt, leert es die gerade geöffnete Datei und überschreibt sie vollständig.

Falls man nicht irgendwo ein Backup parat hat, ist der Inhalt verloren. Zum Beispiel 1500 Zeilen Code, werden dann genau 0 Zeilen Code. Und das ist sehr hässlich, weil es doch schnell und unerwartet passieren kann. Hardware habe ich schon überprüft, jedoch scheint es in Ordnung zu sein. Also muss ein erstmal ein anderer Editor her… und einige habe ich schon versucht.

jEdit

Am interessantestem fand ich jEdit. Erstmal kommt jEdit dem klassischem Editor und Notepad++ für mich am nächstem. Laut Wikipedia ein Editor für Programmierer und es ist für verschiedene Betriebssysteme verfügbar. Ganz klares Plus gegenüber Notepad++. Aber das allein reicht natürlich noch nicht, um als eine Alternative zu gelten. Anforderungen sollten natürlich auch passen, den schließlich sollte man zumindest die gleiche Produktivität aufbringen können, wie mit dem altem Editor.

Unter Notepad++ nutze ich folgende Dinge:

  • Syntax-highlightning
  • globale Suche über Verzeichnisse hinweg
  • whitespace-Ansicht um den Code lesbarer und sauberer zu gestalten
  • Explorer-Plugin für schnelle Navigation im Projekt-Ordner
  • Compare-Plugin für Code vergleiche

Bis auf die globale Suche, glänzen viele andere Editoren mit genau solchen Features, wie auch jEdit.

  • Syntax-highlightning
  • globale Suche über Verzeichnisse hinweg
  • whitespaces mit WhiteSpace-Plugin
  • jDiff-Plugin für Code-Vergleiche

Was etwas gegen jEdit spricht, ist seine Anfangs langsame Geschwindigkeit und relativ häßliches Design. Ich für meinen Geschmack habe den Editor erstmal anpassen müssen. Gute Neuigkeit ist zumindest, der Editor läßt sich sehr stark anpassen und erweitern. Auch hat jEdit einige sehr nette Features zur Code-Navigation gleich mit an Bord, wo ich beim Notepad++ wiederum suchen müsste. Man kann sehr schnell und einfach mehrere Skripte gleichzeitig anzeigen lassen, was unter Notepad++ etwas umständlicher ist.

Mein erstes Fazit

Einiges was Notepad++ standardmäßig liefert, muss unter jEdit über Plugins nachgerüstet werden. Umgekehrt aber genauso. Was das Explorer-Plugin unter Notepad++ macht, bringt jEdit im Grundpaket mit. whitespace-Ansicht muss unter jEdit via Plugin nachgerüstet werden, das wiederum bringt Notepad++ mit. Mir ist wichtig, beide Editoren sind ungefähr gleich und kommen auf einen ähnlichen Funktionsumfang durch Plugins.

Beide Editoren haben somit ihre Pluspunkte. Globale Suche existiert bei beiden Editoren, für mich bietet jEdit sogar die bessere Variante, den während der Suche, wird nicht der ganze Editor blockiert, anders als beim Notepad++. Wiederum ist Notepad++ gefühlt schneller und hat “noch” die bessere Syntax-Hervorhebung.

Wer nach einer Alternative zum Notepad++ sucht, sollte jEdit eine Chance geben. Für meine Arbeit macht es seine Sache prima und lässt vieles nicht so stark vermissen. Ausserdem kann jEdit sehr stark angepasst werden, was bestimmt den einen oder anderen Anwender überzeugen kann.

Ich arbeite vorerst mit jEdit weiter, Beruflich wie Privat und lerne den Editor erstmals kennen und kann dann auch genauer über ihn schreiben.