My Universe Logo

My Universe Blog » Entries Tagged as IDE

Python IDE All Over Again

Posted by Jesco Freund at Oct. 4, 2011 6:36 p.m.

Ich weiß, zu dem Thema gibt es gefühlt mindestens tausend Blogposts – trotzdem möchte ich dazu ein paar Worte loswerden. Eine funktionierende und benutzbare Python-IDE zu bauen, scheint ungeheuer schwierig zu sein. Noch dazu eine, die unter FreeBSD ohne Einschränkungen funktioniert. Anders kann ich es mir nicht erklären, dass es Stand heute genau eine IDE gibt, die meine Anforderungen erfüllt. Dabei lassen die sich an einer Hand abzählen:

  • Syntax-Highlighting und Code Completion für Python
  • Integrierte Unterstützung für Git
  • Lauffähig unter Linux, FreeBSD und Solaris

Es gibt zwar unzählige Editoren, die Syntax-Highlighting können – an Code Completion scheitern jedoch (fast) alle Kandidaten, insbesondere an projektinternen Verweisen und Bezeichnern. Aptana's PyDev hatte ich für einige Projekte eingesetzt – allerdings funktioniert Eclipse unter FreeBSD nur bedingt, und PyDev verheddert sich regelmäßig mit import-Anweisungen. Für Projekte, die ich zwingend unter FreeBSD entwickeln und testen muss, keine gute Voraussetzung – da funktioniert jeder normale Texteditor genauso gut oder schlecht.

NetBeans war auf einem richtig guten Weg (wenn man von den Farben für's Syntax-Highlighting mal absieht), und lief auf problemlos auf allen erforderlichen Plattformen. Nur leider hat Oracle der Python-Unterstützung den Garaus gemacht – seit Version 7 gibt es keine Python-Unterstützung mehr. Zwar soll Python für NetBeans angeblich als Community-Projekt weiterleben, bisher ist von funktionierendem Code allerdings nicht viel zu sehen.

Bleiben noch KDevelop und Anjuta, wenn man den Blick mal auf die Open Source Welt beschränkt. KDevelop hat (mittlerweile) eine gute Git-Unterstützung; an Python wird jedoch noch gearbeitet (siehe Playground). Anjuta kann zwar Python und Git (wobei auch hier Code Completion noch eine ziemliche Baustelle ist), versaut Python-Projekte aber mit seiner Autotools-Sucht (was haben die bitteschön bei einem Python-Projekt zu suchen?). Außerdem zerrt Anjuta unter FreeBSD die gesamten rottigen Gnome-Ports als Abhängigkeit hinter sich her – unschön, weil oft auf Wochen das System wieder nicht aktualisiert werden kann, wenn einer dieser Ports mal wieder eine Macke hat (einer der Gründe, warum ich unter FreeBSD wieder zu KDE zurück gewechselt bin).

Für den produktiven Einsatz muss man unter'm Strich wohl sagen, dass es keine wirklich geeignete Open Source IDE gibt, die für meine Zwecke einsetzbar wäre. Aber auch bei den kommerziellen Vertretern wird es dünn: Wing und Komodo laufen nur mit ach und krach unter FreeBSD (sind aber ansonsten gute IDEs); außerdem schrecken beide mit (zu) hohen Lizenzkosten (zumindest für jemanden wie mich, der mit seinem Code keine großen Umsätze macht).

Schlussendlich arbeite ich momentan mit JetBrains PyCharm. Die IDE ist in Java geschrieben und läuft ootb unter FreeBSD. Zur Zeit gibt's auf die Lizenzen 50% Rabatt, so dass die (ohnehin recht günstige) Lizenz für mich noch erschwinglicher wurde. Optisch ist die IDE zwar nicht so ansprechend, aber die „inneren Werte“ sind recht überzeugend: Git und sogar GitHub werden unterstützt, und die Code-Indizierung ermöglicht Code Completion vom feinsten. Allerdings ist die IDE ein bisschen lahm – die Bedienung fühlt sich zäh an (das habe ich bei anderen Java-GUI-Anwendungen auch schon besser gesehen), und der Speicherverbrauch ist enorm. Damit kann ich aber leben, zumal es leider derzeit keine attraktive Alternative gibt.

No comments | Defined tags for this entry: IDE, open source, python

Qt Creator mit CMake

Posted by Jesco Freund at March 27, 2011 5:42 p.m.

Auch C-Programmierer schätzen Komfort – mir jedenfalls geht es so. Warum sollte ich meinen Code mit vi schreiben, wenn es auch bequemer geht? So zahlreich die IDEs mittlerweile auch sind – für meine Bedürfnisse war bisher nur wenig brauchbares darunter. Sicher, Eclipse CDT ist eine passable Entwicklungsumgebung, auch NetBeans ließe sich benutzen. Aber die Java-Schwergewichte (und mittlerweile de-facto-Standards im IDE-Umfeld) sind nicht für Projekte ausgelegt, die CMake als Build System verwenden. Selbiges gilt übrigens auch für Anjuta – hier liegt der Fokus klar auf den GNU Autotools.

Interessanterweise kommen aus der Qt-Ecke zwei IDEs, die mit CMake recht gut zusammen arbeiten. Da wäre zum einen KDevelop 4. Leider ist Version 4 noch etwas wackelig, und auch die Zusammenarbeit mit Versionskontrollsystemen läuft noch nicht so ganz rund – mit Subversion klappt's einigermaßen, mit Git so lala und Mercurial wird derzeit gar nicht unterstützt. Schade eigentlich, denn die CMake-Unterstützung ist wirklich exzellent; die Mouse-Over Dokumentationseinblendungen sind wirklich der Hammer und machen auch CMake-Neulingen den Einstieg sehr leicht.

Im Bewusstsein der meisten C-Programmierer spielt Nokia's Qt Creator eine eher untergeordnete Rolle – dabei kann die recht schlank geratene IDE viel mehr, als nur C++-Code mit Qt zu verleimen. Die Editor-Komponente kann selbstverständlich auch mit „normalen“ ANSI C Code- und Headerdateien umgehen. CMake anstelle von qmake wird ebenfalls unterstützt, auch wenn das nicht auf den ersten Blick ersichtlich ist. Da keine Projekt-Templates für CMake mitgeliefert werden, bleiben zwei Möglichkeiten: Entweder von Hand ein CMake-Projekt im Dateisystem anlegen und dieses einfach öffnen, oder eigene Templates bauen.

Genau letzteres habe ich jetzt getan, damit ich nicht mehr so häufig zwischen Shell und IDE hin- und herhüpfen muss. Wer mag, kann sich die Templates gerne herunterladen. Die Datei muss nach /usr/local/share/qtcreator/templates/wizards/ entpackt werden (unter Linux kann der Prefix verändert sein, dann wäre es /usr/share/…). Beim nächsten Start der IDE steht dann eine neue Kategorie CMake Projects zur Verfügung. 100%ig perfekt sind die Templates noch nicht; das ausführbare Binary findet Qt Creator noch nicht ohne Hilfe – eine Kleinigkeit, die sich IMHO aber verschmerzen lässt.

No comments | Defined tags for this entry: development, IDE, open source, Qt Creator

NetBeans IDE for Python

Posted by Jesco Freund at April 5, 2009 12:45 p.m.

/assets/user/jfreund/img/png/thumb/128x128/nb_editing.png

Python ist für mich eine der besten, wenn nicht sogar die beste und produktivste Programmiersprache überhaupt. Allerdings fehlt mir bisher für Python eine IDE, welche die Entwicklung mit Python genauso gut und mächtig unterstützt, wie etwa Eclipse oder Sun Studio dies für Java oder C++ tun. Für Windows gibt es mit der Wing IDE eine brauchbare (kommerzielle) Lösung; im FOSS-Bereich blieb bislang nur Pydev. Pydev ist zwar besser als ein einfacher Editor, aber alles andere als das gelbe vom Ei: Funktionen, die Pydev wirklich mächtig machen (etwa Code Completeion), sind nur in der kommerziellen Erweiterung Pydev Extensions enthalten, und auch sonst macht das Projekt in letzter Zeit eher den Eindruck, ein Lockangebot für kommerzielle Produkte von Aptana zu sein.

Seit einiger Zeit brodelt es allerdings in der NetBeans-Projektküche: Dort verfolgt man das ehrgeizige Ziel, nicht weniger als „the best integrated tool for programming in Python“ zu schaffen. Seit Anfang des Jahres steht eine Early Access Version der NetBeans IDE for Python (basierend auf NetBeans 6.5) zum Download bereit, und mit eben jener habe ich nun ein wenig herumgespielt. Sowohl unter Solaris 10 (Sparc) als auch FreeBSD 7.1 (i386) lässt sich die EA-Version problemlos „installieren“: während für Solaris tatsächlich ein Installer existiert, müssen sich FreeBSD-Nutzer mit dem „OS Independent ZIP“ begnügen, was aber auch kein Drama ist – einfach an eine beliebige Stelle im Dateisystem entpacken und bin/netbeans ausführen. Hierfür wird eine funktionierende Java-Umgebung vorausgesetzt – unter Solaris natürlich kein Thema, und unter FreeBSD funktioniert NetBeans einwandfrei mit dem Diablo JDK 1.6 aus den Ports.

Auch wenn der Swing-Look von NetBeans insgesamt etwas weniger gefällig ist als die SWT-Erscheinung von Eclipse, so braucht sich die EA-Version keinesfalls hinter dem etablierten Konkurrenten verstecken. Die Projektverwaltung ist mit Eclipse auf Augenhöhe, und auch der Klassen- und Funktionsbrowser ist recht ähnlich aufgebaut. Ebenfalls typisch für eine „große“ IDE ist die Aufgabenverwaltung und eine Werkzeugsammlung für Refactoring. Besonders punkten kann NetBeans gegenüber Pydev durch den integrierten Debugger inklusive Performance-Messwerkzeugen, eine Python-Konsole und Code Completion in der Editor-Komponente. Als besonderes Bonbon unterstützt NetBeans neben den klassischen VC-Systemen CVS und Subversion auch Mercurial – bei einer Python-IDE eigentlich naheliegend…

Natürlich hat NetBeans auch einige Schwächen, die an dieser Stelle nicht verschwiegen werden sollen: So nervt etwa die hohe Affinität zu Jython – an manchen Stellen muss man NetBeans schon mit sanfter Gewalt dazu überreden, auf den nativen Python-Interpreter zurückzugreifen. A propos Interpreter: NetBeans ließ sich mit keinem Trick dazu überreden, Python 3.0 in die Liste der verfügbaren Python-Plattformen aufzunehmen. Gerade für die Entwicklung neuer Projekte ist das schade, da es sich bei diesen besonders anbietet, von vornherein auf die neue Python-Generation zu setzen.

Alles in allem halte ich aber diesen ersten Wurf für bereits sehr gelungen und dem Platzhirsch Pydev mindestens ebenbürtig, in einigen Punkten sogar für deutlich überlegen. Man darf also auf die weitere Entwicklung gespannt sein…

No comments | Defined tags for this entry: Eclipse, FreeBSD, IDE, NetBeans, open source, programming, python, scm, Solaris

Page 1 of 1