[sword-devel] Ideal SWORD Front-end? (cross-platform)

Jonathan Morgan jonmmorgan at gmail.com
Wed Oct 22 05:56:26 MST 2008

On Wed, Oct 22, 2008 at 4:03 PM, Nathan Youngman <junkmail at nathany.com> wrote:
> Just looking around the Wiki, and saw the entry for making a single
> cross-platform front-end.
> http://www.crosswire.org/wiki/index.php/Frontends:FeatureList

That's not really its purpose.  Its purpose was originally to list the
features that would be necessary to qualify an application as being a
full featured SWORD application.  It slowly grew from there to a
wish-list, and I don't believe in its current form it is practicable
for any application, since it focuses on features rather than user
goals and needs.

> It reminded me of Larosa Johnson's "The Ultimate Bible Software Application"
> blog posts back in March.
> 	http://blog.trailblazinministries.com/tech-stuff/
> Briefly, he discusses a single cross-platform net-connected application with
> YouVersion like features, and later talks about open source and Sword.
> Interesting that he's discussing something better, considering he builds
> modules for WORDsearch, which came out on top for Windows Bible software for
> the layman.
> 	http://www.fostertribe.org/biblesoftware.html
> ~
> Functionality-wise, I can't see there every being one Bible app "to rule
> them all." Different apps target different audiences.

Agreed.  However, I feel the closer you can get to that ideal the
better.  I certainly don't want to have part of my data stored with
application A and part with application B, because they are typically
not interoperable and it's just inconvenient.  Then again, an
application that can store all of my data and what-not will typically
not be a good bet for someone just wanting to read the Bible, though I
would argue that the two should not be incompatible.

> Having one really good cross-platform app would be good, but he
> cross-platform aspect seems particularly challenging. Cross-platform GUIs
> always require some sacrifice.
> Cross-platform toolkits that use native widgets still don't necessarily
> "feel" quite right... at least to aesthetic Mac heads like me. Maybe because
> they tend to use Carbon rather than Cocoa, avoiding Objective-C's runtime
> message dispatching, but missing out on 64-bit goodness as Apple moves
> further towards Cocoa.

Agreed, but it is still a compromise.  If you want to have the
application and functionality available, developer time is generally
limited.  Cross-platform toolkits do at least allow us to make our
work available to more than one platform, even if it is not ideal on
every platform.  Time spent on looking native in one operating system
could be used to add more valuable functionality, and it is very hard
to decide where your priorities should lie.  I could write a very long
list of what is needed in Bible applications (much more extensive than
the ideal feature list you link to, including quite a few ideas well
outside the standard space explored by existing Sword applications and
possibly even commercial applications).  Unfortunately, I'm lucky at
this time to get three hours a week to work on them, and that means
that things like the BPBible 0.4 release are being blocked until I
find time to complete half implemented functionality for my tagging

> Some of the tools that use native widgets:
> WxWdigets (BPBible)
> Lazarus (Pascal with a component library)
> RealBasic (commercial)
> Runtime Revolution (commercial, interpreted)
> SWT (Eclipse)
> Some UIs use skins instead, but try to match the look with the OS:
> Java Swing
> Mono 2.0 Windows.Forms 2.0
> Others go their own way:
> Adobe Flex

One that you have missed that the BPBible developers are seriously
considering is XUL.  This is the platform used by Mozilla, so
applications like Firefox and its extensions are written using XUL.
This certainly makes it cross platform, though I'm not going to
comment on how much it feels like it is cross-platform.  This gives
you the advantage of a good, solid HTML renderer and a reasonably well
tested cross platform environment.  There are many potential
disadvantages that we will have to evaluate carefully, but both
wxPython and PyQt are quite annoying to work with in a few different
ways (and I've had to work with both of them), and I would expect a
good XUL based platform to work better.

> How does one make a single app that really "feels" at home on anything from
> Leopard, Ubuntu, XP, or Vista?
> Is it possible?

Don't believe it is possible.  There are fundamentally some concepts
that are different.  Some significant parts would probably have to be
written in very platform specific ways.  Even if this is possible (and
not all cross-platform toolkits make it possible), it is likely that
it would not stay perfect, because otherwise every UI change made
would have to be vetted on every platform to see if it made sense for
all of them.

Imagine things like "the style of messages and level of detail is
different between Mac and Windows" (I don't know that this is the
case, but it is a good hypothetical).  Unless you are going to have
two copies of every locale, one for Windows and one for Mac (and
maintain them), you are going to have to pick a message that feels a
little wrong for one or both.

That being the case, it is certainly possible to fit into different
platforms better than just accepting the default from your
cross-platform library, and I think it is important that things like
that be done where possible, while bearing in mind that all developer
time is limited.


More information about the sword-devel mailing list