Hi Piet
I understand your pain. Recently I've had a call with Fabrice Chambon, one of the commercial directors at PCSoft explaining him why we're only still using WX on a maintenance scheme for existing solutions of ours and do/have done any new development in other technologies nowadays.
Here are the main points mentioned:
- The overall architecture and technology offered by WX is 'OLD' and is unable to target modern cloud based enterprise grade solutions (Clarifications to follow)
- The productivity gains may have been there (and still be there for classical Windows desktop style development) but are no longer there for any modern web based and mobile architectures.
I'm stepping in another tech organisation which builds everything cloud native (AWS + Azure) from the start using mainly
node.JS (this allows for using the same tech server side and client side). Their development team has a higher productivity than any seasoned WX developer can reach in building full stack modern architected solutions. On top of that they provide web based front-ends that not only run on their own but also plug in directly in Whatsapp, MS Teams (as Teams apps in Web and even Desktop mode), MS Outlook (Web + Desktop), Google Apps etc, all using the same technology simply jumping on another connector. On the server side this is a
serverless architecture which means you don't have any server instances running constantly but it simply scales automatically to the need based on the requests. All simply based on IAC (Infrastructure as Code).
- The one code/all platforms marketing cry from PCSoft is mostly just...marketing. I'll explain: One of our WX solutions has this architecture:
* Web Services backend
* Web Application Maintenance/Consulting backend
* AWP Web Pages for plugin purposes in other web apps
* Android mobile apps consuming the backend web services (Zebra devices)
We developed a common multi-platform OO foundation layer in WX and an OO server side web service based middleware in WX.
We bumped into multiple bugs (that hardly get resolved) especially for Android.
The main issue, is that Android targets a Java copy of the WX runtime that misses key features from the standard Windows based WX runtime. There is no indirection (there is with a tweak but officially it is not supported and it hardly reaches the possibilities of the Windows runtime), homonymic copies of classes and data sources etc that work perfectly in the standard runtime don't work on the Java based Android one (without any compiler error messages), OO behaviour that is different on the Java based Android WX runtime compared to the Windows one, queries as data sources that cannot be declared dynamically in the same way in common classes on Android as they can on the Windows runtime (they can but they cause an exception at runtime while the compiler says all is fine)... Having a complete different foundation tech for the runtime (Java WX runtime on Android) is at the basis of this one code/run everywhere farce that is mainly marketing. Last but not least, the Gradle tech for Android in the way that WM implements it with its own WX Java runtime isn't the way to go anymore. Modern multi-platform mobile apps are actually web apps that can access native features of the platform. Our node.js teams use
ionic which uses capacitator to get access to platform specific hardware features. Single code for all platforms...
- The limited user base/community and the franco-français focus making all the non French speaking second class citizens. If you compare this to other tech out there (like node.js) you have worldwide communities and millions of libraries that provide solutions for common design problems or common use cases that can be freely improved and adapted. Although it covers a lot of interop possibilities, the WX platform is actually as closed as Fort Knox and then we even haven't talked about the anachronism of the dongles... On that subject I had a discussion about five years ago with the commercial team at PCSoft where one of our customers had everything virtualised and we needed one full WX suite license for a team member in Asia that needed to be able to do WX development on a virtual machine in the outsourced European data center. It was clear that customer didn't want any physical logistics with dongles worldwide since that would be a return to the past. What if tomorrow someone in the US takes over the role from the Asia team member? The PCSoft solution: you buy a three user license (we only needed one but had to pay for three) network enabled dongle which you plug in the data centre to which the customer even didn't have access. They might as well laugh in my face but to me it showed me back than how retarded they actually were. They sell it as modern new tech, but it is everything except that even if I like the language as such very much.
- The awkward beast that WebDev is. The paradigm of WebDev on the front end may have been a valid one 15 years ago, aiming at desktop application developers to move over to the web and develop in a way they plus or minus know. However, nowadays this is no longer relevant. There are great full stack and front-end only developers that build great front-end apps using standard frameworks and technology that are far better than anything WebDev can produce. Not only is the WB front-end js browser side framework also as closed as Fort Knox (you cannot do introspection, extend it, etc...) it is a curious beast using a lot of non-standard stuff (like mixing WX styles with CSS styles etc...). And because it is not very standard, it doesn't allow you to create web apps that e.g. easily plug in into other apps like Whatsapp, Outlook, Teams, Google, etc... Modern apps can expose and can integrate easily into other solutions. Because of this standardisation on a lot of technological fronts, the era of best of breed applications is once again there...
- The lack of a professional support platform has always been a major issue with me at PCSoft. Also there, they still run things like an IT company 20 years ago did. What am I missing mostly?
Online knowledge base: there is no way to search through a knowledge base for existing confirmed issues, workarounds, best practices, etc...
How many people are creating the same sample projects and sending them to support for the same or a known issue? What a waste of time and effort for everyone (also PCSoft employees)...
Once a bug is confirmed or a feature is requested, it is like a big black hole... You'll never know what will be done with it, what the status is, if it will be planned for, discarded, what release it has been resolved etc... There is no way to follow-up online on your tickets and if you want to know what the status is you have to... make a new request...
Aside of that bugs take often an enormous amount of time to be resolved (I have to admit that most critical ones are handled with priority too) and some are still there for as long as I know without any resolution.
- The impossibility to plan for the future... Instead of a (even limited) public roadmap and an online accessible knowledge base with corrections and enhancements, there is the yearly "surprise !" with the 92x half baked new gadgets. This is also a model from the past that may work for a hardware device like a smartphone but no longer for a software development platform where things evolve at the speed of light. Moreover, you have to wait on average another one to two years until most of the new features are fully baked and really usable or have been ported to all platforms (if they ever will or even continue to evolve). A modern subscription based model (like Visual Studio) without dongles from the 80's with a public roadmap and continuous improvement makes more sense... Also here, their commercial model is an anachronism in the industry as well as the cheap chinese pollutive gadgets they throw at their customers. I'ld rather wish they spend that budget on fixing bugs that never get resolved otherwise.
- The instability of the IDE is also a major issue for me that PCSoft seems unable to resolve... When working in it (specially on WB projects), I think I hardly had a day without an IDE crash... On top of that many of us encountered regular loss of work in WX26 and WX27 until update 4. PCSoft claimed this was a hoax at first but finally had to admit it was a known issue. Well, to be honest: loosing work (sometimes hours of work) is simply unacceptable since the cost is enormous. I have seen it regularly in other tools in the 90's and probably early 00's, but never since in any of the other platforms I develop in. On top of that you really didn't even knew exactly what was lost because it could be code in multiple objects, quick changes here and there causing to have to redo all the thinking work... I found this simply unacceptable apart from the fact that it took more than a year to get solved by PCSoft.
I can go on for a while if you like…
As a seasoned geek using WX on the side since 1999 I still like quite some features and concepts of the WX language and platform… I’m just since many years no longer convinced that it is a professional development platform allowing to create modern platform-like and cloud based applications that match modern standards.
One should use it for what it is good at: small niche solutions that are likely to remain just that… I’ll probably continue using it here and there for that purpose. WX has its place but it doesn’t fit our vision of the application architectures of today and tomorrow. On top of that, the multi-platform claim works only for this type of small “build in three minutes gimmick” applications but not for anything that requires a flexible common foundation on which enterprise scale applications can be build. Our customer base consists mostly of global multinational companies and WX doesn’t match for anything that requires a large scale and a global scope really…
Just my two cents
Peter
Edited 2 time(s). Last edit at 09/21/2023 09:57AM by PeHoBe.