IDEMSInternational / R-Instat

A statistics software package powered by R
http://r-instat.org/
GNU General Public License v3.0
38 stars 103 forks source link

Major Changes to R-Instat? #5627

Open rdstern opened 4 years ago

rdstern commented 4 years ago

I need to prepare a pre-concept note for WMO so they can consider whether and how they might support R-Instat. This is primarily for its climatic work.

There are many aspects. In this issue I want to explore the possible major changes that might be undertaken, given sufficient funds. This would be to modernize the software, to enable it to run on various systems and not just Windows, (Linux, Mac) and including over the web and working towards either the software or various components becoming part of the Open CDMS that is also being discussed for the evolution path for Climsoft.

My starting point is @dannyparsons message to @isedwards as follows:

"If we want to get towards a more professional product but stay within .NET then we would need to move to WPF anyway. We found that the more professional looking and more flexible grid/spreadsheet controls and output window controls (for displaying and saving text, graphics and tables) in .NET are all available as WPF only. These are two of the big improvements we'd like to make.

So one possibility could be to stay with .NET, with .NET Core/5 as cross platform, but move to WPF. This may also require moving to C# if VB doesn't get the same required support in .NET Core/5. I think this only makes sense if the transition would be relatively painless and quick to implement, since there are more preferable long term options that you mention. The advantage might be that it gets us to a more professional cross platform solution quicker. The disadvantage is that effort could be spent on getting towards probably a better and more long term solution.

Is this a sensible intermediate step to consider before doing a more major rewrite of the front end. What do you think?"

I am going to assume this is a sensible route. In discussions with @volloholic I would like to break down this possible work. 1) Changing all the dialogues to WPF is a substantial task. If we decide to do this, then this work could proceed in parallel with improvements to the current version. 2) Would it be possible to change the Windows - particularly the Output Window, while keeping the dialogue controls as Winforms? So, is it possible to have intermediate stages - and particularly this one. That could be attractive given the possibly long time-scale we would need for all the dialogues. 3) Do we need a better grid control than reogrid? In the old Instat we used flexgrid from Component1 and that was great. It is quite expensive (I think $899, because you get it with many other controls. (I wonder if anything else is useful.) reogrid does work with wpf forms, but has some quirks? If we do move on, then there are other free and some cheaper alternatives. There is Megagrid at $299 from here. Or steema software has TeeGrid and their graphics was ok for the old Instat. And do we need one at all or could we use Microsoft's own datagridview control?

dannyparsons commented 4 years ago

There is a new statement from Microsoft stating that .NET 5 will support VB Windows Forms applications. This is good news as it had not been officially confirmed before now. However,

Future features of .NET Core that require language changes may not be supported in Visual Basic.

So it's clear that VB is not going to be treated as a first class citizen in .NET 5.

When this is available, it should be trivial to upgrade to .NET 5 so it should be a sensible short term solution to get the benefits of .NET 5 such as cross platform and bundled .NET Framework, but it probably won't be a good longer term option unless we move to C#.

isedwards commented 4 years ago

I'm happy for the technology choices to be made based on what is most suitable for the team, but it's also worth revisiting the question of whether you want other communities to collaborate in the future and what their choices and expectations may be.

This was discussed in the past in https://github.com/africanmathsinitiative/R-Instat/issues/3568#issuecomment-433903555

lloyddewit commented 4 years ago

The statement also confirmed that .Net5 VB will support WPF. I think this is the first time MS have confirmed this?

If R-Instat stays as a Windows desktop application then it can probably be developed for a few more years in VB. But VB support is in decline. Even now, most DotNet blog posts, tweets, tutorials, technical websites, job advertisements etc. are focused on C#. For some extra analysis of Microsoft's MS statement please see https://medium.com/young-coder/the-end-of-the-road-for-visual-basic-2fda0102f5da.

I agree with @dannyparsons that transitioning to C# could be the most painless option. But I don't yet understand how to meet @rdstern 's portability requirements. As @isedwards stated, there are many factors to consider for R-Instat's technology evolution.

isedwards commented 4 years ago

In the vision for future R-Instat development, phase 1 includes the task to Enhance climatic functionality: "This includes developing a comprehensive system for visualising climatic data at a national, regional and individual station level that includes tables, graphs and maps"

My worry is that, in the future, we will need a very comprehensive browser-based capability for interacting with the data using fully open-source solutions (e.g. DataTables, ChartJS and LeafletJS). This is planned in Phase 3: "R-Instat functionality could be made available to online users through a wider range of devices, including mobile and tablet, by making use of web technologies".

Is the intention to develop the interactive tables, charting and mapping capabilities twice in different technologies?