Realistically, what could Xojo do to make you stay?

Great questions.

  1. I am relying on Xojo Engineers expertise to answer this question. This topic was likely discussed with a Windows OS professional. :slight_smile:

  2. Definitely no threads, as Xojo can’t handle threads. This was another Xojo work-around.

Here is a video of the Canvas issue. Notice the change in rate-of-colour when the mouse moves and when the mouse is stationary. But the lapsed time seems relatively constant.
XojoCanvasStudder_edit_0

Its skipping rounds for sure…

But aint that how the message loop works ? Invalidate…only marks it as dirty and if you mark it dirty 3 times does not mean you get 3 refreshes.

Am not sure if the new framework refresh is actually marking as dirty or force refreshing. But you might be able to force it by manually sending Message into the loop. (and then not mark as dirty message obviously)

But NOT ALWAYS
Just saying what they posted - incubator doesnt mean WILL be in the JDK eventually from what they wrote. It may - but it may stay in the incubator for a long period as “proposed functionality” and may never become “standard”

And nothing wrong with that as people who want to rely in “proposed” functionality can - this that dont can choose not to
It seems designed to make it possible to move proposed function out to the world for a wider review WITHOUT having to put them IN the JDK
not necessarily a bad thing

Nope, this is not how a message loop works. I had to implement a proper message loop that is unrelated to Xojo and did it with a C++ plugin. Essentially I had to rewrite all of the input and update events for Windows as this has been a bug in Xojo for a very long time, and it works perfectly fine. Here is a working example below. The graphics are completely smooth, no shuddering, stable at 60 fps, and can handle a heavy workload. It took me a while to develop the workarounds and the result is magnificent.

ProperOpenGL_edit_0

Xojo game loops and timers are riddled with issues, and I wrote an article at: Testing Xojo Game Loops. Although I tried very hard to make it work, Xojo’s implementation on Windows has too many errors and design issues, which is why I had to rewrite it from scratch.

Edit: Maybe I should say that this is not how a message loop works on Windows. It may very-well be a way a message loop works on Mac - Which is possibly the issue

4 Likes

There are many of them. Even B4X use the alpha releases to have user input and fix bugs and change a little the implementation before “it is to late”. Sometimes they even have Pre Alpha where the design can be changed with the opinion of experienced users.

Narcisit persons dont have errors. Being so stupid to release a version that was unusable, even when lots of users said it was not going to work and had to be recalled because obviously didnt worked… never happened.

So, the new controls were not just a patch to a terrible idea, they are band new controls to improve the old ones with (on the rush halfbaked) “new” functionality … :roll_eyes:

1 Like

99 cases of bugs on the wall, 99 cases in all,
Take one down, add a new feature,
103 cases of bugs on the wall!
-rinse & repeat-

4 Likes

For those who may not know, the above “lyric” is based on 99 Bottles of Beer.

If you have the patience, you can listen to an amusing rendition.

1 Like

I’m late to this party and have just skimmed the thread but I decided to spend some time getting familiar with Xojo this past summer because I cut my teeth on 4GLs like FoxBase / FoxPro and have never cared for the trend towards balkanizing code all over the place, using multiple languages and random tech stacks / frameworks. I have had a dream gig since 2008 (winding down over the next couple of years for various reasons including my desire to retire from full time work) but it has been mostly back-end services / console apps so my client-side skills have gone stale. I did a recent side gig to see how the other half lives and don’t like what I saw – the chronic over-engineering and tech churn, the prevalence of scrum, the constant M & A activity and constant change of direction and other forms of chaos and indecision that are even more rampant in corporate 'Murica than I recall. Xojo seemed to represent something of a return to a nice IDE with everything in one place and the most annoying aspects abstracted away in a decent framework so that I could focus on a kick-ass implementation. It also seemed to promise referrals which would be handy if I decide to continue doing some independent consulting work post-retirement.

What I have actually found is that it’s pretty mature on the desktop and console / service sides, especially if you stick to a single target; it is from what I can see just okay on the iOS side of things and Not Ready For Prime Time on the web side. And they are struggling with Android, the difficulty of which they have clearly underestimated. As to the referrals thing … I’m not getting the impression they are fielding that many requests. The one I noticed recently was just another consultant who wants to offload a client, which either means it’s a crap client or that they have better things to spend their time on, which is maybe something I should take on board myself.

So I’m using Xojo to build a fairly extensive desktop admin app for internal use managing a web API I’m planning to launch (the API is written in C#; I’d already been working on it for years). My original thought was to try to do a web version of the Xojo app once the desktop version is finished, as a learning / proof of concept exercise, but based on experiences reported by others with web, I doubt I will bother with that.

I’ve also reported a couple of bugs. Now I know how to report bugs, the basic expected / observed pattern, describing the Xojo / OS / DB versions in use, the resources and processor of the machine tested on, code samples. And I’m finding that the testers don’t read what I wrote, they ask questions that are already answered in my report, and then they want ME to build a sample app to repro the problem. This tells me that they are under-staffed. Also both of these bugs are languishing at the “reproduced” stage and from what I can see that could go on for years unless I want to be some kind of squeaky wheel, and probably not even then. This indicates the dev team is too small to keep up with bugs, and suggests the possibility that their process is generating too many bugs as well. They are falling into the same cynical calculus as M$FT but for different reasons: if the bug is small and doesn’t impact too many users, it’s not a priority. It is not seen as an embarrassment for a relatively simple to fix and obvious / blatant bug to remain unattended for an indefinite period. M$FT calls this “shipping is a feature too” and it has always chapped my hide. It would be okay if bugs left over from v x.1 were fixed at least in v x.2 but they, too, are fine with them dragging out. They even have the temerity to close them out after a time if few are clamoring for the fix but the reporting user. Xojo at least has the basic respect for users to leave reproduced bugs in place but it’s an empty gesture if they can’t devote the bandwidth to fix them. Even the recent “bug bash” was just aspirational and didn’t fix everything nominated.

So from this I conclude that M$FT lets bugs not be addressed for purely mercenary reasons and Xojo does it because they are unable to face the reality that they are biting off way more than they can properly chew.

So I’m kind of disappointed. To answer the OP, they would have to be way more responsive, engaged and assertive in squashing bugs, they would have to make credible progress on Android and Web, and would just generally need to up their game so they start getting some favorable writeups in the trade press so that the people championing the product are not so heavy on old-timers who can be accused of living in the past.

Sadly, for these things to happen they would have to have a significant (and risky) up-front investment of $$$ because the current user base is too small to support that kind of effort.

They make the argument that they have been around for ~25 years but this does not mean they will be around 25 years from now, or even 5 years from now. I am probably not hanging my touche out the window too far to do these internal apps in Xojo but I wonder if I will regret it before I hang up my spurs for good. Especially given the fatal bugs being reported in the latest MacOS beta. At some point it may just quit working or lock me into an unsupported OS.

The road to hell is paved with good intentions as they say. I think Xojo is at an inflection point whether they realize it or not. They have ambitious and interesting ideas and plans and some really nice tech to show for their efforts over the years (I love the comprehensiveness of the language and the speed of the running code) but in my judgment haven’t demonstrated the wherewithal to execute fully on these ideas they have committed to publicly. They have some hard realities to face and maybe some unpleasant triage to do. Maybe forget Android until they have the resources, for example. But they are in the middle of the Sunk Cost Fallacy on that one, and a step like that would be a tacit admission that they are drowning in work. Maybe stop supporting Raspberry Pi especially now that embedded Win-doze is more of a thing. Maybe freeze new features on desktop and really put most of their resources into Web, after a sober analysis of whether their current design is even workable.

I don’t claim to know for sure about the above but they are some of my thoughts.

7 Likes

Yes I think you are right, it probably was written for MacOS and some kind of wobbly adapter shoehorns it into Windows. Xojo appears to be a Mac-first sort of product, though this isn’t an advertising point or something.

A spot-on and well-written review of Xojo’s condition. Thank you @bgrommes and welcome to INN!

2 Likes

The is Need Someone to Take Over a Project - #3 by bkeeney
A person who used to do a LOT of consulting thats moved into a full time role and just doesnt have the time to do this client right

Just today I needed to do a drop-dead simple thing: create a dictionary with case-sensitive keys. I understand how delegates work. You pass a key comparison delegate to the constructor. But the docs are incorrect. They document the delegate as a sub when it is in fact a function that returns an integer, -1, 0 or 1 depending on the comparison. There is no example how to code the delegate. I eventually found a post from a couple of years ago where someone figured this out and it validate my educated guess that for my purposes (a dictionary where both the key and value are strings) I just needed a one-liner:

Return leftKey.StringValue.Compare(rightKey.StringValue,ComparisonType.CaseSensitive)

But I wasted a few minutes of head scratching and if I’d been a noob I would have wasted an hour or (more likely) just given up.

[rant]As an aside, why the bloody hell are case-insensitive string comparisons the default? I have never encountered this before and it is certainly not intuitive that “Bob” = “BOB” = “bOb” unless you expliticly WANT case insensitivity. Also since it’s the opposite of any language I’ve ever worked in, it’s just a cognitive dissonance problem for people learning the product.[/rant]

1 Like

OK I was probably assuming too much and I’m not saying I’d not check it out if I had the time myself right at the moment. It just didn’t look super promising.

I think mostly their devs use macOS as their day to day efforts so “Mac first” isn’t wrong

1 Like

I know Bob and I dont think its a “let me dump this project on you” kid of thing :slight_smile:

Thanks, that is very good to know. As I age, I tend to be less trusting rather than more. But at the same time, I would certainly check it out, however guardedly, lol. I DO want to state a positive: both here and at the Xojo forums, the community is very inclusive and helpful. It reminds me of the Fox community at its apex in the CompuServe days, which is a high compliment indeed.

We do try

Xojo might have you believe this forum is all Xojo Haters
Disappointed user and former users - sure

But if you come here and seek help folks will try their best to help you out

Opinions of Xojo tend to be unvarnished though
Something Xojo doesnt permit on their forum

2 Likes

Good example! A good and extensive documentation with good code samples is crucial for non-professional coders. Most time the bug sits in front of the computer, but Xojo has so many gaps and inaccuracies in the documentation that, in conjunction with the many bugs in the IDE, learning Xojo as a citizen developer is a disheartening experience. Meanwhile I moved on to Swift and find it easier to learn. It’s all about documentation and secondary literature and, yeah, less bugs.

Also I think originally they were filling a void on the Mac platform; it was an opportunity they exploited. That is no longer so wide open but it’s clear a lot of people are building apps to sell in Apple’s MacOs and IOS app stores and they have something of a toe-hold in that market. My office has been Mac-only for years now too, although via RDP most of my paying work is done on Windows Server. So it’s actually an advantage for my present purposes that they are a little more tested and vetted on MacOS.

If former users bother to post here it is only reflecting their hope and love for the product. Hatred is just disappointed love, after all :wink:

2 Likes