Jump to content

Why not make source code available?


brazyl

Recommended Posts

All the options for running Accordance on Linux (indirectly, on a VM or using Wine) seem like terrible options.  Let me suggest a better one: make the Accordance source code available and allow licensed users to compile it for Linux:

 

Benefits to Accordance (the company):

  • users would find bugs in the source code (rather than just reporting behavior) and thus help raise the quality of the software for everyone
  • this could dramatically improve the relationship between users and Accordance, going a long way to restoring good will that has recently been damaged

Benefits to users:

  • better software
  • software that runs on more platforms
  • a closer working relationship between users and Accordance (assuming you're willing to let your programmers interact, e.g. on GitHub, with users who are trying to resolve bugs or get features working on a platform like Linux)

 

Expected Objections:

  1. "We can't charge for software if the source code is available."   Actually that's a widespread misconception.  You can, and many companies do charge for software while posting the source code on GitHub.  Not a majority, but when Oaksoft was a young company it was definitely forward-thinking and willing to take risks (like not writing software for Windows, for example).  Expanding into the Windows market later was a good move, but focusing on making the best possible software on the only platform that made such quality possible was also the right move at the time, in my opinion.  Why not continue to be forward-thinking and ignore "the way it's always been done", like in the early days?
  2. "We use certain libraries that are licensed from third parties which we can't include in an open source version."  Okay, fair enough.  You can use feature flags to control which features are turned on, and hide the features which depend on those libraries behind feature flags which must be off for the open source version to compile.
  3. "We have certain key features that we don't want our competitors to be able to copy."  Okay, the feature flag solution works for this too.  The open source version could be missing certain features, just as your mobile versions are missing key features.
  4. "Some parts simply won't compile on Linux."  Yes, I expect there will be obstacles, but it's very possible that someone will be able to overcome those obstacles.

 

  • Like 3
Link to comment
Share on other sites

At the moment, we wouldn't be able to do this. We wouldn't want to hand over all our trade secrets. :-) 

  • Thanks 1
Link to comment
Share on other sites

As someone who has worked is software for 30 years in a wide variety of business domains, I can't imagine any reasoned software company ever doing this — unless you wanted to go out of business.   Also, while I'm sure you can find a unicorn to satisfy this statement, I can't name any company that has ever been successful by doing something like this that wasn't making money in hardware or selling services.   

 

Because I like Accordance and want it to be profitable enough to pay the salaries of its staff so it can continue to survive — one vote in support of not open sourcing your code.

  • Like 6
Link to comment
Share on other sites

I do think an API into Accordance would be great. I could build my own library manager :)

 

Obviously Accordance would control what they make available so I see no down side.

 

Python would be my preferred language for using the API because it is easily shared with others via say GitHub, and is an easily readable syntax for people new to programming.

  • Like 2
Link to comment
Share on other sites

Since a licensed API is different from one simply handing over one's source code, what are some areas in which you would benefit from some form of API?

 

I've had a lot of experience with APIs in my weather job. It's one of the primary ways to pump weather data around. 

Link to comment
Share on other sites

Not saying we'd do an API, but I'll at least give you a chance to brainstorm and provide some feedback!

Link to comment
Share on other sites

I believe that it's reasonable to employ multiple APIs if necessary to protect and restrict content for copyright protection or to safeguard intellectual property related to Accordance.
 

Areas That Could Benefit from AI or API

  1. Search Functionality: When I use the Research dropdown, the large volume of results returned is overwhelming. This is an excellent opportunity for AI or API implementation. With this, I can code my search context or use Langchain to write search compatible logic for Accordance, hence narrowing down the results.

  2. Navigation: Navigating through the Menu, especially with numerous Texts and Tools, is quite tiresome. Workspaces and Groups alone aren't sufficient for this task. Either an exportable and re-importable library (beyond just citations) or the implementation of AI or API could make navigating my purchased items more user-friendly.

  3. Word or Verse Searching: The search logic for Words or Verses feels inconsistent at times. AI or API access could greatly improve this process.

These are my top three desires, all search-related. I believe features like instant details are quite beneficial.

 

Areas That Could Benefit Specifically from API

  1. Export and Import: An API would allow for exporting "My Stuff" content along with citations, etc., and conversely, importing content into Accordance's expected formats.

  2. Workspace Manipulation: API could be utilized for manipulating and configuring Workspaces. At times, accomplishing what I want can be done via a list instead of the existing methods, which can be awkward.

  3. Preferences Configuration: Configuring preferences via API, especially after upgrades, would be very useful.

Implementing API in these areas could also address some of the long-term issues I've been experiencing.

 

Some might suggest that I need to familiarize myself more with the intricacies of Accordance. While that's a fair point, I'd rather spend my time in Accordance studying and exploring the Word, instead of investing time in understanding a tool that could change. Besides, Accordance's user interface has obscure features that aren't always intuitive. In today's digital age, user experience expectations lean towards simplicity and intuitiveness. An improved search and navigation system, leveraging AI or API, could greatly contribute to making this expectation a reality.

 

  • Like 1
Link to comment
Share on other sites

Thanks for the feedback! Feel free to keep it coming!

Link to comment
Share on other sites

I'd suggest Accordance look into the OData (Open Data Protocol) for a way of standardizing and implementing best practices for building and consuming RESTful APIs.

 

I have previously implemented a few Power Automate jobs while organizing my library of purchases. I believe it would be more efficient to utilize an API instead of the current approach. While the methods I used worked adequately for a one-time task, they are not my preferred solution. For instance, the File Hash method served to capture file checksums upon initial download and allowed for change detection. The XML method facilitated the conversion of Accordance files into Excel for further post-processing, which was helpful when I was new to Accordance and facing difficulties in organizing my data. Nevertheless, I believe there could be a more elegant and user-friendly way to manage libraries if additional methods were made available to users.


Power Automate Flows:
Accordance TEXTS - GET Library MENU
Accordance TEXT - File HASH
Accordance TEXT - Module XML
Accordance TEXT - Modules GET
 

Accordance TOOLS - GET Library MENU
Accordance TOOLS - File HASH
Accordance TOOLS - Module XML
Accordance TOOLS - Modules GET

Edited by cweber
Link to comment
Share on other sites

We're still waiting for the implementation of features that were promised for version 14 last year. I can't remember the last time Accordance was updated for iOS, and Android development has all but died. I can guarantee you that the last thing the folks at Accordance are thinking about is how to enable Accordance to run well on Linux. 

Edited by Mark Allison
  • Like 5
Link to comment
Share on other sites

21 minutes ago, Donovan R. Palmer said:

I also love the Linux / FreeBSD movement.

 

Me too. If I could do all my work in Linux, I would. 

Link to comment
Share on other sites

28 minutes ago, Mark Allison said:

Me too. If I could do all my work in Linux, I would. 

 

I would as well. In the meantime, macOS is the closest next best thing for me.

Link to comment
Share on other sites

Some food for thought.

The Advantages of a Web-Based Application
As Accordance continue to innovate and enhance their application, consider a significant shift towards a web-based platform:

  •     Consistency: Web applications ensure a unified user experience across all devices and operating systems.
  •     Broad Accessibility: Any device with a browser can access web applications, eliminating compatibility issues.
  •     Instant Updates: Updates are rolled out seamlessly, ensuring all users are on the same version without any manual downloads.
  •     Future-Proofing: This approach aligns with the software development trend, preparing us for the future of computing.

 

The Role of APIs in the Application's Evolution
However, also recognize the value of the existing application supported OS versions. Here's why to consider APIs:

  •  Preserving User Preference: Existing applications have a substantial user base. APIs allow a gradual transition, preserving user comfort.
  •  Offline Capabilities: Native apps often excel in offline scenarios. APIs allow us to retain this advantage.
  •  Performance: Native apps can offer superior performance for intensive tasks, which APIs can leverage.
  •  Integration and Extension: APIs allow developers to create additional functionality and integrate with other services.
  •  Transition Strategy: APIs can enable a hybrid application approach, serving as a stepping stone towards a fully web-based application.
  •  User Empowerment: APIs can empower users to develop custom solutions to their problems, leading to faster fixes and reducing the load on the development team.
  •  Scripting and Automation: APIs allow for automation of processes, leading to productivity gains.
  •  Community Development: APIs can foster a community of users who create and share scripts and tools, leading to innovative uses of the application.
  •  Feedback Loop: APIs can help in discovering bugs or other issues, improving the quality of the software.
  •  Time to Market: APIs can significantly reduce the time to market for new features by allowing users to create their own solutions.
Edited by cweber
  • Like 1
Link to comment
Share on other sites

5 hours ago, cweber said:

The Advantages of a Web-Based Application

 

The disadvantages of a web-based application: It'll take YEARS to develop to the point that it's even close in functionality to the desktop-based app. As an example, Logos' web app has been in development for over 10 years (at least) and it still only has about 2/3s of the functionality of the desktop app.

Having said that, I'm really looking forward to the Accordance web app. 

Edited by Mark Allison
Link to comment
Share on other sites

Accordance is already web only at least for initial install with the corresponding issues

Link to comment
Share on other sites

I use Windows so I don't have a dog in this race, but I used to use Ubuntu Linux. A couple of software companies have made a Linux version of their software available without releasing their source code or making it open source.  That might be a good idea for Accordance since there really are no decent Bible software options on Linux (one of the reasons I came back to Windows).

Link to comment
Share on other sites

We won't eliminate our desktop and mobile apps, but I am looking forward to Accordance Cloud. Knowing I can access my Accordance library even if the most catestropic event occurs will be great.

Link to comment
Share on other sites

20 hours ago, Mark Allison said:

Logos' web app has been in development for over 10 years (at least)

That is not a reasonable timeframe, their team must have other priorities.

Link to comment
Share on other sites

2 hours ago, cweber said:

That is not a reasonable timeframe, their team must have other priorities.

 

If that's how long it took Logos, imagine how long it would take Accordance, which is less than 1/10 the size. 

  • Sad 1
Link to comment
Share on other sites

Getting back to APIs, I think we should remember that any kind of API is a power user feature, that could be very useful to some, but will probably not benefit most users. An exception would be if some user developed an external tool using an API (like the Accordance RegEx tool) that turned out to be popular. I can think of three things that could be called an API (besides the existing AppleScript functionality).

 

A Web API (REST)

Accordance Cloud obviously has an internal API that the Web app uses to communicate with the server. Some portion of this could be made available as a documented API accessible to authenticated users. It probably wouldn't make sense to make the whole internal API public, because some of it may be ad hoc to fill specific needs of the Web app. Making a part of the API public entails committing to some degree of stability in that part of the API.

 

The advantage to this kind of API is that it could be used anywhere Internet access is available, so it could be used to build specialized Web apps, mobile apps, research tools, etc. The disadvantage is that all the requests have to go over the Internet, which is slower than a local or in-process API, and the processing power for searches, etc. comes from OakTree's servers.

 

A plugin API ("macros")

Accordance could have a built-in cross-platform script interpreter. Lua is small and designed to be easy to embed, but there are other options. Scripts (a.k.a. macros) could be written in this scripting language and triggered by a menu item or a keyboard shortcut. This would let users write additional functionality for Accordance, limited only by the amount of functionality made accessible through the API. One example would be a much faster RegEx search, since it could fetch and filter verses in-process instead of through AppleScript. One I'd like to write is something that copies the selected text and an accord: link to the location in Markdown format, or as a citation suitable for use with pandoc. Another example would be an importer or exporter for user data files.

 

A headless Accordance

This would be a variant of Accordance that has no GUI, just a script interpreter for batch processing. It could either be a separate executable, or Accordance invoked with a command line switch like --batch. Something like this might be useful internally at OakTree for internal testing: run a bunch of searches and check that the results match expectations. It could be used as the AppleScript API is, but would not be limited to macOS. It could do what a REST API can, but with shorter response time. It would only be available on Desktop platforms. It could potentially be the processing engine behind a Linux Accordance GUI built by enthusiasts, since only the back end would have to be ported to Linux.

 

  • Like 1
Link to comment
Share on other sites

On 7/25/2023 at 7:18 AM, Mark Allison said:

 

The disadvantages of a web-based application: It'll take YEARS to develop to the point that it's even close in functionality to the desktop-based app. As an example, Logos' web app has been in development for over 10 years (at least) and it still only has about 2/3s of the functionality of the desktop app.

Having said that, I'm really looking forward to the Accordance web app. 

The other thing no one is thinking about is whether will we have the freedom for anything Christian on the web, as the world changes and religion is more hated it could be banned eventually.

  • Thanks 1
Link to comment
Share on other sites

1 hour ago, ReformedDoc said:

The other thing no one is thinking about is whether will we have the freedom for anything Christian on the web, as the world changes and religion is more hated it could be banned eventually.

 

We still will. I'll make sure of that.

Link to comment
Share on other sites

7 hours ago, jlm said:

I think we should remember that any kind of API is a power user feature

This is indeed a valid point. APIs have the potential to drive substantial progress through community adoption. However, it's worth considering that smaller companies might be less likely to provide an API, even if it could expedite progress, due to various reasons. For instance, they might be concerned about protecting their intellectual property and may not have the resources to accommodate free assistance, even if they appreciate the idea of open-sourcing. Each company's situation is unique, and there are various factors to take into account when making such decisions.

Link to comment
Share on other sites

4 hours ago, ReformedDoc said:

thinking about is whether will we have the freedom for anything Christian on the web

When considering the protection of the Bible and its related resources, including software applications developed by companies that may be operating contrary to modern societal rules and trends, it is natural for many of us to contemplate these challenges to our rights. In the context of software platforms, this raises an essential question: How can we safeguard our access to these valuable resources as the world around us seemingly moves away from the living word of the Bible?

 

In such situations, there are valuable lessons that can be gleaned from historical experiences in other countries that have faced similar challenges. For instance, how Christians in communist countries cope with restrictions on religious materials may offer valuable insights. Our own increasingly atheistic society leaning towards socialism presents its own unique set of challenges.

Perhaps this is a discussion that would be better suited for another forum thread, but let's focus on how exploring such a conversation could benefit Accordance.

Link to comment
Share on other sites

Interesting discussions about the APIs. For now, it likely would be rather low priority since we have some other larger stuff to tackle first, but I still appreciate any feedback on the subject. My other job involves working with APIs on a daily basis, so I'm familiar with them, and it's fun to explore what could be possible on this front in the future.

 

In terms of potential challenges to Christian's rights, I've done extensive research on how to host/power one's "technology stack" across companies who would be more than willing to host/power a Christian company's technology. There have been no issues with the current providers Accordance has been using, and I don't see any potential issues for the future. I do have a list of companies though who would welcome any business they could receive, so there are plenty of solid options out there.

Link to comment
Share on other sites

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now
×
×
  • Create New...