[ Return to Articles | Show Comments | Submit Comment ]
Article #825: What are the Versions of FLTK?
Created at 15:48 May 29, 2008 by engelsman
Last modified at 12:52 Jul 22, 2014
For several years, there were just two supported development versions,
a stable FLTK-1.1.x and an experimental FLTK-2.0, with the ultimate
goal that users would eventually move their code to FLTK-2.0. Unfortunately, different priorities meant that the two branches
diverged further, where FLTK-1.1.x continued to be used and developed and FLTK-2.0 slowly faded.
Eventually, a new initiative began to incorporate the UTF-8 code from
FLTK-2.0 into FLTK-1.1.x and this resulted in the release of FLTK-1.3.0.
In 2011 plans were announced for FLTK-3.x -- the successor
to both FLTK-1.3.x and FLTK-2.0 -- but despite some rapid initial progress, development has now stalled.
The status of the different versions is described below.
A graph showing monthly commit activity, or current lack of activity, is shown at the bottom.
- FLTK-1.3.2 [released 9th December 2012]
This is basically FLTK-1.1.10 with extra features, but with an
incompatible ABI. The new features include:
full UTF-8 Unicode support, which allows left-to-right non-Latin
text such as Greek and Cyrillic;
new Fl_Tree, Fl_Table and Fl_Native_Filechooser widgets;
a device abstraction layer;
and a new progamming manual generated from the code using Doxygen.
- FLTK-1.1.10 [released 27th December 2009]
This was the most established and stable version, mainly because the
lead developers had a lot of commercial code that depended on it.
However this also meant that the programming interface and the data
structures could not really be changed to support much-needed new features.
FLTK-1.1.x uses the current locale for character rendering and for
that reason is somewhat limited to "western" locales.
If you target the US or other countries that use latin character sets,
this is probably not an issue.
The final release of this branch will be FLTK-1.1.10 and there will be no further releases of the 1.1.x branch - not even for urgent bug fixes.
- FLTK-1.0.11 [released 24th October 2001]
FLTK-1.0.11 is ancient history. Use one of the more modern versions!
- FLTK-1.3.x [under active development]
Most of Matthias Melcher's
Vision for FLTK-1.3.0 has already been achieved, so
FLTK-1.3.x will probably be restricted to critical bug-fixes.
Development will now concentrate on "un-forking" the FLTK-1
and FLTK-2 branches to produce FLTK-3.x, as described below.
- FLTK-1.4 [future work]
FLTK-1.4 was a placeholder for feature requests and future work
that went beyond the scope of essential features required for the
initial release of FLTK-1.3.0.
This was to allow the developers to "eat the elephant one
burger at a time" :-)
Some of these feature requests may make it into FLTK-1.3.x bug-fix
releases, but most of them will now be directed to FLTK-3.x.
- FLTK-2.0.x-alpha [experimental but mostly dormant]
This was a major rewrite of FLTK-1.1.x to support theming (changing
the attributes of many widgets at once), new menu and browser structures, and a new multi-device drawing model.
FLTK-1.1.x and 2.0 do not share the same programming interface and
some of the data structures have been modified.
There were various passionate users of FLTK-2.0 who prefered its
cleaner architecture, but fewer active developers than FLTK-1.x.
Unfortunately many bug-fixes in 1.1.x and 1.3.x are not available
FLTK-2.0 was an experimental branch, but it never attained stability
and is now generally dormant.
- FLTK-3.x [experimental, but now also dormant]
FLTK-3.x development stalled in mid-2013 due to the [temporary?] loss of the lead programmer.
FLTK-3.x did progress from being just a concept to bring together the best of FLTK-1.3.x and FLTK-2.0 into actual development, but has now stalled. FLTK-3.x was intended to provide compatibility layers to allow the migration of 1.3.x and 2.0 based projects to a common code base.
FLTK-3.x has now progressed from being just a concept, with
development under way that will bring together the best
of FLTK-1.3.x and FLTK-2.0 and will provide compatibility layers to
allow the migration of existing 1.3.x and 2.0 based projects.
See also Matthias Melcher's
Proposal for FLTK-3
In addition to the official versions described above, there was also
one significant unsupported version:
This was a branch of FLTK-1.1.x that attempted to add some of the new features of FLTK-2.0. O'ksi'D provided UTF-8 handling and Roman Kantor provided device independent printing support.
This branch is no longer under development.
Monthly Commit Activity
PS. To keep this article on the first screen of the Articles&FAQs page, this dummy postscript was updated on 2014-07-22.
[ Listing ]
[ Submit Comment ]
From Belgiansteve, 12:48 Mar 25, 2011 (score=2)
I've noticed that the contents of this article hasn't changed much over the last months (years?) and was just wondering how accurate it still is. For example, this article says that development for 2.0 is dormant, but from looking at the bug reports and forums it looks like it is actively being developed. If someone could update this article or confirm that the contents is still correct I would really appreciate it.
[ Reply ]
From engelsman, 14:21 Mar 25, 2011 (score=3)
Last year there was a flurry of posts by rainbowsally about problems with 2.0 and how they could possibly be solved, and this year Ben Stott has stepped forward to start to address the 2.0 STR list, and it looks like he's doing a good job. But there is still no real active development with stated goals, release map, etc. How should we describe the current status? "Experimental, was dormant, but maybe now waking again"
[ Reply ]
From greg.ercolano, 20:31 Jun 08, 2013 (score=3)
Officially 2.x is dormant; it has been merged into 3.0 for active development there. No FLTK developers are working on 2.x, only 1.3.x and 3.x.
Stick with 1.3.x for production software, no matter how good 2.x's api might look. If you really want to use the 2.x style API, then work with 3.x, which is a combo of 1.x and 2.x. But don't release production software for 3.x until it at least attains beta status. Currently it's pre-alpha.
[ Reply ]
From greg.ercolano, 14:53 Jul 20, 2014 (score=3)
And I should add an update; the lead developer on 3.x is not active this year, so it may as well be considered stalled.
Stick with 1.3.x -- it persists because many of the devs on 1.3 also use 1.3 in commercial software, and therefore its development and maintenance persists.
[ Reply ]
From engelsman, 13:40 Jul 21, 2014 (score=3)
commits graph and FLTK-3 text updated, but maybe time for a total rewrite?
[ Reply ]
From melonman, 08:23 Aug 19, 2010 (score=2)
I'm looking at using FLTK as part of a project that is mainly about manipulating XML. UTF8 is pretty much everywhere in XML so, on that basis, v1.3 looks like A Good Thing. However, I'm struggling to get a feel for how stable it is.
I'm happy to cope with features not currently being there, or with features changing, and to contribute bug reports etc. Random and frequent seg faults all over the API would be much harder to live with. The project I'm working on is experimental, but it will still have end users, ie the functionality I provide needs to work reliably.
On that basis, is v1.3 a sensible way for me to go at this stage of v1.3 development?
[ Reply ]
From engelsman, 15:34 Aug 21, 2010 (score=3)
FLTK-1.3.x is probably stable enough for your needs if you are only using western Latin based characters, and do not use CP1252 0x80-0xFF extensions as these do cause problems.
Having said that, FLTK-1.3.x is the development version, so there are still wrinkles to be ironed out, and any help is appreciated.
[ Reply ]
From greg.ercolano, 08:09 Apr 13, 2013 (score=3)
Since your Aug 2010 posting, 1.3.x has become stable;
1.3.0 was released on June 2011, and a few patch releases came out since:
Nov 2012: 1.3.1
Dec 2012: 1.3.2
So 1.3 is stable now, and is continuing to be actively developed.
[ Reply ]