Gwyddion – Free SPM (AFM, SNOM/NSOM, STM, MFM, …) data analysis software

Gwyddion3 and 4 – Frequently asked questions

What is Gwyddion3? And 4?
Does it suffer the second system syndrome?
Where I can get it?
What does it mean for Gwyddion2?
When it will be usable?
Why are some basic features such as file loading missing?
Why no MS Windows installer is provided?

What is Gwyddion3? And 4?

The product of a deranged mind. The best thing since sliced bread. It is too early to call it yet.

Gwyddion3 is an experimental project Yeti has been developing for some time. It is more or less a new program which, although inspired by Gwyddion1 and 2, does not try provide a compatible API (nor much else).

Unlike Gwyddion1 and 2, which keep stable library interfaces, resource formats, etc., the entire Gwyddion3 series will be unstable. Once it is decided that the interfaces are stabilised and the program offers sufficient functionality for normal users, it will be released as version 4.0 and a new stable series will start. This will not happen sooner than the release of Gtk+ 4.0 though and more likely some time after when Gtk+ itself seems more stabilised.

Since Gwyddion3 is a development series that should, eventually, lead to Gwyddion4, the number ‘4’ is generally used in library and package names, pkg-config files, introspection versions, etc. The number ‘3’ is used for releases. So you will see libgwy4 with version 3.x, for instance. After the release of 4.0 you will still see libgwy4, but now with version 4.x.

Or something completely different will happen. Who can predict the future?

Does it suffer the second system syndrome?

That was a rethorical question, right? Of course it does.

On the plus side, this means a number of things that work poorly in Gwyddion2 is done differently to work better.

On the minus side, it might end up being developed foerever.

On the double plus side, I like developing it.

Where I can get it?

You surely meant where you can get the source code.

The source code can be obtained from the subversion repository:

svn checkout

Source code tarballs will also be occassionally released.

It should be noted that until the release of 4.0 comes near, no restraint in bleeding-edge dependencies or compiler support can be expected. Furthermore, the support for legacy 32bit systems will likely be ditched entirely at some point in future. This means a 64bit system will be required.

What does it mean for Gwyddion2?


Gwyddion2 is still the supported and actively developed branch of Gwyddion. Work on Gwyddion3 started in 2009. As you can observe in the change lists, Gwyddion2 has seen major development since. This will continue at least until 4.0 is released which is not going to happen for several years, if ever.

In any case, it is possible to install Gwyddion2 and 4 in parallel. So you do not have to choose (once the Gwyddion3 branch leads to anything semi-usable anyway).

When it will be usable?

It depends.

The libraries (namely libgwy4) have been used in a number semi-private programs for several years and they offer some interesting functionality. On the other hand, Gwyddion4, the program, is still in very early stages of development and it is not meant for general consumption.

As of 2013 the status is following:

libgwy (base and data processing)
Fairly well developed in some areas, less in others. It is in active use by real-world programs. It comes with a test suite (coverage and test strength vary). The API changes occasionally, some parts really need to facilitate introspection more for better Python coverage, some parts may be still ditched completely.
libgwyui (user interface)
Contains a few data display widgets and general widget utilities, but it is more of a demo. Substantial rewrites due to changes in Gtk+ are expected.
libgwyapp (application)
Rudimentary data and module management code, mostly at the proof of concept level.
Nonexistent. Some method to ease the development of modules are necessary to avoid the death by boilterplate. Modules might be written in Vala in the end.
gwyddion (the program)
Rudimentary, matching the proof-of-concept libgwyapp.
bindings (Python, etc.)
GObject-Introspection is used to enable language bindings and the libraries are fairly usable in Python – comparably to Gwyddion2 even at this early stage of development. If there is a conflict between convenience and efficiency in C and introspectability, the former wins. Bindings-friendly functions are added later.

Why are some basic features such as file loading missing?


First, the porting of a hundred of file modules is a bloody large amount of work. It is nonsense to perform it just to change the file loading interfaces (remember the word unstable?) and do it all again.

Also, it is a subtle method to get the idea that you should not use the program for serious work yet to your head.

Why no MS Windows installer is provided?

Why it should be?

Users of all other operating systems are capable of compiling programs themselves. While compatibility with MS Windows is an important objective, providing polished executables for an alien and quirky operating system is another matter. Solving specific MS Windows problems already takes a disproportionate amount of developers' time in the case of Gwyddion2 – time which could be spent by improving the program.

Furthermore, if people get executables they somehow expect to get also support. Not providing any executables prevents this misplaced expectation.

1.8 (yeti, 2013-11-18 22:49:08)
© David Nečas and Petr Klapetek

Home Download News Features Screenshots Documentation English guide French guide Russian guide FAQ Communicate Participate Resources Publications Applications Site Map

Valid XHTML 1.0 Valid CSS