Giter VIP home page Giter VIP logo

Comments (5)

icarofonseca avatar icarofonseca commented on July 24, 2024 1

On the last point, the codebase has increased significantly in the last years and with the current trend, it will require increasing working time for maintenance, update, and support, leaving less time for research development itself, vide also section 7.5.2 in my thesis. There are two additional points on this topic which I did not write to the thesis because I thought they were too "meta" to merit mentioning:

  1. compatibilisation with an increasing codebase imposes artificial constraints to development of new applications. So for instance, instead of asking: "how to make a minimal web-app illustrating how problem A can be solved?", we need to ask: "how to make a web-app illustrating how problem A can be solved and which is also compatible with the existing Vessel.js codebase?". From my experience these constraints become quite burdensome as research transitions through different topics because the codebase needs to cater for conceptual ship design, offshore operations, digital twin, salt cave simulation, and still be made compatible into a single library.
  2. the high turnover of employees and students at academia makes it hard to sustain the knowledge necessary to maintain a large software project.

from vesseljs.

hmgaspar avatar hmgaspar commented on July 24, 2024 1

Totally agree, this need to be checked in the vessel.js 2.0 version, next year.

from vesseljs.

icarofonseca avatar icarofonseca commented on July 24, 2024

Based on these points, I recommend planning for a lighter and more agile approach to app development and maintenance in the context of this research. My suggestion is giving up on the ambition of developing a large library in the moulds of D3.js or Three.js in favour of building a collection of examples which do not necessarily share the same codebase or are compatible among each other, as in the "minimal app" mentioned above. Furthermore, scripts should be maintained or updated only as they become repeatedly useful to development of new examples. Scripts which have not been reused since first development do not merit maintenance or updating in my opinion.

from vesseljs.

ferrari212 avatar ferrari212 commented on July 24, 2024

Totally agree with your points @icarofonseca. One suggestion should be to separate what is used under the visualization and what is used in the simulation and analysis. In my opinion, vessel.js as a "minimal web-app" should be constrict to mount the data and the visualization of the ships. The simulation and analysis could set in another sister library that complement vessels.js.

from vesseljs.

ferrari212 avatar ferrari212 commented on July 24, 2024

@icarofonseca, about the examples migration as you defined in your third bullet point:

  • Once this is done, it is needed to define which examples and scripts will be migrated to the new module syntax, adjust the repo's folder structure, rewrite what is needed, and test each one.

I do not think the examples migration are going to require a huge effort, since we maintained the modular approach. In that sense we need to apply the <script type="module"> and assign the functions that are used in buttons to the windows object as shown bellow:

<button onclick="loadNewSpec()">Reload</button>
window.loadNewSpec = function loadNewSpec() {
var specReq = new XMLHttpRequest();
var fileName = dropList.options[dropList.selectedIndex].text;
console.log(fileName);
specReq.open("GET", "ship_specs/" + fileName, true);
specReq.addEventListener("load", function (event) {
var contents = event.target.response;
useFileData(contents);
});
specReq.send(null);

Look for the modifications I made in this commit. I will proceed with the task of migrating the simplest examples.

from vesseljs.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.