Letter to Geoff

Entirely agree

1 Like

If i were to direct geoff to read anything on here it might be

all of these end up revealing many things people LIKE about Xojo and their complaints about it

I truly hope he reads the letter and responds in a way that makes some, any, all of us feel a lot better about Xojo and where htings are headed


Hi Hal,

bulleted list.

1, android, why on earth waste all that time and money on a complete waste of resources.
who made the decision the its a good idea to enter a market that has fully matured in respect of available ways to produce code to support that market.
its almost impossible to make any money from android, since android was started no one on the forums seems too much bothered its not turned up.
dump android and fix bugs.
there has never ever been a sniff of an alpha version of this, I do not think any one cares, dump it in the bin, move on and fix some feckin bugs.
B4A is free, it does everything that one might imagine is required to make an app on android, granted its windows only IDE which is a real off putter, but its going to be very very significantly better than anything xojo will ever be able to offer in years to come (if it ever arrives).

2, API2, why, Xojo.core came along, it did not work(for the majority), so API2 came along, its a half baked solution to a problem that never existed, API1 is still there and could just be updated if so chosen.

3, event name changes, WHAT THE FECK!, it’s just the seemingly most stupid endeavour that might be planned. my ability to perform an expletive free comment has been exhausted, one of the most incoherent, ill thought out and universally panned ideas in the whole history of stupid (Xojo-real basic…) ideas, from the perspective of the humble xojo community paying for the development of said company.

4, iOS, well looking for positives… nope none exist, I know there are some very dedicated (handful? I don’t know) people who took the iOS ball and have run with it and do some superb work.
I tried, I expected it to be usable without any external plugins and be at least more than hello world without getting completely stopped by lack of built in functions.
B4i is WAYYYYYYY more functional, its less than 30% of the cost and is significantly more feature rich.

5, web2, really, api2 only, hope everyone gets on board, half baked solution, again, kill web1 at the same time, really how to kill a business and then jump up and down on the corpse, utter madness.

6 ,the forum, just who is in charge there, ban this person, block the other one, pretend the world outside xojoville does not exist, feck right off, people who are asked to be engaged by the company and wish them to be involved in the community should rightly expect a modicum of negative response to some attributes of their product and behaviour as a cultured community.
but to ban and discriminate totally and completely against any one who has any singular comment or idea that is not within the party line is utterly counter productive in so many ways. it appears suicidal to me the path xojo is taking currently.

7, as a businessman and a user of xojo for some considerable time it saddens me enormously that this company is making decisions that are obviously negatively impacting on the future of the company and seemingly opposing the axiom relating to a company leader doing everything possible to provide its shareholders with a reasonable chance of profit.
I am predicting that the current situation will be the company downfall and that there is only one person who is responsible, may seem harsh to some, but lets see if its going to happen in the next 2 years.

just a few things off the top of my head, I have to admit I am not expecting xojo to be about much longer while pursuing the current course.
many users are now learning to use other tools.
if they are like me they are secretly hoping that this year there will be a big turn around and things will get sorted out.
but knowing that’s not happening, its time to learn another language or 2, and when that’s done whatever xojo does will not matter, for me its a year from now, my licence ends in December.
I have had nothing at all useful updated to xojo in that year, just an 8 month wait for 2020r1 which is a useless release for me, 699 dollars wasted in a pointless xojo wormhole.


If my comments are of any interest.

  1. API 2.0 continues to slow down usage of the product. I build a lot of components for apps as new projects (after linking in my App Kit). If these smaller projects are created in 2019.x they ONLY auto-complete API 2.0. An option to re-enable API 1.0 Auto-complete would alleviate this frustration. feedback://showreport?report_id=57885

  2. Since API 2.0, none of my feedback cases appear to have gotten any traction. Some have been incorrectly closed, with the engineer claiming on one case “that it works internally”, but claims to understand that it is unusable when deploying apps to customers.

  3. I want an assured way of knowing that when I pay Xojo 100s of dollars (or 1000s of dollars) that some of the things that matter to me will be resolved in a reasonable time frame.

  4. I want to improve Xojo not only for my own use, but also for every one’s use.
    In particular take case feedback://showreport?report_id=30959, if this had been implemented, I could actually solve case feedback://showreport?report_id=61413 on my own, or in the case where a customer wanted to prevent his customers from creating new folders. I could even provide the ability for Xojo customers to customize the options in the save panel.

Same can be said for case feedback://showreport?report_id=60707, if it was implemented, I could also enable additional functionality that’s already present in the underlying OS object, but not exposed by Xojo.

Or case feedback://showreport?report_id=61125 where I am asking for information that will benefit Xojo’s own customers when they code sign their console applications.


Many of mine have been covered above. Some others are:

  • Fix bugs. I’m sure anyone that’s done any significant development in Xojo has run into bugs that have lingered on for YEARS. Stop working on new features and fix the damn bugs! This includes bugs in the IDE and bugs in the frameworks
  • Switch to modern Windows UI & framework - only after bullet 1 is completed
  • Design a much better debugger - easier to navigate amongst the variables (maybe popovers on them directly in your code, ala VS), watchpoints, run until value reached, etc.

I’ve always said that basic functionality needs to be rock solid.

With that being said I would like to point to the thread about Autodiscovery being unusable.

As for the letter:

The core product has to be good. Many companies that neglected their core strengths and went after “new markets” went under - so Xojo neglecting desktop like this is hard to understand.

In my opinion Geoff decided to take a page out of Apple’s book. “Forget about the Pro’s - go after the consumer mass market”. But what he failed to realise was that Apple prepared that move diligently. Steve Jobs came in and put MacOS on a stabil footing: MacOS X has Unix underneath. Then all the übergeeks that learned and loved Linux, earned their money with Windows (but hated it), and didn’t even look at that Mac “toy computer” were running around with Apple’s PowerBooks. [I realised that Apple was onto a winner and wanted to buy shares back then at USD8 but my government insisted on me repaying my student loan instead - those shares would now be worth over 76 Million UD$]. That had a trickle down effect - those geeks started recommending Macs … and the rest is History as they say.

Without Steve Jobs Apple has lost its way a bit under Ivy, and the Pros were leaving, but it seems they are now getting back into it. Because the Mac is an integral part of the platform experience.

Xojo is trying to go after the consumer market without having laid the ground work - as a shortcut they tried to distance themselves from the “bad” BASIC moniker and renamed themselves. But with the Pro’s giving Xojo bad reviews left, right, and center, will consumers be willing to shell out money … especially when other products start approaching Xojo’s ease of use (I just love Swift) and are free to boot, with better job and long-term prospects?

Or as Bob said: What is good for the Pro, is good for the “Citizen Developer”.

And that is where Xojo’s strategy falls down.

If Xojo is just for “home use”, has a bad reputation among Pros, and costs a lot of money (not for Pro’s but according to everyone else) - then why not use B4 or Python or Swift or Go or whatever instead? Where users rave about it, Pros recommend it, and people flock to it?

If Xojo had done its homework and was a mature and stable development system that Pro’s rave about - then it would have a chance and a much larger user base. But they made the capital error of not just neglecting the most influential user group, but actively driving them out.

I’m pretty good at spotting long term trends and predicting long-term consequences. Watching their “strategy” unfold hurts, because it has more holes than a Swiss cheese …


I’m actually surprised he didn’t just offer you an MVP status. Seems to have worked in the past to stop people from being critical… :grinning:

Reading the forums, I wouldn’t think it is that hard to figure out the reasons, but here is my list with some imaginary percentages until a real poll exists. Maybe they can give an indication on how much time to spend on each of them. @HalGumbert feel free to adjust them as you see fit.

I haven’t much hope either it will help putting Xojo back to the right track and that this may just be another attempt Xojo makes to take the heat of things (temporarily). Geoff should try to be gracious in defeat and simply admit they have made a lot of bad decisions in the last decade. Forgiven, but now (finally) get a grip of yourself again! The plebs are getting tired, and the rumblings among them are getting louder and louder…

So without further ado, here we go:

  1. Fix the bugs (70%): For Xojo, having bugs became the new ‘normal’. It isn’t. The phrase ‘every tool has that’ came up way to much. They don’t. At least not in the amount and duration before a fix comes out compared to Xojo. Stop reinventing the wheel and build on giants. You aren’t the sole cross platform maker anymore and a lot of people out there have really smart ideas too. Use them, expand on them. B4X is a prime example of using this system.

  2. Make Desktop your priority again (15%): Windows and Linux need a lot of love. I know you are primarily Mac oriented, but you do have a big chunk of users who want to develop on/for Windows and Linux. Start thinking globally, where not everyone (unlike America?) uses Mac/iOS. Programmers need to be able to rely on their IDE. It must be swift and rock solid. It is enough we have to deal with our own bugs, let alone the underlying ones of your tool (see #1)

  3. Web (10%): Again, stop trying to write everything yourself. Using jQuery (although there were a lot of better alternatives, but that is another discussion) and picking Bootstrap was a good first step. You should’ve searched the market and used a established server side engine. It would have been better. Example: B4X build its engine around Jetty and can easily handle a large multitude of users Xojo can. Hardly any bugs, because Jetty was build by a lot of experienced programmers in such things. Not everyone is a specialist in everything. Use existing established engines and avoid a large number of bugs (see #1).

  4. iOS (5%): A gimmick in its current state. Feels like it was abandonware from the start. Relies way to much on 3th party providers to be usable for real-life production apps. A lot of better alternatives on the market. The mobile world is a completely different animal than you were used to and frankly, the company didn’t have the experience in-house to make this a success. The mix in frameworks/APIs didn’t help, as it broke down the promise: write once, compile many. Impossible to let this one go, I know, but don’t bet the company on it. There are more important things (see #1)

  5. Android (0%): just let it go. You missed the boat completely. If it is only to complete the circle to be able to make 'Hello world’s on all platforms, it is not worth the effort. Soon, another platform will pop up so make sure you keep a keen eye out for it and jump on that one from the very start. A serious waste of precious resources that could’ve been used elsewhere (see #1).

  6. Other (no percentage, should be done continuously): Embrace the pros and 3th party devs. They are the core of your business. Citizen Devs are probably easier to handle. But it is a temporary solution for a bigger problem you now have. Pros can make or break your tool. They elevate Xojo way more than you seem to realize. They bring expertise that (maybe due to the lack of resources) are missing in your programmers pool. This is not throwing a stone: programmers nowadays just can’t be experts in everything anymore. But use them, indulge them. It will avoid a lot of trouble and frustrations. They can help with a lot of things (see #1)

Finally, don’t try to play Apple: you are not them. You are a small company and still are after 22 years. Accept it and love it. It has a lot of advantages over being a mastodon. Return to your successful roots, desktop. And just as a small reminder, reread #1. It’s important.


At our university I am responsible for the support of four very complex software products we lincensed for doing research (aquiring and processing data). So I am in contact with both: users and the support teams of the software companies.
By far the most efficient measure to reduce user dissatisfaction (ranting, bad reviews etc.) ist to deliver a product that works as expected. If the users can’t do their jobs because of bugs they will get impatient and if you ignore them they also can get very angry. So the primary aim is: deliver a reliable product and fix bugs as soon as possible.
The software companies I am in contact with seem to know this fact very well. If we report a reproducible bug, they apologize for the inconvenience and tell us that the problem will be fixed in the next release. There is a new release roughly every month which brings almost exclusively bug fixes and little improvements. So you have to wait for a fix maximum a month. After they solved your problem, you will get an email where they ask you to give them feedback about how satisfied you are with their work (there is a link you can click to rate your satisfaction). Through the years, they got a lot of positive feedback from us. Both sides (the users, the software companies) seem very satisfied how this works.


A very simple win may be to stop banning people and rescind existing bans from the official forum for having a dissenting voice. Without the forum and the help and advice provided over the years in each of the forum iterations I don’t think I could have ever stuck with XOJO. To me the community is what sets it apart from other tools I have used, or did before the company decided to suppress alternate viewpoints in such a draconian fashion.

I now find myself, as do others clearly, in a position where we have to check two forums to keep in touch with the vast wealth and experience of long time professional XOJO users. Yes, they may have different views of the company and its direction but should not have been banned as a result. These actions takes away a valuable resource from new XOJO users. It simply makes no sense when critical friends are certainly worth keeping in touch with as most replies to this post appear to show.


I really would like to make my apps on Android as well. Currently, a kind of “Remote Desktop” app I made works elsewhere but on Android. Granted, it’s mainly for my own use, but I have an Android device I use everyday that I’d like to use for this purpose.
That’s just one case among others; Android with Xojo code would be nice, for me at least.

My personal Bullet list:

  1. Hire more Dev’s or make the Compiler Open Source (the IDE may remain Closed Source aswell any Services around)

  2. Drop Mobile Development (iOS and Android). To me it was more a wrapper than an real alternative. Swift and XCode is the standard, you cannot compete with.

  3. Focus on Desktop (Linux and Windows)! It’s still a fact, that the IDE is best run on a Mac, that’s a risk! (have I said, that I am using Linux more than Macs?)


For Android? Wouldn’t have expected this…

1 Like

Haha Did you swallow a clown today?
Of course regarding iOS (didn’t think I needed to mention this specifically)

It’s not that you needed to mention it, but you said “Drop Mobile Development (iOS and Android). Swift and XCode is the standard, you cannot compete with.”, which seemed to neglect an Android replacement.
I guess I could have swallowed a clown fish, yes…

I slept on it and I’m not going forward with emailing Geoff, but I will point him here.

After reading something Bob Keeney wrote about creating ARBD years ago to achieve the same result, I really think it’s not worth the effort to help Geoff.

Geoff has to want to fix the issues. I will point Geoff to this thread. :slight_smile:

1 Like

As a long-term “citizen dev” I’ll kick in my thoughts. (And I’m really starting to hate that term, but since it’s in general use here I’ll allow it.) I develop an open source application that I joined after it was already started in REALbasic and that got me into the product. I’ve branched out to do some utilities that help my coworkers and me do our jobs more efficiently.

My issues are duplicates to what is mentioned above, but since Geoff seems to want to target the group of which I am considered a member, perhaps he’ll understand that there’s a large overlap between the citizen dev and professional dev groups.

  • Fix the bugs! Even those of us who are not making money from programming in Xojo get frustrated over losing sometimes hours trying to track down a bug in our code only to find out something in the framework is broken. My primary application’s code originated in about 2002-2003 and is scattered with #ifs and comments about framework issues. I just hit an issue where an XmlNode method call that had been working for years suddenly flaked out after I changed something totally unrelated in another part of the code, not even in the same function. It’s a reported bug that’s been extant and unfixed for years.

  • Focus. The comments about iOS and Android are spot on. First off, I was never considering doing Xojo for iOS or Android anyway — the license cost was out of reach for someone who is self-funded. Even web, while interesting, isn’t on my radar because a desktop license is all I can justify, especially when I have to supplement it with the MBS and Einhugur plugins.

  • Release model. I can’t decide which I hate more, the model prior to “rapid release” or the one now. What I do know is that I feel like my investment in a license for 2020 has not been returned. There’s one feature — one — in 2020r1 that’s of value to me, and no bug fixes, and it comes nine months into my license term. I don’t want half-baked releases just because three or four months have gone by, but neither do I think bugfixes (especially) and features for the targets I pay for should be held up because another target is delaying a monolithic release.

Those are my big three. There are others, but I’m going to focus on what I think are the most important to me.


I’ll chip in my two cents here. I know that Geoff reads this forum so perhaps there is merit in this topic. I agree with most of the points already raised above but I’ll reiterate a few of them.

1. Pick a market and do it well

This has historically been desktop development and REAL Studio was a good tool for developing for desktop.

Stop diluting the product by targeting platforms that you can’t / won’t support properly. Xojo’s iOS offering is a prime example. It is a disgrace how much they charge for iOS development for a product that is basically a lemon. It is virtually impossible to create a meaningful iOS app with Xojo without resorting to endless declares and third party (commercial) solutions. Xojo is supposed to be approachable to beginners. I’ve been coding with Xojo / RB for 16 years and when I sat down to write a simple iOS app with my 8 year old daughter I did it in Swift because it was easier.

If Xojo is trying to be a “write once, deploy anywhere” tool then they have completely mis-fired. It is simply not possible to reuse code easily between desktop and iOS without countless #If TargetBlah.... It’s been six years and I still can’t use String on iOS for goodness sake.

I’m sure there are people who are interested in developing for Android but I couldn’t care less about it. As previously mentioned, Android users are known for spending less money on the platform than iOS users and making money from an Android app is really hard. Given the neglected state of iOS for Xojo, why on Earth are they spending precious engineering resources developing Android? That is manpower that would be far better spent either resuscitating iOS or (better yet) ditching it altogether to improve the core desktop product.

2. The IDE needs love

I always thought that the IDE was pretty good especially since it makes building and debugging an app straight forward but it has really fallen behind the competition over the last few years.

The autocomplete engine is awful compared to things like Visual Studio. Improving the autocomplete is not sexy or easy to market but it is expected to be good by all developers.

Here’s a few examples of pain points with the IDE:

  1. Namespaces / modules are broken. Good luck getting autocomplete to work on the method or property of a class within a module unless you declare it using it’s fully qualified name. This defeats the point of namespaces entirely.
  2. The addition of method and property descriptions was great but if they are more than a sentence in length you can’t read them as they appear in a panel at the bottom of the IDE and that panel is not resizable.
  3. Xojo needs to add support for method documentation. All major languages and IDEs have an equivalent. For example, in Xcode using Swift, you can use Markdown to annotate the method and its parameters and then if you hover over the method somewhere else in your code then you get a little popover describing the properties and return values. This makes it really nice for third party controls and external libraries.
  4. External references are broken. The IDE does not allow you to make external a module if it contains classes or modules. What the Hell is the point of them then? Externalising classes and modules is crucial to meaningful development as it allows them to be version controlled and utilised in other projects. Most modules that I create for Xojo have dozens of internal classes but I can’t make them external. This means I need to prefix or suffix every class with a cryptic acronym which just looks rubbish.
  5. The debugger needs improving. At the very least we need watchpoints for variables so we know when they are changed.

3. The language needs love

I like the Xojo language. I am fluent in C# and Java and so curly braces don’t frighten me but I prefer the BASIC-like syntax that Xojo provides. With that being said, there are some language features that Xojo lacks that make it really hard to (a) implement certain algorithms, (b) difficult to port code from other languages:

  1. Generics. Almost every other mainstream language supports the concept of generic variables. Variant just doesn’t cut it.
  2. Anonymous functions. It should be possible to pass functions to methods in a cleaner way than using a delegate. VB.NET has found a way - so can Xojo.

4. The framework needs fleshing out

I’m currently porting a physics engine to Xojo from Java. One thing that is slowing me down is that I am basically having to port the OpenJDK Math library because Xojo’s built-in maths functions are so limited. There are so many convenience functions in other runtime libraries (Java, .NET, etc) that Xojo is missing. We need fast ways to combine and slice arrays for example.

5. Geoff needs to be more tolerant

It is not OK to try to expunge paying people from your community because they make legitimate comments about the shortcomings of your product. Foul language, etc is not OK but constructive criticism needs to be allowed.


just checked: First apperance in Feedback 2008, 12 years ago…

Lets start with Console Apps… basically nothing there except input and stdout. To get screensize I need to trigger stty… should I mention ncurses?

1 Like

I agree that it is hard to make money selling an Android app…

But because of the hurdles of having to go through apple to distribute iOS apps, supporting only iOS for mobile kind of keeps Xojo “Citizen Developers” from doing mobile solutions even for work… (and managers love cheap solutions)

I may be wrong but I see that as the only reason to have an Android target as it seem few pros want it… That said I could do without it too.

For mt the most important as always been and will always be Xplatfram desktop - Mac and Windows and I want this to be both rock solid and have things behave the same way on each platform… the alter in particular is WHY I started with RB.

How URLConnection was handled, and how it does NOT abstract the platform differences is they type of issue is exactly opposite of what Xojo should be doing…

Not doing that type of work makes the product less attractive to both citizen developers AND Pros (though the Pros can more easily work around the issues)

I am speaking of thing more generally that just URL connection…

Also backwards compatibility is a big del to me… My employers has a lot of old machines…

API 2 makes supporting them difficult… It really did make a mess for long time users… For now I think we need an option to only autocomplete API 1 code and be able to set warning for API 2 code for projects that we have to ALSO compile on older versions for those machines even if we whale to use a few #if XojoVersion statements…

Not being able to do this will stop more that a few from updating their Xojo versions… It’s why even though I have a current license I am still using 2019R1.1 And likely will continue using only that. So why should I renew?



I have been a Pro customer for as long as there has been a Pro level. Xojo has relieved me of many thousands of dollars. Yes, I do make enough money out of my products and contracting to afford it, but it has irritated me that although I have been using it for two decades (99% desktop development), I still have to pay a bunch more money to Einhugur and Monkeybread for add-on functionality that should be part of the product by now.

Then came API 2.0.

Now I’m stuck with 2019r1.1, since there’s no ways I’m gonna convert probably a million lines of code. I don’t plan on throwing any more money at Xojo, unless I’m forced to because my apps no longer run on the latest OS from Apple or Microsoft. It looks like I will be forced to stick with Catalina to run the IDE, but it looks like compiled apps still run on Big Sur. If needs be, I guess I’ll pony up for the Desktop-only version.

Anyhoo, here’s a list of my gripes (mostly, if not all, reflected in others experiences above)…

  1. All the development options other than desktop/console seem to be pathetically undernourished. iOS is a joke. No-one cares about Android. Web 1.0 was a bear to get to run smoothly and lacked so many features that it was a joke. Web 2.0 appears to be (from user’s comments) a joke too, at least currently.

  2. Every release has (usually different) show-stopper bugs. I was forced to use CURLMBS since the previously-working HTTP widgets don’t work on HTTP 1.1, and the new URLConnection stuff doesn’t work cross-platform either. They might be fixed now, but my CURLMBS-based solution works fine across three platforms.

  3. After 20 years you’d expect to be able to run apps that use more than one hardware core or thread. I spend a LOT of time fiddling about trying to get multiple threads to stop causing UI issues. Yes, I know a string-and-sealing-wax solution has been pre-announced, but I’m not holding my breath.

  4. I believe Xojo is horribly under-manned, considering the number of platforms they support (and plan to support). That’s a good enough reason to stick with desktop only and improve the language and frameworks that support it. If I want to support, say, Mac and/or iOS only, I’d use (and I do) Apple’s amazing Swift language and SwiftUI cross-Apple-platform frameworks, which are supported by a huge development team, and it shows. Sadly (sic) I have to support multiple desktop platforms, and I see little or no (usable) progress there.