Before beginning, I must offer my profuse apologies to Shawn Gordon and the rest of theKompany crew. Shawn sent me the Black Adder software several months ago; however, my schedule ballooned beyond all believable bounds and has stubbornly maintained that ludicrous pace; unfortunately. I have not had an opportunity to write this review until recently, so I am sorry for my tardiness. And now to answer the most obvious question; what is Black Adder?Black Adder is theKompany’s Python IDE. However, this simple answer, while accurate, does not do Black Adder justice. Black Adder offers Python developers a convenient interface for managing python files, easily navigating classes, debugging python scripts, database connectivity via mxODBC, and, of course, creating GUIs in Python using pyQT and QT Designer. As an added bonus, it does all this on both Windows and Linux.
The Install
Just like every review I write, I will not spend much time discussing the installation. I know many people enjoy pedantic discussions on the thrills and spills of installing software; however, I fail to see the point. It’s like focusing all your thoughts and energy on the processes of getting the screw-top lid off you favorite beverage, to the complete neglect of actually pouring yourself a drink. Therefore, I believe it will suffice to say that installing Black Adder is an easy, predictable, and uneventful process.
First Impressions
I believe first impressions are very important, and Black Adder made a good first impression on me. While meaningless to most developers, the first thing that stood out for me was the fact that Black Adder properly supports Japanese characters (as you can see in the tree view in this screenshot). I was also impressed with the clean look of the layout and the meaningful icons used on the toolbar.
The Console Application
After letting my first impression sink in for a second or two, I immediately jumped into writing a simple console application. All this application would do is recursively check a directory structure and list all the directories and files in a meaningful and attractive way. I will get to the graphical interface portion of it later.
I used the Black Adder project wizard to create a project to hold my test application. The wizard was straightforward and unlike other IDEs I have used, the questions the wizard asked were clear and didn’t leave me puzzling over how to answer cryptic questions.
For the last eight months or so, I have been programming in Python almost exclusively. During that time, I was not able to find a debugger that I really liked (although I must admit I didn’t look very hard). While programming my sample application in Black Adder in order to write this review, I was surprised at how useful Black Adder’s debugger was. I wish I had used it on some of my real projects. If you are writing as much Python code as I have been lately, the debugger alone is worth the purchase price, I think.
Once I fixed all my typing errors and deleted the results of my mental inability to overcome putting semicolons at the end of every line, I ran the program from within the IDE, and for the most part everything went quite well. I did have to make a minor change to my code in order for it to work correctly, but once I made the change, my output was displayed correctly from within the Black Adder IDE.
Although the overall console application experience was a good one, there were a couple of things that didn’t seem to have the same level of polish. The first anomaly I noticed was that whenever I used the project wizard to create a new project, an error message would pop up informing me that the program couldn’t read the floppy drive (Windows). Since my floppy drive is nothing more than a dusty relic from days long past, and hasn’t accommodated a floppy disk for several years, I quickly clicked “Cancel” to close the message dialog. After doing this three times, the wizard proceeded as expected.
There were a couple of other minor quinkydinks that I met along the way. For instance, when you create a new file, it is presented in the IDE, but isn’t actually inserted into the project. You have save the new file and then manually insert it into the project in order to take advantage of Black Adder’s file view and class view.
In spite of these imperfections, the overall experience was a good one. Commands were easy to find in the menu system, the debugger was quite nice, and the IDE as a whole was easy to use and laid out in a logical way. I also liked the Python Console that is incorporated into the IDE. It makes it easy to quickly run a Python command and check its output without having to leave your development environment.
The Graphic Application
After completing my command line tool, I started a new project to create a sexy graphical interface for my redundant utility. One of the features that Black Adder offers is the ability to create graphic applications using the pyQT library and the QT designer (of course it is possible to just use the Black Adder editor and create graphic interfaces using any library you choose).
I have used wxPython and pyGTK in the past to create GUIs; however, this was going to be my first experience with QT.
After using the project wizard again to create a new project, I launched QT Designer from the toolbar in order to create my interface. The tool seemed fairly straightforward, so I went about the task of plopping buttons here, inserting text there, and so forth until I had what looked like the upper limits of my inability to create a decent UI.
Since the QT Designer is a separate application, I won’t spend too much time discussing it. I did find it to be a little confusing at first, but those who are familiar with QT and the QT Designer should feel right at home. After the QT Designer philosophy penetrated my stubborn brain, everything was fine. In spite of the fact that QT Designer is a separate application, I believe theKompany has done a good job of integrating in into Black Adder. Once I got my head wrapped around the QT Designer concepts, building a GUI version of my directory utility was fairly straight forward.
Conclusion
This is the second application from theKompany that I have had the opportunity to review (and after my extended tardiness, probably my last – again, I apologize Shawn and crew). The first program I reviewed was Data Architect. I must say that I have been impressed with theKompany’s attention to detail and the functionality of their software. As with any software, there are a couple of “beauty marks” that need to be worked out, and a couple of enhancements that probably should be made, but overall, theKompany has released a quality development tool with Black Adder.
If you are a Python developer who is looking for a good IDE with a good debugger, I recommend you give theKompany’s Black Adder IDE a try.
However, the evaluation one provides a decent IDE< but there are better ones, where it really shines is the PyQt module, python tailored Qt Designer and PyQt Doc.
I would be very interested in a comparison between a) Black Adder and b) Eric 3 or perhaps even c) KDevelop!
While on the subject of Python IDEs… It’s a shame that the Python mode(s) for Eclipse suck so much. The only reason I personally would use a IDE is for advanced functions like refactoring tools and versioning control integration, both of which Eclipse sets a new standard for. Syntax highlighting and code-rollup does not an IDE make anymore for me. Not to knock Black Adder, it’s features like the GUI creator firmly places it in the IDE category in my book.
does “Spacer” in the left panel of this picture
http://img.osnews.com/img/6183/ba2s.jpg
is something like “SpringLayout” in Java?
.. I like the idea of SpringLayout,
but it’s quite hard to use.
if the Spacer is something equivalent,
I really like to see any Java IDE/RAD to have
a visualization of SpringLayout like what BlackAdder
does with its Spacer.
I use eric3 in a large part because it supports refactoring (not perfect, but pretty good).
And I am not familiar with java’s springLayout, but a spacer is simply a pseudowidget, that occupies a cell in a grid, or a position in a row, and pushes the others aside.
So, if you want two buttons on the left side and one on the right, you do:
button ——–spacer——–button button
And when you resize the dialog, the spacer pushes the buttons to the edges.
I use them all the time in Designer, because it makes widget positioning relative to the window very simple.
the webpage says it can be used for ruby too, but i see no screenshots of it’s ruby integration. FreeRIDE just isn’t up to par honestly, and FOX i sn’t exactly the nicest toolkit either. does anyone know of a good quality ruby IDE offhand?
and for those who don’t know what ruby is, think python with useful features (true boolean, no dependency on tabs/spaces, fully object oriented, built in switch statement)
they said they were waiting for ruby/qt support to mature.
Now you can do ruby/qt development with KDevelop+QTEditor, the bindings are in kde’s cvs
The main reason, and by that I mean the really really true reason, that I didn’t include a Ruby screenshot, and didn’t discuss Ruby at all, is that I don’t know a thing about it. I don’t use it, I don’t know it, and therefore, the thought of talking about it never occured to me.
I hope this answer is satisfactory.
GUI tollkits for Python
o http://www.wxpython.org
o http://fxpy.sourceforge.net
IDE using wxPython:
o http://boa-constructor.sourceforge.net
I you want to learn (or play with) Python, without having it installed on your win platform:
o http://www.chez.com/spinecho/pypsi/pagpypsi.htm
thank you.
so they are quite different, since SpringLayout can also automatically change your widget size.
http://java.sun.com/docs/books/tutorial/uiswing/layout/spring.html
yeah, i agree that this kind of things makes your program looks nicer
Well, the spacer doesn’t change your widget’s size, but the containing box layout may 🙂
The Spacer has a stretching factor, and so do the widgets, as well as a policy of size being “preferred” “expanding” and others.
Usually, you just drop the things around and they should work ok, but fine layout tuning does take some work.
It doesn’t look like it is being actively developed.
It is a RAD-like for Wxwidgets and it generates code on the fly for C++, Python, Perl and Lua.
After purchasing and using BlackAdder for two weeks I installed eric3 to compare. I never used BlackAdder again. There are some that say the PyQtDoc application that comes with BA is helpful but I found it to be out of date with the new PyQt and Qt versions. The best reason for purchasing a BlackAdder license is the included distribution rights to the QT library being much cheaper than the same license purchased directly from Trolltech.
The eric3 website (http://www.die-offenbachs.de/detlev/eric3.html) looks like a great python IDE. Sadly, it can not be run on windows. While python is a truly cross platform solution, eric3 relies on PyQt (http://www.riverbankcomputing.co.uk/pyqt/index.php) which sounds just great, but the Qt library cannot be had for windows.
I went to trolltech’s website, and I see I can purchase a Development license of Qt for windows for a single license of $1550. They do offer a 30 day eval.
Sigh, so, I take this Eric3 is a Linux-only solution?
I looked at Eric and I don’t like what I see–are there any Python IDEs out there that aren’t a carbon-copy of MSDEV? I hate Microsoft’s class browser and I’m quite disappointed that they’ve just copied it right down to the icons.
Are there any Smalltalk/Obj-C style dev environments for Python?
I’ve been looking for a really good Python IDE for a while now. I thought theKompany had forgotten about this project. It seemed very promising, but forgotten. It looks like they really have been working on it!
Does it have any depoloyment tools? Deployment Wizards? How about code-completion/code-assist?
I think Python could replace any need for Visual Basic in a business. It is much simpler and much more powerful. Python is at the right maturity level (as opposed to Ruby). It just needs a kick-butt IDE and some comercial backing. The language is Open Source, and it runs on all the major OS’s. No comparison!
Have they hit 1.0 yet? The product was in beta over a year ago, and not much appears to have changed.
Warren
Boa *is* being actively developed, but since it’s been at a version 0.xx.yy for so long, people assume that the 0 means it’s not useable. It’s not as evolved as say, Delphi 7, or JBuilder X, it’s got a lot of rough edges [visually/look/feel wise, not functionality wise] on my Debian/Linux box, but on Windows it’s perfectly useable.
Warrem