by |
|||
I n t e r v i e w |
|
|
If
you've never seen sketch, it's a free drawing software wich ever provides
interresting features. You' ll find an complete documentation about
this software here : :http://www.linuxgraphic.org/section2d/sketch/documentation.html
You'll
also find cliparts that you can use for your personal work. The official
website of Sketch is here : http://sketch.sourceforge.net/
Linuxgraphic.org
is a French web site designed to help artists , some parts are provided
in English like http://www.blender-cafe.org (integrated in Linuxgraphic.org)
Linuxgraphic.org:
Hello
Bernhard, you are the main author and the current maintener of Sketch,
a vector drawing program for Unix. Could you explain why did you choose
to start this project ?
Bernhard Herzog :
I first
contemplated writing a vector drawing program when I was writing my diploma
thesis. I was doing that in LaTeX mostly on a Sun workstation
and
a little on my Linux PC at home. I used XFig for some illustrations, but
I was very dissatisfied with it, mainly because of its user interface which
I never quite got used to but I also found the splines hard to use (I never
got them into the shapes I wanted) and I'd also have liked to have gradients.
I had also found Tgif, but even though it had a much better user interface,
it's graphics capabilities were actually very much the same as XFig's.
I thought
that I could do it better and that writing a drawing program would be a
very interesting project, but I didn't have the time for it then. It was
obvious to me that it would take a lot of work to write such a program.
Around that time, spring 1996, I discovered Python and it occurred to me that it would be the ideal language for a vector drawing program. Object oriented languages are a pretty natural fit for vector drawing programs and GUI programming and Python's flexibility would also make it easier than, say C or C++, to experiment with different designs. Finally, it would make an easy to learn language for user defined scripts that automatically had access to all of Sketch.
Even so, I wasn't sure yet whether Python was fast enough and I didn't really know enough about X programming. So, later that year, I started learning about X-programming with the Python X-extension, an interface to Xlib and Xt based widget sets like Athena and Motif and wrote what amounts to the very first version of Sketch. It was relatively simple but fast enough even on the 486 I was using at that time to convince me that it could be done.
Development
on Sketch continued only slowly until mid 1997 when I decided to concentrate
my free software development on Sketch and I ported it from the X-extension
to Tkinter and started to add more features like bézier curves and
raster image objects.
Linuxgraphic.org
:
You've done a lot of work
since the fisrt stage of the project, did you find some help by foreign
developers to improve and contribute in Sketch ? and why did you choose
TCL/tk for the interface ?
Bernhard
Herzog :
I'm still the only developer,
but sometimes I get patches or scripts. The situation has improved a bit
in recent months, though. The number of patches I get has increased a little
and there are now several people who seem serious about implementing new
features for Sketch. However, I'd be happy if more developers joined the
project.
Back then, Gimp was near the beginning of the 0.9.x series and GTK was in its early stages. They seemed quite instable to me, although I wasn't sure whether the crashes were due to Gimp or GTK or, more likely, both. If I recall correctly, there also weren't Python bindings yet.
Well, I wanted to concentrate on Sketch and not on debugging the widget set, so I chose Tkinter.
Linuxgraphic.org
So, your project started
before the Gimp Project; how can we explain that sketch didn't find the
same enthousiasm among developers than Gimp, yet Sketch uses an easier
language (Python) and there are no troubles with the widget library ?
Bernhard
Herzog :
Oh, Gimp is actually older
than Sketch. The first version of Gimp was published in early 1996, at
least half a year before I even started to write Sketch.
I think the lack of developer
enthusiasm for Sketch is to a certain extent precisely due to it using
Python and Tk. Practically everybody who programs in under Linux and similar
systems knows at least some C.
That makes it easy for programmers
to contribute to projects like Gimp that are mostly implemented in C.
The number of Python programmers is a lot smaller, so many people who might
consider contributing code to Sketch have to leary Python first and that
means many won't contribute at all. Luckily, python is becoming more
and more popular.
The toolkit situation has
changed a lot since the decision for Tk. By the time I released the first
public version at the end of October 1998, GTK had already become a stable
and more advanced toolkit than Tk.
Today, Tk probably doesn't
help attracting developers.
I can think of other reasons
as well, such as a still relatively small user base. On the whole I can
only speculate, but I think that there are several factors that contribute
and not a single simple reason.
Linuxgraphic.org
Today, it seems that the
sketch's development took a new turning using GTK Python and libArt; what
are the benefits from changing Tk to GTK and why Sketch is not integrated
with Gnome Office Project ? (note : since this interview Sketch is now
in Gnome Office with Sodipodi)
Bernhard
Herzog :
There
are several reasons why I switched from Tk to GTK. GTK offers more
advanced widgets than Tk such as tree views and multi-column lists or,
particularly useful for the anti-aliased view, a widget that can
display
RGB buffers on a large variety of visuals, so that I don't have to have
that kind of code in Sketch itself. GTK 2.0 will also be very interesting
for Sketch because Pango will make it easier to get high quality fully
internationalized text support in Sketch.
Last not least, it was user feedback that made me consider a switch to GTK for 0.8. Quite a few users asked why I had chosen Tk and suggested a port to GTK.
As for GNOME Office, I think the fact that Sketch is not a part of GNOME Office is simply due to lack of advocacy on my part. At least I don't know any technical reasons why Sketch couldn't be part of it. I think Sketch would be a good addition to GNOME Office and it would certainly help Sketch in that it would become more visible.
Linuxgraphic.org
Recently, Sun opened the
source of staroffice and they planed to use GPL licence, they also opened
Openofice.org and planned to port Staroffice to GTK/gnome.
Can we hope for a merger
between Sketch and StarDraw ? If not what are next features planned to
be implemented in SKetch ?
Bernhard
Herzog :
Well, it's a bit too early
to speculate about the impact of StarDraw on Sketch. However, there are
some reasons why a merger is unlikely.
First of all, 'merge' is probably not the right word. Given StarDraw's size and the fact that it's backed by Sun, any merge would mean that some parts of Sketch became part of StarDraw and that Sketch would cease to exist as a separate project. That's not something I want to happen.
There's also a technical reason. Sketch is primarily implemented in Python while StarDraw is written in C++, as far as I know. That means that it would be possible to use algorithms or data structures of one of the programs in the other, but any actual code sharing or reuse would be difficult.
Nevertheless, once the code is actually released, it will be very interesting to see how StarDraw solves some of the design problems of a vector drawing program.
As for the development of Sketch, the main goal of the near future is to complete the port to GTK, extend the text-support, and eventually to release version 0.8. Really new graphics feature like transparency willcome in the 0.9 development series.
Linuxgraphic.org
Ok, i'm a developer and
i learned Python's basic. Is it enough to join your project and help Sketch
project or do I need to learn something else ?
Bernhard
Herzog :
Well,
since you know Python, the biggest hurdle to overcome is to get familiar
with Sketch's internals.
The Developer's Guide, which is included in the source archive and the binary RPMs contains quite a bit of information to get you started. For instance, it explains the source code organization, the basic Sketch-specific data types and how plugins work. The Developer's Guide is not complete, though, so you'll often have to read the code to learn more or ask me.
To get some practical experience in programming for Sketch, the next step could be writing user scripts. Since both the user scripts and Sketch itself use Python, the scripts have access to all internals of Sketch and they use the exact same objects and interfaces as Sketch's internal code. That way you can start small without having to modify Sketch's code directly and grow from there.
Linuxgraphic.org
We are towards the end of
this interview, could we know in wich company you are currently working
and if it concerns the developement of graphic tools ? Did Sketch
bring to you some benefits in your professional life ?
Bernhard
Herzog :
I'm working for Intevation
, a young and small but growing Free Software consulting company here in
Germany. I started working for them in October.
I'm not directly working on graphics tools, but one of Intevation's areas of expertise is GIS, geographic information systems, which do have a relation to computer graphics. Among other things, Intevation runs Free GIS , a collection of free GIS software. The first project I've been working on at Intevation is also GIS-related. It's a simple webserver component for raster maps called MapIt! http://www.mapit.de.
Sketch did bring some benefits for me because I got this job because of it and now I get paid to work fulltime on free software and even though I'm not getting paid to work on Sketch there's no problem in using company equipment and other resources to work on Sketch or other free software. Occasionally even my bosses contribute to Sketch, like Bernhard Reiter -- one of the co-founders of the FSF Europe by the way -- who recently posted a script to export raster graphics to the Sketch mailing list.
Linuxgraphic.org
Many
thanks for this interview Bernhard, we wish you a good continuation in
your works.