From CrossWire Bible Society
Jump to: navigation, search

Divide complexity to smaller parts for non-experts?

Obviously, there are very smart people doing the SWORD Project. I've coded a little and even with that a big learning curve is still perceived for SWORD. Is it possible to at least consider how the developersWiki or major SWORD code units might divide or simplify more?

Is some of the Open Application Programming Interface (API) Specification (OAS) possible to apply? The simple terms client server were observed in it instead of front/back end currently used. The client server model seems to put Modules in the server category, in contrast to both categories as currently observed in the developers wiki. The OAS had a concept for representational state transfer REST, which encourages that the server be a layered system. The SWORD Bible Tool ( is excellent, but the URLs did not demonstrate layering as partly discussed for level 3 of the RichardsonMaturityModel). The term "engine" is understood, but that term by itself does not predict layers. Layering might communicate the reasons for linking in a huge library (C/C++). If a huge library is included, a new non-expert thinking they will just learn SWORD in a given time-frame may find out about another training for the huge library later, and be discouraged.

Would more code divisions by 1) specification and 2) tool help make any parts smaller? For example, naming layers of code by World Wide Web Consortium (W3C) recommendation, European Computer Manufacturers Association (ECMA)/JavaScript, Internet Engineering Task Force (IETF), RFC, etc. If a SWORD program has many standards or commercial products mixed inside, a new person who never heard of these maybe confounded, especially if new terms have been created for the overall system. These divisions might also recognize choices between basic JavaScript or jQuery/AJAX. Maybe they could help figure out if there was any standardization between the C++ and Java engines?

This comment was not from the perspective of creating more work. The purpose was understanding the whole better in order to choose how to drop into one small project somewhere (non random entry). Psalm 19:7 (LSB).