Sure, and a very nice .NET ecosystem too but the price you pay is more complexity, and a pastiche of libs, toolsets, frameworks and leaky (and often over-engineered) abstractions. For example I was asked to make some simple changes to a small administrative tool used to manage call routing in a sales org. In a sane world it would have involved a dozen lines of code via a call inserted into a processing loop. But because the vendor who provided the C# code base felt the need to tick off every box and buzzword, it was doing a very simple job using microservices, delegates, and whatnot so it ended up involving a hundred synchronized changes in two dozen files across four projects plus the learning curve to figure out where it all was buried and how it was supposed to be orchestrated. What should have taken me an hour took me two weeks of joyless slogging and while I was still hailed as a genius when it was done, it felt like an experience I never wanted to have again.
So yeah I can do that kind of work but anymore I just can’t get up in the morning and put my pants on if that is what my daily grind consists of. It’s the 21st friggin’ century, why are we still doing things in the most complex way possible? I’m not interested in being a network or security analyst, I want to focus on the problem and user domains not the details of how it’s delivered to the user.
In theory something leaning almost into what was once called the 4GL space, where the IDE and framework package everything up in one place and takes care of the irritating details for you, is what Xojo promises. To a lesser extent it’s what low/no code environments propose to deliver as well. I have yet to see it adequately (much less fully) realized though, by Xojo OR its competitors.
I’d like to be able to knock out interesting and useful web apps, preferably that don’t require special web servers or strange hacks – they should deploy in a standard, non-scary way for the benefit of sysadmins used to working with certain assumptions. I should be able to run rings around conventional approaches without a politically difficult “ask” or the need for special training or the triggering of corporate security audits.
Something like Xojo is just never going to either be accepted or able to slip under the radar in corporate environments so it’s relegated to use by ISVs and independent consultants who are willing to learn its peculiarities (and its stigmatized language), and to small companies who picked Xojo because the owner’s nephew liked it and now need help putting polish on things.
That’s a niche I could thrive in not far down the road here but if I’m limited to the currently mature and reliable parts of the Xojo ecosystem (desktop, console and maybe IOS) then that’s going to force me to use something else for the web and kind of defeats the purpose since, e.g., .NET already has decent desktop technologies. That “something else” in my case would likely be something like C# Blazor and then the problem is Xojo can’t even interop with that code unless I use COM (Windows only) or expose everything through web services with the attendant overhead and server expense.
To my mind job # 1 is for Xojo to get a grip on web 2.0 and make it really stable and easy to produce reasonably modern, performant and impressive web apps without a lot of fiddling outside the IDE. If they could actually pull that off without a lot of false starts and thrashing about with the vision, it would be fantastic.
I have to say that I feel a little bit bait-and-switched because the advertising claims web is just another target. Now I knew that was probably a little bit laced with BS, but still – if experienced Xojo users are saying putting up trivial test web apps are chock full of bugs and Web 1.0 is actually more stable, then why did I pony up for a Pro license? Well I did it because they cleverly bundled Console and services apps into that. In the end I sprung for it because of that, not because of the Web target, which is clearly experimental for the foreseeable future. And I suppose some idealistic and semi-naive desire to support the web target development.