The decision is also having a huge impact on future development and also affecting budgets, employees, strategy and even support effort.
During the last Months, I found several options and now have to decide the way to go next year. Sadly, every option is having it's pros and cons.
Stay with PB and use the XML Dialog (like today)
- Pro
- No changes
- Full control over all aspects
- Very small footprint of setup (~2MB)
- Con
- Users complain boring user interface
- Restrictions (like no header clicks in ListIconGadgets etc)
- Optical issues (DPI awareness is incomplete, layout engine is bad etc)
- A lot of platform dependent hacks (API calls) are needed
- Pro
- Many code can stay as it is
- Small footprint of setup (~3MB)
- Full control over all aspects
- Con
- PB WebGadget is not fully featured on all OS. Many API hacks are needed.
- Unsure about OS support. Some Linux Distros may lack the WebKit libs. No idea what Apple is doing.
- There might be future PB changes that stop this kind of usage.
- Pro
- Modern and DPI aware GUI and skins
- Created with GUI in mind, supporting extra GUI related stuff
- Con
- Medium footprint of setup (~8MB)
- No JavaScript support, TIScript is limited and not wide used
- Can not re-use many existing GUI libraries (JS)
- Needs a C++ wrapper to work with PB
- Sciter may be a target for attacks with no real control about
- Pro
- Full control over mostly all aspects
- Modern GUI with DPI awareness and full JavaScript support
- Huge function library (node.js) and big community
- Seems proven for serious development (Skype, Atom, Visual Studio Code and many others)
- Con
- Existing PB code only usable as DLL/SO/DYLIB which makes it hard to debug and develop in two worlds
- Huge footprint of Setup (~45MB)
- Electron and node.js may be a target for attacks with no real control about
- Pro
- New code always may fix all failures and bad design decisions from the past
- We can choose any other language (like GO, Rust, Python etc) with many Frameworks (Sciter, QT, GTK, wxWidgets etc)
- Con
- No re-using of existing PB code
- Need to learn a new language and get comfortable with it
- Will need a lot of time to re-create all products
So, do you have any additional input that might affect my decision?