blob: c5abb358fd5394f6d48e25f197213092ffb701e3 [file] [log] [blame]
SWIG Propaganda
<p><img src="images/propaganda.png" alt="Propaganda">
<p>
The following comments about SWIG were collected by a user survey conducted
in March, 1998.
<ul>
<li><p>"SWIG has helped us minimize the hassle of writing manual wrappers.
Since SWIG has proven to be rather easy to use, I find I can carry out the types of wrapping
activities which would otherwise have been the responsibility of a
computer scientist."
<li><p>"I really love the fact that the learning curve is short
and flat. I don't need to use this facility very often,
but when I absolutely have to link in external C routines,
or when I have to get the last drop of speed from something
previously written in Perl, I can count on SWIG to be there.
When I do use SWIG, I don't need to spend hours learning
and debugging the system. This is the closest thing to
cut-and-paste I've ever seen in inter-language library
creation."
<li><p>"We are a research group that develops medical imaging software.
We are interested in image processing/visualization research,
and for our software, we want a simple and portable tool to
generate user interfaces. For this, we currently use
Tcl/Tk, and SWIG which provides a nice way to connect our
software (in C++) to the tcl-scripts."
<li><p>"Very quick first results."
<li><p>"Easy to use, no need to worry about language internals. It is a boon for application developers, like me."
<li><p>"I like the fact that it automates much of the tedious work
in building an interface C/C++ functions. This makes development easier."
<li><p>"SWIG is by far the easiest way I have found to generate
scripting interfaces for scientific software. SWIG makes it
practical to use a single, powerful scripting language for
all projects rather than writing a custom interface to each.
It also encourages a consistent and modular form for a program,
and makes it easier to add contributions to my programs from
other users/programmers."
<li><p>"I like the ease with which scripting languages can be extended.
The fact that we could so easily interface with Lotus Notes on NT using Python was just amazing."
<li><p>"SWIG makes linking
my application to a scripting language easy enough
that it is worthwhile."
<li><p>"I came, I saw, I wrapped. And it ran. Woo hoo!"
<li><p>"Without SWIG it would have taken much, much longer for
our group to use Python as an extension language. Our whole
application was written mostly in C++. We wanted to look
into using Python for portions of it in order to make it
easier to extend. Python has a fairly nice interface for
doing this sort of thing. The trouble was that we needed to
make hundreds of C++ classes available to Python. This
would have taken a very long time (to write the wrapper code).
SWIG allowed us to spend a minimal amount of time with
the wrapper code and most of our time moving stuff to Python
(which was the big point in the first place)."
<li><p>"SWIG is a huge time-saver. I have approximately 30,000
lines of C and Python code that have been generated by
SWIG that I didn't have to write by hand, don't
have to fix syntax and fumble-finger errors in, and
don't have to aggressively test."
<li><p>"SWIG helps us in taking away part of the error-prone task of making
the C routines accessible from Python and has considerably improved
our efficiency."
<li><p>"I like all the time I have saved by not writing the interfaces myself."
<li><p>"SWIG saves a lot of my energy in interfacing with many free
C/C++ libraries in my project."
<li><p>"SWIG handles the gory details and allows me to concentrate on the important things."
<li><p>"Using SWIG is really fun, because it saves you from
a lot of mechanical work and it takes care of all the
details you don't want to bother with letting you
concentrate on the real problem."
<li><p>"Thanks again for SWIG... It's fun and allows great productivity while
avoiding much tedium."
<li><p>"[I like] the ability to write extensions basically without having to think too
hard about what I'm doing."
<li><p>"SWIG allows me to get on with scripting
and writing C++ code without having to worry about the
(usually considerable) issues involved in extending the
scripting language with my custom components."
<li><p>"Using a scripting language as glue between C++ components
is a powerful paradigm for combining flexibility with
robustness and efficiency. SWIG enables this model by
providing a solid bridge between the C++ component and
the scripting language."
<li><p>"The ability to ``follow'' the development of the core
application without constantly rebuilding the interface
is very effective. The developments of the kernel and its interface are
mutually protected to a large degree."
<li><p>"SWIG allows us to recycle a lot of ugly old C code and put
it into a reasonable module structure and snazzy new user
interfaces."
<li><p>"It allows us to leverage the advantages of the scripting
language, especially when so many other scripts are already
being written to glue programs together and some of our
other tools have their own scripting language interface.
Using SWIG will allow us to properly integrate each of the
parts directly into the language instead of a collection
of system() calls."
<li><p>"Before I had to use C++ for my ``rapid'' prototyping.
Now I can script it!"
<li><p>"My code is cleaner and more compact which makes it easier to
read and understand. SWIG also encourages modularize code--allowing
one to test/debug modules independently. This makes connecting
everything together a breeze."
<li><p>"The very idea of scripting programming on the one hand and
systems programming on the other is quite nice, the most
important feature of SWIG is to make this approach
practical on a day-by-day basis."
<li><p>"On the whole, SWIG is my most important development tool
after gcc!"
<li><p>"SWIG has enabled our customers to interact with our toolkits in fundamentally
new ways."
<li><p>"We are using Tcl scripts as the data files driving our
simulations. Once the data is defined using a program
(which is pretty cool in itself), we can actually run the
simulation from script commands. In our experimental
environment, that saves rewriting a lot of "main" programs
that exercise the same basic objects. This isn't exactly computational steering, but it does give
our engineers a lot of flexibility."
<li><p>"All (well most) of my C++ code (MC simulations of
proteins and sequence analysis) is now driven by
a Python interface thanks to SWIG. Once I have decided on an interface, the
process of building it is usually trivial."
<li><p>"SWIG is an integral part of a user environment I am creating for a Molecular Dynamics company.
They have FORTRAN modules that require a steering language (Python) to enable flexible computational
research."
<li><p>"SWIG plays a critical role to automate the generation of
Perl client interfaces from the OMG IDLs for a CORBA ORB.
The Perl client interface is essential in script driven
testing."
<li><p>"I am enjoying rapidly developing complex projects using OO
and Python, but coming from a numerical background, I like
that I can get fast number crunching performance when I
need it from C modules wrapped up by SWIG. "
</ul>