Re: Showstopper desktop runtime issue

Поиск
Список
Период
Сортировка
От Dave Page
Тема Re: Showstopper desktop runtime issue
Дата
Msg-id CA+OCxowzxOTwduJhVQwo6cxj=11uvmTNFSrkxdxG1hbkyfeQGg@mail.gmail.com
обсуждение исходный текст
Ответ на Re: Showstopper desktop runtime issue  (Magnus Hagander <magnus@hagander.net>)
Ответы Re: Showstopper desktop runtime issue  (Robert Eckhardt <reckhardt@pivotal.io>)
Re: Showstopper desktop runtime issue  (Dave Page <dpage@pgadmin.org>)
Re: Showstopper desktop runtime issue  (Magnus Hagander <magnus@hagander.net>)
Список pgadmin-hackers
Hi

On Thu, Mar 22, 2018 at 4:17 PM, Magnus Hagander <magnus@hagander.net> wrote:


On Thu, Mar 22, 2018 at 3:57 PM, Joao De Almeida Pereira <jdealmeidapereira@pivotal.io> wrote:
Hello Hackers,
Here is our take on the 3 options present:

This looks like a good summary, so I'm going to pick this one to comment on :)

:-)
 


 
1) QtWebkit and QtWebEngine 

Pros:
- Webkit is a mature technology that as been around for some time
- Apparently the Fork of Webkit we were using as been catching up
Cons:
- We are using a Fork
- It is to far behind of the today browsers and the competition keep evolving making it even harder for them to catch up
- Problems with the environment from the past, lagginess, lack of support


Yeah, this one hasn't exactly caused a "little" set of complaints so far. It might be workable for absolute stop-gap, but not beyond that.

Right.
 

 
2) Rework runtime to find a running PGAdmin and attach to it

Pros:
- We already made the big move from Webkit to this version
- Add smarts to the application to do not run itself if it is already running, or kill the currently running application 

Cons:
- More C++ code thrown around
- Add more dependency on our QT application
- Have specific code for Gnome, not even a OS version but a window manager


Annoying as it is, I think this is the least bad option at this point.


3) Electron

Pros:
- Full Javascript runtime, no more C++ code to handle
- Self packaging for all the environments
Cons:
- No fully supported on Linux based OS with old libstdc++, (This might solve the problem: https://github.com/mattermost/desktop/issues/312)


Losing support for things like RHEL6 would make it completely unworkable for several of my largest customers. Particularly in large enterprise organisations, this would be a very substantial issue.

That's good to know. There are clunky workarounds (shipping different libcs for example, but that potentially adds licensing issues).

Sidenote: It would only be an issue for desktop mode. Web mode should not be affected.
 

 
- CPU/RAM high utilization (Found a issues around and the majority of them have solutions like CSS animations running or settings on the created windows)

This does sound bad. But do we actually know if this is worse in Electron than it is in the option #2? I mean sure, we point to things like Slack, but that may not be because of electron, it may be because the app running inside it?

We don't know for sure, but we do know that Chrome in general is a bit of a hog. It's certainly not a stretch to think a combination of those things are why people (correctly) see browser based apps as being more resource hungry.
 

 
- Electron does not support tabs by default, only HTML tabs

I think that also makes it a showstopper. This was another one of the main complaints I have personally heard from people going from pgadmin3 -> pgadmin4, and enough to make people not want to use it at all. It would be really bad to go back to that.

To clarify; it would mean no tabs, but not single window. That was already working in the PoC. In other words, helpfiles, the debugger and query tools could all be opened in new windows, just not tabs on the same window that could be docked and un-docked.

I suspect for most people that would be enough.
 



After combing through these options with some pros and cons  here are my thoughts:
1) This options was always cluncky from the beginning, the fact that we are working with a browser that is currently 26k commits behind Webkit:master is concerning. So I do not believe this is a viable option. As a personal opinion is we need to release fast, then we should go with what we have now and not go back to this option.

Yeah, that option definitely has no future long-term.

 
2) This option is not very appealing to me, because we would be pilling code into the QT portion of the application, that I hope we remove in the future, that currently is untested to solve a problem caused by a Window Manager......
I would be more in favor of creating a Application Indicator that would support 2 actions, Kill running pgAdmins and launch the browser to access them. There is a lot of interesting websites that talk about this, and how to develop. I had to download one to have a docker indicator..... But as I said in a previous thread, I believe that this should be a 3rd party application and not a first class citizen on pgAdmin, as the majority of the ones that I found are.

I can't comment on the specific ways to sort it out, but I think *basing* things in option 2 is by far the best option. If it's just an additional add-on that can be made a dependency of the packages it's not a huge problem (provided this add-on is available on the major platforms like rhel, ubuntu, debian of course)

It would just be a modified version of what we have. Instead of having an icon in the system tray, we'd probably have multiple Start Menu icons to replace the tray icon menu. They would have to signal a running instance to do something, or become a new instance and then do the something if nothing is running already.
 


 
3) Electron can to play, first when we though about removing QTWebkit, because it always packs a browser with it and also and there is a very big Open Source Community being it. It came back again when when we saw that we were ready to ditch the browser. (As a personal note I dislike applications that I install in my machine and pop browser open to do anything, this is a personal issue that I would like to see if it was shared by others that was why we decided to park Electron for a second time. Because if our users are ok with it there is no need to add extra complexity to the product)
The most interesting thing about the cons that I found in Electron there is an issue open for them and a bunch of different solutions to try to handle it, or even advises on how to handle it. This option also allow us to focus less on browser compatibility as the main target of our development will become Chromium which is the base of browsers like UC Browser, Vivaldi, Opera, Google Chrome.

Please don't ever give up browser independence for the *web* version of pgadmin. Don't be That Project (TM).

Not on my watch!
 

(And don't give up on proper tabs either, but I'm sure Electron might catch up in that eventually -- and the issue around RHEL6 will also go away eventually)

RHEL 6 is in support until 2024, though it's already halfway through the maintenance 2 phase. It's definitely going, but we really don't know how many folks might still be using it in production on systems they're updating and using pgAdmin on. That last bit is important; many folks will continue to run production servers on RHEL/CentOS 6 for years, but how many are using them for client-side stuff or actively updating things like pgAdmin on them? 


--
Dave Page
Blog: http://pgsnake.blogspot.com
Twitter: @pgsnake

EnterpriseDB UK: http://www.enterprisedb.com
The Enterprise PostgreSQL Company

В списке pgadmin-hackers по дате отправления:

Предыдущее
От: Magnus Hagander
Дата:
Сообщение: Re: Showstopper desktop runtime issue
Следующее
От: Robert Eckhardt
Дата:
Сообщение: Re: Showstopper desktop runtime issue