summaryrefslogtreecommitdiff
path: root/swigweb/propaganda.ht
blob: c5abb358fd5394f6d48e25f197213092ffb701e3 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
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>