Now Fan has a core system library (FWT) which is dependent on something other than the JRE - in this case the SWT. There are four ways I think to handle this case:
Make you install the SWT yourself to use FWT
Bundle the Windows, OS X, and Linux-gtk SWT files into Fan's single distribution
Bundle the SWT, but create separate OS specific distributions on Fan
Pull the FWT out into a separate distribution
I'm going ax option 1 because that is the sort of torture I'd like to avoid inflicting on Fan users (especially since the SWT has native libraries to setup too).
Option 2 is the easiest to manage and use, its only downside is that each SWT version looks like about 2MB, so that is an extra 6MB in the distribution (which currently is only 6.5MB with documentation and source).
For now that my plan is option 2.
andyWed 18 Jun 2008
I agree option 1 is unacceptable. I also don't like option 3 as it adds unnecessary complexity to distribution. So I vote 2. If we had something like rubygems, 4 would be a more viable option as well.
JohnDGWed 18 Jun 2008
Reconsider using Swing instead of SWT? :-)
If that's not possible, then (2) or (4) are the best options, each with different ramifications.
heliumWed 18 Jun 2008
4 if it's easy enough to install otherwise 2.
tompalmerWed 18 Jun 2008
Agreed with 2 (or 4). I'm also not super against Swing. The main problem is that it takes major releases of Java to get important features (such as the upcoming WebKit integration). But I'm OK with SWT, too.
I think a binding to Swing in addition to SWT could be valuable, but I understand resources are limited.
JohnDGWed 18 Jun 2008
With the fate of Swing in the community's hands, and the far larger base of applications that use Swing (versus SWT), it makes more sense (to me) to base the library on Swing. It's already there, with every JRE, and guaranteed to be there in the future -- usually getting better with each generation (DirectX & OpenGL support, native widgets on Mac, etc.).
alexlamslWed 18 Jun 2008
I would like to see FWT utilising Swing as well. Both Swing and SWT have deficiencies on some particular platforms and perhaps theme settings, but with Swing there will be often be a more universal behaviour to fix / fall back to.
And if I were to distribute compiled Java applications from Fan, I would be relunctant to attach SWT, let alone platform-specific favours of it.
tompalmerThu 19 Jun 2008
Swing uses native system theming APIs on Windows and GTK+ these days, too. But last I've seen, its font rendering still isn't up to par. Fewer dependencies outside the JRE is nice, though. But then there's still that Eclipse issue, and it's still more popular than NetBeans, so far as I can tell. I think there are pros and cons.
On the less tricky side, I'm still glad for the WinForms implementation. My understanding is that Mono has a good implementation of that.
brianThu 19 Jun 2008
For the record - personally I strongly dislike Swing. It is the epitome of bloated, over abstracted, under powered Java APIs making the simplest things insanely painful to accomplish. Now that I've started working with SWT, I'm impressed at the elegance of its APIs. It has its warts like all practical solutions do, but I think Steve Northover has done an incredible job.
But the beauty of the FWT is that by design it is portable (and will be ported to the SWT and WinForms). So that keeps the door open for porting to Swing or WPF.
I'm making great progress on the FWT, I'll post a build next week.
alexlamslThu 19 Jun 2008
I use Swing extensively over SWT, although you might be surprised that I do concur with your general complaints about the former. (Think JTable - the horror, the horror...)
Yet ease of deployment plays a vital role in the desktop applications arena, and in that aspect Swing would certainly win over SWT. (Blame Sun?)
Anyway, I would like to give FWT on Swing a go when FWT stabilises - I hope there won't be too many impedence mismatches ;-)
brianThu 19 Jun 2008
Anyway, I would like to give FWT on Swing a go when FWT stabilises - I hope there won't be too many impedence mismatches ;-)
That would be great! It certainly can't hurt to have both ports.
JohnDGFri 20 Jun 2008
There is no doubt that Swing is horrible, but when designing a wrapper over a windowing library, that's not much of a concern (once the pain is over, you use the wrapper).
brian Wed 18 Jun 2008
Now Fan has a core system library (FWT) which is dependent on something other than the JRE - in this case the SWT. There are four ways I think to handle this case:
I'm going ax option 1 because that is the sort of torture I'd like to avoid inflicting on Fan users (especially since the SWT has native libraries to setup too).
Option 2 is the easiest to manage and use, its only downside is that each SWT version looks like about 2MB, so that is an extra 6MB in the distribution (which currently is only 6.5MB with documentation and source).
For now that my plan is option 2.
andy Wed 18 Jun 2008
I agree option 1 is unacceptable. I also don't like option 3 as it adds unnecessary complexity to distribution. So I vote 2. If we had something like rubygems, 4 would be a more viable option as well.
JohnDG Wed 18 Jun 2008
If that's not possible, then (2) or (4) are the best options, each with different ramifications.
helium Wed 18 Jun 2008
4 if it's easy enough to install otherwise 2.
tompalmer Wed 18 Jun 2008
Agreed with 2 (or 4). I'm also not super against Swing. The main problem is that it takes major releases of Java to get important features (such as the upcoming WebKit integration). But I'm OK with SWT, too.
I think a binding to Swing in addition to SWT could be valuable, but I understand resources are limited.
JohnDG Wed 18 Jun 2008
With the fate of Swing in the community's hands, and the far larger base of applications that use Swing (versus SWT), it makes more sense (to me) to base the library on Swing. It's already there, with every JRE, and guaranteed to be there in the future -- usually getting better with each generation (DirectX & OpenGL support, native widgets on Mac, etc.).
alexlamsl Wed 18 Jun 2008
I would like to see FWT utilising Swing as well. Both Swing and SWT have deficiencies on some particular platforms and perhaps theme settings, but with Swing there will be often be a more universal behaviour to fix / fall back to.
And if I were to distribute compiled Java applications from Fan, I would be relunctant to attach SWT, let alone platform-specific favours of it.
tompalmer Thu 19 Jun 2008
Swing uses native system theming APIs on Windows and GTK+ these days, too. But last I've seen, its font rendering still isn't up to par. Fewer dependencies outside the JRE is nice, though. But then there's still that Eclipse issue, and it's still more popular than NetBeans, so far as I can tell. I think there are pros and cons.
On the less tricky side, I'm still glad for the WinForms implementation. My understanding is that Mono has a good implementation of that.
brian Thu 19 Jun 2008
For the record - personally I strongly dislike Swing. It is the epitome of bloated, over abstracted, under powered Java APIs making the simplest things insanely painful to accomplish. Now that I've started working with SWT, I'm impressed at the elegance of its APIs. It has its warts like all practical solutions do, but I think Steve Northover has done an incredible job.
But the beauty of the FWT is that by design it is portable (and will be ported to the SWT and WinForms). So that keeps the door open for porting to Swing or WPF.
I'm making great progress on the FWT, I'll post a build next week.
alexlamsl Thu 19 Jun 2008
I use Swing extensively over SWT, although you might be surprised that I do concur with your general complaints about the former. (Think
JTable
- the horror, the horror...)Yet ease of deployment plays a vital role in the desktop applications arena, and in that aspect Swing would certainly win over SWT. (Blame Sun?)
Anyway, I would like to give FWT on Swing a go when FWT stabilises - I hope there won't be too many impedence mismatches ;-)
brian Thu 19 Jun 2008
That would be great! It certainly can't hurt to have both ports.
JohnDG Fri 20 Jun 2008
There is no doubt that Swing is horrible, but when designing a wrapper over a windowing library, that's not much of a concern (once the pain is over, you use the wrapper).