Lothar Scholz wrote:
Hello Jamey,
> The good news about this whole thing is that, when it comes to > developing gui apps in Ruby, we have a choice! Be it FXRuby, Ruby-FLTK,
> Ruby/Gtk, or wxRuby. That, to me, is the best news of all.
Okay i give you my impression (based on an older 1.1.X version)
Ruby-FLTK is good and easy to use for In-House applications.
This is where people want something that is working and they want it
as fast as possible. Most of them are (very) small applications - i
mean logic not the dataset.
If you want to deliver to clients FLTK is often no good option and it
is absolutely not good for mass market applications:
- No Tab movement and bad accelerator key handling.
Making apps hard to use for Joe Average Poweruser.
- Ugly.
Yes it always had 16 different 3D looks, many colors. Nothing in the
video was new stuff for those who looked at the toolkit 5 years ago.
(i did it in 1999 and in 2002).
But adding more colors does not make applications more standard or
more beautiful (for those who don't need to conform to standards)
- Very Basic Widgets
For example the text widget. There is a good multicolumn widget for
DB Apps in FTLK. But thats all. This is one of the reason's why it
is so small.
- Very basic support for Fonts and Images.
You can only use 16(?) predefined fonts. Images are always keept in
RGB format in memory and BitBlit'ed to the drawing surface. Thats
all.
- No support for Drag and Drop.
- No I18N, no L10N
(the 2.0 CVS version has UTF-8)
- Very small development
So it's easy to run into bugs when you do non usual things and
improvements are very very slow. How long is 2.0 in the CVS, what
happened to the 1.1.X base in since 1999. Grab the source codes of
2 released versions and look at the diffs to see what i mean.
- Very unpowerfull callback system.
Only one callback per widget for all events.
- Impossible to customize.
Since the callback system is so weak it makes no sense to try to
customize the existing widgets to your needs. You must rewrite them.
- No layout manager.
Thats the reason for fluid. Yes, its hard to get a good compromise
between using layout managers and GUI builders.
As a said i think there are application areas where FLTK is not a bad
choise but because of this different domain range it is not in competition
to Toolkits like GTK, QT, FOX or WxWidgets which are General Purpose
Toolkits.
By the way, i don't know why the CinePack people decided to use FLTK.
Moving away from GTK seems to be a bad move for me.
Lothar,
Those are the exact misperceptions that led me to initially avoid FLTK. Some of it is simply pure FUD or no longer applicable and some of it is due to really awful screenshots of GUI done by people with no taste.
List of 3rd-Pary opensource widgets based on FLTK is at:
Links: By Category - Links - Fast Light Toolkit (FLTK)
For people that want extras not included in FLTK 1.1, they can use one of these fine FLTK-based projects which are very active:
FLU - FLTK Utility Widgets (v2.13 released few days ago)
http://www.osc.edu/~jbryan/FLU/
SPTK - Simply Powerful Toolkit (v2.2 released yesterday)
Database-aware and themed widgets with *logical layout control*
http://sptk.tts-sf.com/index.php
For an example of an entire GUI framework based on FLTK 1.1 see:
National Center for Biotechnology Info (NCBI)
FLTK-based GUI framework (released for all to use)
http://www.ncbi.nlm.nih.gov/books/bv.fcgi?rid=toolkit.chapter.ch_gui
To combat the pure FUD of FLTK not being active see these facts (and note the release dates of the latest FLU and FLTK):
FLTK 1.1.5rc2 (released July 27), with 1.1.5 expected on August 10 unless new critical bugs are discovered and confirmed.
FLTK 1.2 is currently active in CVS, release date is not announced yet but expected to be within a few months.
FLTK 2.0 is to FLTK 1.x what Ruby 2.0 is to Ruby 1.x. It is a big departure that won't be compatible. FLTK 2.0 is claimed to be usable right now but shouldn't be used in production because the API isn't frozen yet.
Logical layout manager - available in SPTK.
Different callback mechanisms - available in several projects if you don't like the one included with FLTK.
I18N - there's an I18N dialog box in FLUID but I haven't played with it--I'm guessing its there for a reason. But I did come across a screenshot of FLKT here with something like an elvish font here:
http://yaroslav-v.chat.ru/russian.html
Accelerator keys - I'll find out today. If this isn't in FLTK 1.1.5, then its probably provided by one of the above FLTK projects. If not, I'll look into using the keyup even on the window and share the code.
Callbacks - I like the simplicity/flexibility of the default callback mechanism but there are several alternative extensions to FLTK. If you don't like the default callback mechanism in FLTK 1.1, then you'll be able to find several different projects that do it differently--including one designed for massively parallel applications.
Ugly - only if you rely on screenshots done by people with no taste. This was what led me to avoid FLTK in the first place. I tried it out and changed my mind about this when I was able to create very polished-looking dialogs like I did with Delphi. Only minor issues:
- default greyish backgrounds (solved by typing in my preferred RGB value I grabbed from my Windows 2000 desktop properties).
- Fl_Chooser looks bad when clicked (solved by using flu_combobox from FLTK Utility Widgets 2.13 - aka FLU 2.13)
- Fl_Group doesn't look good so I use FLU_Simple_Group from FLU 2.13
DND - I saw examples of drag-n-drop. Perhaps it was provided by FLU or SPTK but its available.
I'm sure some will argue that they won't use the extended FLTK widgets or logical layout managers or alternative callback mechanisms unless they are included in the FLTK project itself. They're probably the same folks who use perl without taking advantage of anything in CPAN, or use Ruby without grabbing anything extra from RubyForge.
Also, you can believe the FUD put out about FLTK not being actively developed, or you can simply look at the FLTK CVS commit activity here (as well as noting the August 2004 release dates of FLU and SPTK, the two most popular widget sets for FLTK):
news://news.easysw.com/fltk.cvs