From: Smith J. (E. - U. - U. Group)
<jac...@un...> - 2009-06-19 14:47:20
|
This wikipedia article helped me to understand SWIG's use of the term "module". http://en.wikipedia.org/wiki/Modularity_(programming) May I suggest that this term be clearly defined early in the SWIG documentation so that those of us who have never developed using COBOL, RPG, PL/1, Ada, D, F, Fortran, Haskell, Pascal,ML, Modula-2, Erlang, Perl, Python or Ruby (which apparently are familiar with the term as is used) - a set which includes the worlds most popular programming languages (Visual)Basic, C, C++, C# and Java - can at least start to understand the SWIG documentation. I'm still not certain what equivalent concept exists in those latter languages, but I suspect that for C++, C# and Java the word 'class' is an almost exact replacement. As a reasonably seasoned C/C++/C# developer reading the SWIG documentation is very difficult, since there are frequent misuse of terms such as compile and module. Examples: "In a nutshell, SWIG is a compiler that takes C declarations and creates the wrappers ...", here the use of the word 'compiler' is extremely confusing and at odds with the classic definition of that word - see: Paragraph 2 http://en.wikipedia.org/wiki/Compiler . I would say that SWIG is essentially an enhanced pre-processor (in the C/C++ use of that term), not a compiler, since it does not output object files. "Most operating systems and scripting languages now support dynamic loading of modules." I know of no 'major' operating system which allows the dynamic loading of 'modules' (especially considering that the SWIG usage of module is not an executable image, but essentially a 'class' definition), but I know several operating systems which allow the dynamic loading of shared object files (aka Dynamic Link Library) which may contain any number of compiled 'modules'. It is these types of inconsistancies which, for me anyway, have made understanding SWIG extremely challenging. I hope I don't sound like I'm being pedantic, or merely ranting. SWIG is clearly a very powerful and useful too, and I have little choice but to use it for the project I am on now. I hope my comments are accepted in the spirit they are intended, to help others like myself who are new to SWIG learn it more efficiently. |