Dear users, dear developers,

as you may have read, I have been trying to get the FLTK 1 and FLTK 2 branch 
back together into a single FLTK 3 branch. 


 THE IDEA
==========

I am hoping to get the main features of both versions back into a single 
release, effectively doubling the number of developers and users for FLTK 3, 
assuming that we can abandon 1 and 2.

But that's exactly where the problem lies. When FLTK 2 was released, only half 
of the users made the jump, and the other half (including me) stuck with FLTK 
1. The last thing I want is splitting our energy once again by supporting THREE 
versions. This is why I added a compatibility layer to FLTK 3 which makes FLTK 
3 source code compatible to 1 and 2.


 THE STATUS
============

I converted the FLTK1 source code into FLTK3 namespace and added a tiny bit of 
FLTK2 code. The result is a fully working virtually bug free version of FLTK 3 
(which at this point is FLTK 1 in new clothes).

I added a wrapper that makes FLTK 1 source code compile with the FLTK 3 
library. This is a true wrapper, not just some #define list of new names. I 
have started a very minimal wrapper that makes FLTK 3 source code compatible to 
FLTK 2 as well. To verify the effort, all FLTK 1 tests compile and mostly run 
in this wrapper mode. There are still a lot of bugs though!


 THE FINDINGS
==============

 a:  FLTK 1 and FLTK 2 are still quite similar in their basic structure
 b:  there are some differences that make life hard - if those features were 
used
 c:  a big search-and-replace list will get an FLTK 1 program 95% into FLTK 3 
code
 d:  a big search-and-replace list will get an FLTK 2 program maybe 60% into 
FLTK 3 code
 e:  the compatibility layers work, but the F1 layer is still quite buggy, the 
F1 layer will need a lot of work
 f:  merging F2 features into F3 will also be a lot of work


 THE QUESTIONS
===============

I want to get an idea if FLTK 3 is worth the effort, and if we need the F1 
layer and/or the F2 layer.

So here are my options:
 1:  keep F1 and F2 development active, forget about F3
 2:  abandon F2, continue with F1, forget about compatibility
 3:  abandon F1, continue with F2, forget about compatibility 
 4:  merge F2 into F3, forget about the compatibility layers
 5:  merge F2 into F3, continue with the compatibility layers

What is it going to be?

I think this is a really important point for FLTK. If we decide wrong, and 
split user groups even more, that would be a disaster!

In the end, FLTK is OpenSource, and even if we were to decide to go FLTK 3, I 
can not keep anyone from continuing with 1 or 2. So if we do decide to go 3, we 
should all be on board, and all focus on it (possibly ignoring back 
compatibility). If we ant to stick with 1 and 2, that's fine with me as well, 
but I can guarantee that I will not make another attempt at FLTK 3.

Any questions and opinions are greatly appreciated,

 - Matthias



_______________________________________________
fltk mailing list
fltk@easysw.com
http://lists.easysw.com/mailman/listinfo/fltk

Reply via email to