[sword-devel] checking in

Troy A. Griffitts scribe at crosswire.org
Sun Jun 26 00:27:02 MST 2005

Hey guys.  Sorry I don't have time to respond to all the discussion 
going on, but I am happy that it is being discussed and pray for your 
ideas and work!

A few brief comments.
I think the
int VerseKey::getChapterMax()
int VerseKey::getVerseMax()
ideas are great.
I don't understand or like the name of BookNew()   :)  It's not 
camelCase, and I don't understand its need or purpose.

I don't think we should remove Testament (save renaming it to 
get/setTestament() when we do that PCR)
I realize the TreeVerseKey work might need an additional level:  $$$/Old 
Testament/Genesis/Chapter 1/Verse 1/
but I think that's ok.  Let a document put apocryphal books into the 
'testament' they choose.

I once reluctantly read an article about rewriting code from scratch.  
In the end I was convinced that it was in general a bad idea.  I wish I 
could point to the article and may dig it up, but his point that sticks 
in my mind goes something like: all developers are, by nature, designers 
and always look at code and think, what a mess, I could rewrite that 
faster than learn how that works.  Code that has been around a long time 
has gone through invaluable time of testing and fixing.  You may not 
understand why things are done as they are, because you don't know all 
the scenarios the code operates correctly under.  All the little tweaks 
for X to work while not breaking Y are expressed in the code, but not 
easily evident.  Rewriting code throws away all that knowledge and 

So, in conclusion: I always push back when someone wants to change this 
or that for not any pressing need, but rather for a 'better' design.  
The grass is always greener, and in another coded perspective there will 
exist just as many disadvantages, and unknowable difficulties.

Things are going great here!  We just left Ancient Corinth and I learned 
so much which directly impacts how I read Scripture!  We're having a 
Sabbath rest in Turkey before we explore sites here.  I was without 
internet last week, but don't know if I would have had the time to 
engage with current online events even if there had been access.

Excited about what Daniel is doing in the Great White North and all the 
talks about Windows developments, as well.  I will still be the first to 
admit that BibleCS stinks, in general, but with an HTML renderer and a 
toolbar, I don't think we are far from moving to the top of the free 
offerings of Bible software for Windows.  We have a demo idea which 
demonstrates custom window layouts, which is a little dated, but I still 
think a good idea.  I'm sure some old-timer can point to a binary on the 
server for those interested.

Being IDE independent on the Windows side is a valid concern, in 
principle, but choosing a windowing framework is as imposing.  
Practically, our windowing framework and IDE choice for BibleCS goes 
hand in hand and the tools are both free for opensource work.  And I 
don't like supporting the evil empire. :)

I really hope some of our other frontends become cross-platform.  I 
think that would be great.  I also wouldn't mind other Windows-specific 
projects with some other unusable framework like MFC, for example.  :)  
I think we still help eachother by pushing common code into the engine.  
I would like to develop collaboration even more in the coming years by 
adding a repository to the engine code tree where we can add code which 
uses the engine to perform useful tasks, but are specific and don't 
really belong in the core API.  For example: A class which gives all 
other translation decisions in a text for a given Greek word.  Or, a 
semantic domain class that uses a new sword module to either describe a 
given semantic domain for a verse reference, or return a ListKey of 
ranges for all occurances of a given semantic domain.  Maybe a class 
that calculates Greek word lemma occurances in a ListKey of ranges.  
Things like this will provide a toolbox for future research of 
documents.  Imagine the Biblical text being marked up, or even all of 
TLG, with semantic domains, and a student could click on a word in the 
Text and be presented with a count of occurances of that word in each of 
its semantic domains.  Does the word 'site' mean something different 
when doing Biblical archeology rather than browsing the internet?  There 
are a millions tools that could be developed for doing research like 
this, and these tools could be selectively exposed in all our frontends 
easily if there was a central place for them to exist.

Looking forward to the coming weeks, and to getting back to work with 
you all soon!  God is good and gracious to us!  What a great combination!


More information about the sword-devel mailing list