Hi! As I am one of the mobile users ;) - I would opt for option 1 .. Tidy up the room for a clean standard base where everything can base on. I am more the "let's make it sustainable" guy .. ;) I would like to see it more used on mobile devices - in comibination with the desktop and the cloud-git-storage this makes it really nice to use, look at and show others.
But as I am also a non-coder I'll be happy with everything. Just wanted to say that subsurface 5.0 would be my favourite. regards Werner On Fri, Jan 20, 2017 at 5:06 PM, Tomaz Canabrava <[email protected]> wrote: > Hello Crazy People, > > It's that time of the year again, where we should talk about new things to > implement for next versions. I already talked to dirk about one thing that's > been bothering me, but that needs a bit of background history first: > > === BACKGROUND HISTORY === > > Since I joined Subsurface a lot of time ago, the internet didn't really > existed and geocities was still a thing, the biggest social network of that > time was IRC and people used to think that computer virus could make people > sick. As you may know, Those where dark ages, and subsurface was written in > mainly in GTK back then because it was the language that the Finnish Guy > (tm) used to know and love. Since than I started a crazy hacking spree > (followed by Dirk, Robert, Anton, Deivide, and quite a few more) to port the > original GTK version to Qt, and We actually managed to do that in around six > months (adding a lot of new things, removing a lot of other things in the > process, that where brougth back to life a bit later) > > There are things that I'm really proud on how I ported Subsurface, Mainly > the profile is *much* more flexible than the old one was (the proof is that > Dirk and Robert keep adding things to it even tougth they always complain > that they don't know C++ or Qt), and there are things that I'm really not > proud on how I ported ( the MainTab, for instance, and the new Configuration > - but the configuration is a different story... ) > > Then Mobile came to Existence and this was mostly a curse because the > codebase for subsurface wasn't adapted at all for mobile, my port to Qt was > a "let's try to port this as fast as we can, and also let's keep this as C > as possible", but Qml doesn't understands C - it understands QObject > inheritance and Q_PROPERTIES, so a lot of boilerplate code was created (the > ObjectHelpers and *tons* of code for that) that basically duplicated the C > code in a C++/Qt way to feed the QML interface on the Mobile usecase. > > === Where we stand today === > > One option is to try to make next Subsurface the Subsurface 5: > > We have an *Awesome* dive log, and we can continue to develop that, or we > can do a step back and try to change the *bare minimum* on the core to > facilitate the integration on the Qml engine without code duplication, my > take on that would be to port the C-Structs to C++ Classes that inherit from > QObject (because we can fed those to QML), not messing with the algorithms > nor anything else that we don't need to touch - those should still be in C, > algougth compiled with a c++ compiler to have C++ linkage and we can call > their code from QML, while also using those parts on the Desktop version > reducing the amount of duplicated code. > > Other option is to try to make next Subsurface the Subsurface 4.7: > > Continue duplicating code for the Mobile version (that has a small userbase > but will probabbly gain an increase of usage over the years) and cleaning / > improving the Desktop version, changing things on the core as little as we > need. > > What you guys think? > I'm back on hacking, but I need directions, remember that I don't dive that > much. :) > > Tomaz > > _______________________________________________ > subsurface mailing list > [email protected] > http://lists.subsurface-divelog.org/cgi-bin/mailman/listinfo/subsurface > _______________________________________________ subsurface mailing list [email protected] http://lists.subsurface-divelog.org/cgi-bin/mailman/listinfo/subsurface
