Bruno P. Kinoshita created JENA-1911:
----------------------------------------

             Summary: Update Fuseki 2 UI JS code
                 Key: JENA-1911
                 URL: https://issues.apache.org/jira/browse/JENA-1911
             Project: Apache Jena
          Issue Type: Improvement
          Components: Fuseki
    Affects Versions: Jena 3.15.0
            Reporter: Bruno P. Kinoshita
            Assignee: Bruno P. Kinoshita


The existing Jena Fuseki user interface uses Backbone.js, with extra libraries 
such as JQuery, Marionette.js. The JavaScript code pre-dates ES6, which is 
largely supported now.

This issue is a placeholder for discussion & work around updating the UI. Using 
ES6 in the code would be a great improvement.

But I also suggesting adopting a different framework. The most famous framework 
for JS UI is probably React, followed by Angular & Vue. I am using Vue.js at 
$work, so I am biased.

The reason we chose Vue.js at work is that the development team is using mainly 
Python, with background in Perl, C, and Shell. So out of the three, Vue.js was 
the simplest, as it didn't require TypeScript, special syntax, and the tools 
required to build an app with Vue are also quite simple.

One downside of this approach is the build of Apache Jena, which would require 
Node.js and a build tool like Yarn or NPM. But it also brings benefits such as:
 * We can write unit tests for the UI
 * We can write integration (e2e, end to end) tests with Cypress or Nightwatch 
(similar to Selenium, but simpler to run and maintain)
 * It will be easier to keep the code up to date, as tools like GitHub security 
bot are able to inspect package.json and look for outdated or libraries with 
CVE's
 * It will be easier to incorporate other libraries in the code, so that we can 
easily switch the JS code for the editor (for example), or add a new library to 
handle SPARQL, etc
 * It is now easier to find developers that know Vue, React, Angular, than 
Backbone (though that was the first framework I learned, and I really like it), 
so maybe we would get more contributors to help with Fuseki UI



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to