I’m Tired

I’ve not been blogging very much lately.  This summer was very busy with a lot of traveling including a trip to France to join my son who was studying in Lyon.  We camped at several music festivals in Michigan and Kansas.  In August I started coaching a rookie FIRST FTC robotics team and that’s been challenging. (They are smart kids!).  Work-wise we’ve been pretty busy with a big consulting project that’s starting to wind down.

All of that aside, I’m just not excited about Xojo at the present time.  2019 R2 was a very good release until they added API 2.0 into it.  I can’t talk about beta program specifics, so I’ll leave it at that since it has a ton of IDE bug fixes and enhancements.  I was doing active development with the R2 alphas it was that good.

Unfortunately API 2.0 was added and despite months worth of beta testing and dozens of builds, it feels half-baked, buggy, and not ready for prime time.  It feels like it could have used another couple of months to gestate and be fully thought out before it was released to the masses.

The new events don’t really solve much of anything and in most cases just make life incredibly difficult for existing Xojo developers.  If the goal was clarity I’m not sure that going from Open to Opening, to name one case, really solves anything.  If anything, I could argue that Preparing or PreparingToOpen is more appropriate for what it really means.  To be sure, I’m arguing semantics but the semantics of an API are important.

The new events make it practically impossible to use R2 and still use older versions of Xojo.  I’m already getting support questions on when are we going to support API 2.0 for ARGen and Shorts.  The answer is I don’t know because it’s non-trivial to update their code bases to API 2.0 and still support API 1.0.  I feel like I’m caught between a rock and a hard place and I know I’m not the only 3rd party Xojo developer caught in this bind.

I also think that’s part of my problem.  I feel like Xojo has willfully ignored professional developers in favor of citizen developers.  API 2.0 does nothing for me and with the way events were changed (it seems like change for the sake of change), it actually harms my business.  

The upcoming Android platform does nothing for my business.  Sure, it’s a shiny new target and I’d love to kick the tires on it, but iOS is still using the now deprecated Xojo framework.  I know the goal is to have a single mobile project and have different build targets (like desktop does right now) but at this point I have no idea when that will happen.  Based on what was reported at the MBS conference last week, there is still significant work to be done on Android yet.  Then we still have to wait on an iOS update to get it to API 2.0.  Could that even happen by the end of 2020?  I’m not so sure.  Maybe.  But what gets put on hold during that time that I could use now?

Speaking of iOS it seems to be languishing on its own.  It’s been out for years and to do some pretty common iOS tasks you have to go through declares.  That’s not exactly a RAD environment.  I’ve done a commercial project with iOS and it was great to use my favorite language, but I was literally 15 minutes away from giving up on Xojo iOS.  It was only with some Herculean help from several forum members that I was able to get THE key feature to work at all.

Raspberry Pi is another target that’s been fun to play with.  I did an electric kiln controller with it and again it took going back and forth on the forums for several weeks to finally nail down some of the problems.  To be fair I had a bad thermocouple converter, but the fact that there were only a few people using it made it that much tougher.  The Do It Yourself (DIY) and Maker movement is huge and yet Xojo is barely making a dent in it (I’m basing this on the lack of traffic in the Raspberry Pi sub forum).

What I could use today is Web 2.0.  What I could use today is a desktop grid control, and a simple built-in Date picker.  What I know others need today is built-in PDF export and viewing.  It’s almost criminal how old the RegEx and XML libraries are.  I’m sure we could list dozens of things we could use today rather than six to twelve months from now.

Xojo built its business on being a really good cross-platform environment.  I still think it’s a really good desktop development tool – I could even argue it’s still the best cross-platform development tool out there.  Adding half-baked targets with such a small development staff helps neither the targets nor the development staff because despite what the company line is (on being adequately staff), each target *does* take time away from other projects.

I feel abused at worst, or at least unappreciated by Xojo.  I’ve devoted countless hours talking about the product, trying to get people excited about it, only to feel like I’ve been ignored by the company.  If I write a good review of a release they quickly spread the news, but if I’m remotely critical of a release it’s only silence.  Look for this one to not get promoted either.

Besides this blog, I only have one other way to get their attention – I can refuse to upgrade until they listen to what I *need* to run my business.  If they don’t give me what I need I will look for alternatives and switch to that product.  There are only a handful of Xojo old-timers around – and that should speak volumes.  Xojo is a development tool that you want to love but it’s hard to be ignored and still love the product.

I’m tired of feeling ignored.  What about you?

57 thoughts on “I’m Tired

  1. I am 100% in agreement… Xojo have made a huge error in judgement with API2.0, way worse than the previous “New Framework”

    • At least the New Framework you could ignore if you felt like it and there was no impact to your already working code in terms of moving up to newer version or back to older ones.
      API 2 doesn’t have that same degree of flexibility and thats a problem as Bob notes.

  2. Bob wrote:
    “I feel like Xojo has willfully ignored professional developers in favor of citizen developers. API 2.0 does nothing for me and with the way events were changed (it seems like change for the sake of change), it actually harms my business.”

    I would say it’s more like the willfully ignored ALL long time users… IMO strating and accelerating since about the change from RS to Xojo… They seem to have lost their way in terms of knowing what most of their customers need.

    What you may not realize is that many if not most “citizen developers” are doing some of the same thing you are doing for clients to help with work flow on their jobs producing solution that are used by others in their company and not just themselves… Most “citizen developers” are NOT mostly producing games, chat and checkbook balancing apps for their own use.

    That has ALWAYS been the case for me over the last 18+ years I have used the product. All the things you said you and others need, I need too. I have bought a few plugs to fill the gap fro specific projects, but as they don’t make me any money I really can’t keep that up…

    I am not really a 3rd party vendor though I do sell the Mergeable listbox subclass … I was considering doing an update to modernize it and along with that drop the price a good bit… That was until API 2.0 betas …

    Now that becomes a bigger job that is just not worth my time, as I would need to do it twice – one for API 1 and again for AP 2

    So I can related a bit to that pain as well. Overall it feels like Xojo has added very little functionality useful to me since the change to Xojo and that have spent a lot of time on things that don’y help me or actually get in the way of being productive…

    I have had a current license for most of the last 18 years… My current one runs out in mid February … Right now I’m seeing very little incentive to renew.

    • I would consider you a ‘Professional Developer’ even if you don’t. But feel free to substitute “Long-Term Developer” as opposite of whatever a citizen developer is.

  3. All I need of 2019r2 are the IDE improvements. But I can’t use it, since it’s not productive to work on a needs-to-be-API1-compatible project with it. All we need for a long time to make our existing products more stable and more up-to-date (Windows: HiDPI, Graphics Rendering/Memory, macOS: monospaced SystemFont, native looking Sidebar, Linux: Printing crashes) is still far away. And even if they would be available soon – read again the second sentence.
    You’ve nailed it even better. We seem to sail in a similar direction. Xojo needs to correct it’s course if they want to be of interest not only to citizen developers, or we’ll eventually drift apart somewhen.

  4. I feel like the year for this blog post could be any year out of the last 10+ and the sentiment would remain the same while the specific details would change. I think the business model and company composition are fundamentally incompatible with stable development practices; the company needs to generate “excitement” every few months to drive upgrade sales in order to stay solvent and that basically guarantees these sort of issues are a matter of “when” rather than “if”.

    • I’ve been around a long time. I remember having these discussions 15 years ago. The things I could use today are the same things I could have used then too. I finally got tired enough of reporting to write my own – same with an ORM tool. All of us have a list of “I could use this today” features that we’ve literally never been asked about.

      Instead all we get is shiny new targets that feel like marketing bullet points.

    • I‘ve predicted this when they started their „Rapid Release Model“, and to be fair it was a fairly obvious prediction to make. And yet every time I mention it people shout „but we LIKE getting features early!“. Is it so hard to understand that everything comes at a price? And „getting features early“ will result in perpetual beta quality.

      • Likewise.

        The rapid release model sounds nice on its face because you generally would assume it means rapid *quality* release model. But that can only happen if there are appropriate staffing levels to ensure quality features are released. Instead, you get a more literal rapid release model.

  5. Charging for iOS development in its current state is a little insulting. It hasn’t been touched significantly in years and it’s almost impossible to do anything useful on iOS with Xojo without resorting to declares. If you’re going to essentially be writing wrappers around objective-C code you may as well use Xcode and Swift at that point.

    I wish they had knuckled down on iOS instead of pushing ahead with android. What confidence do any of us have in android as a platform given how shoddily iOS has been maintained?

    If I only knew a bit more C/C++ and could wrap my head around UI frameworks I’d make my own cross platform tool. I have been seriously toying with the idea of writing something using Microsoft’s open source VB.NET compiler. I’m very comfortable with the front end stuff. I’d need help though if anyone is interested?

    • “If I only knew a bit more C/C++ and could wrap my head around UI frameworks I’d make my own cross platform tool. I have been seriously toying with the idea of writing something using Microsoft’s open source VB.NET compiler. I’m very comfortable with the front end stuff. I’d need help though if anyone is interested?”

      This is an interesting thought. I am going to look into this a little more. Maybe we should swap emails?

  6. I just wish they’d increase the number of engineering staff. The guys that work there are super smart and really hard working. My concern is that they just need extra hands on deck. We all want to see Xojo succeed. I’m sure I’m not the only one who would throw his hat in the ring to help.

    • I agree with you there, I’ve felt for a while that Xojo needs more dedicated platform staff to improve the product overall.

      My guess is that they’ve done their assessment and decided that the course of action that they’re taking is the best way for them to be profitable.

      I just feel really bummed out because I recently renewed, thinking that r2 would solve my Catalina issues. But API 2.0 has put me off, I don’t have the time to re-write vast chunks of my application to use it, so I just wasted my money (at a bad time for us to waste money). As it is, I’ve solved (almost all) my issues on Catalina.

      Because I’m so short of time at the moment, I don’t feel like I can afford to learn a different language either, if I had too, I would go with Objective-C, but I’m wondering how much longer Apple is going to support that, as they really favor Swift.

      Like Bob, I too am soo tired, so tired of Apple forcing me to update large chunks of my apps every year (or abandon them), and with Xojo’s doing the same. Makes me feel worse than I already do.

        • This is why we all love Xojo.

          If I was going to go all in on another platform I’d pick C#. Yes it’s curly braces but the tooling (Visual Studio) is very good. You can create cross platform desktop and mobile apps. The thing I hate about it is that the tools have a steep learning curve unlike Xojo. The language is actually really nice (no manual memory management for example).

      • Sometimes you have to spend money to make money. Xojo need to find the cash to employ at least two more engineers I think. I’m hoping that the reason they’re staying so lean is choice rather than necessity.

        Learn Swift over ObjC. It’s easier and is the way forwards for Apple’s platforms. It’s well supported on Linux too (not so much on Windows though).

  7. en mi opinión.. da la impresión de que xojo está siempre en estado beta. cosas que deberían ser super fácil y rápidas no lo son. creo que no es realmente un RAD.

  8. I am having a little bit of mixed feelings. As I denominated last week at the MBS Conference, half of the problems related to the introduction of API 2.0 are probably caused by communication issues. Yes, I feel the Xojo team didn’t listen carefully to their golden customers who stood behind the platform for many years and who are really experts. And yes, I understand the need for a new API to modernize the platform with a goal on “one platform fits all”. Geoff did a good keynote, I did not hear much complains afterwards, and that feels equal to the fact that we had a huge beta-period and many opportunities to argue with the direction they were going. I have not read the same deep emotions we are in now.
    Personally I had to let go the entire beta-program this time due to workload and other issues. The sentiment around and after 2019R2 came out have put me in the equal position I was in while Windows Me or Windows Vista came out: watch for an hour and further just skip this release for production and wait for better times to come. It’s just too risky to use 2019R2 for production, although Geoff assures us that API 2.0 is not at risk since it’s mostly using the same codebase as API 1.0 did. Besides that, it claims time I just don’t have right now since it’s hard enough to make a business out of programming-projects anyway.
    I’ve never seen Bob being so sad about the platform we both love to use and make great. I would encourage the Xojo staff to get in touch with a number loyal dogs and work closely together to put things right.
    As I understood from the keynote last week, the beta-program 2019R2.1 will start soon. This release will fix a substantial number of issues with R2. Of course I will have a look, but don’t expect me to use the next few releases for production since I know what I have with 2019R1.1. First getting the good feeling back, and than wait for a stable release to make a careful start with it in a project

  9. I have been a user of Xojo/RealBasic since March 2010 and while I presented at the last conference, I have been rather quiet on the forums. The thing I’ve been most looking forward to is Web 2.0, but that look to be another 12 months away.

    During the XDC I learned how small the development team actually was, how they individually were expected to pay attention to so many things (support/forums/development/design/etc), and how it appeared that they had lost their focus on the core product. XDC actually frightened me more than anything and I started a process to reevaluate Xojo’s place in my coding portfolio.

    The events of the last couple of months (R2) has actually help define the outcome of this evaluation process, and unfortunately Xojo has lost its place as my primary coding environment. I and the company I work for own two Xojo licenses (1 web and 1 pro) plus a license with a 3rd party add-on developer and I will not be renewing them.

    I will continue to use Xojo (2019 R1.1) to support existing projects, however, I’m moving on to another environment. I will miss many of the amazing things that Xojo brought with it, but the uncertainty of the product at the moment means I can’t trust it to be there in the future in a form that supports my projects.

    I want to be clear, the team works their *sses off and in no way should this reflect on their effort or dedication. It does however reflect on the leadership and how I believe they are not paying enough attention to their customers, staff and best practices of our industry.

      • I have turned to Python for a number of reasons.
        – It is a pretty easy language to learn, and has a number of similarities to Xojo.
        – Python is on a growth pattern, and while that won’t last forever, it is a good sign that companies/universities are investing in it for the future.
        – Python has a pretty robust IDE in the form of PyCharm. I’m accustomed to paying an annual license for Xojo, so switching to PyCharm was no issue.
        – Python is multi-platform (wxPython), so I get the same advantages of Xojo working on Windows/Mac/command-line/web. While the components are not native, I’ve yet to have a customer complain about that.
        – There are A LOT of available libraries to speed up delivery of my projects.
        – The community is huge, and in general very welcoming to someone learning.
        – SQLAlchemy can really reduce the development time for a CRUD application. It took me while to get my head around the ORM concept as I’m used to working with SQL directly, but once I figured it out, things can move pretty rapidly.

        The one thing I will miss is the drag and drop ability to create a UI for the Web/Desktop. This made the initial development steps pretty easy as I could visualize the app before any code was produced.

        • Hi Robert (and everyone else),
          That is the direction I have slowly been moving as well.
          I really like SQLAlchemy and all that it brings to the table. Now if it would just generate the UI like Argen does it would be perfect. 🙂
          I am using Pandas and Jupyter notebooks more and more to help with data analysis and for communicating with my business partners.
          Python runs everyone and the folks I have found have all been pretty helpful.

          • Craig,
            There is a learning curve, and at times you need to find things to glue together to get a complete solution, but it has been worth it. Each developer needs to asses their own situation, as there is no one-size-fits-all solution. For some that will be to remain with Xojo as it fits their needs, and for others it will be looking to alternatives.

            I want to mention again, this is not a knock against the team working on Xojo, they are a smart group that are working hard to make a product that fits the vision of Geoff. My issue is that Geoff’s vision (and delivery schedule) no longer fits my needs and I fear it will alienate many of its paying customers, thus putting the company/product in jeopardy.

          • Python is terrible when it comes to distributing your apps.

            Whilst python can and does run on every platform under the sun, just try and make a single window with a click button with python. Now try to package it up and distribute on your users computers without getting the to jump through countless hoops to make sure they have the correct interpreter, etc installed.

            I’m watching this closely though:


  10. 100% same opinion.
    Will stay on 2019r1.1, perhaps they change their mind.
    If not they force us to change to another environment.

    Simply cannot understand that renaming-madness.

    • I think many if not most who reach that point would have done so because they believed Geoff was not listening to them, and would see little point to doing that.

      • if you say nothing you are guaranteed to never be heard

        it you do you may – I cannot guarantee you will be – but you at least have a chance

    • I spoke with Geoff on the last day of XDC as I was really concerned about my investment in Xojo and what it means for the future of my projects. In hind site, that probably wasn’t the best venue for this discussion as he was extremely defensive and I really got the impression he was not interested/didn’t have time for the conversation.

      While I imagine that he will make small adjustments to his current strategy for the future, I think he has set the direction for the future and will follow through as he believes it is best for his company and his product.

      Just as it is his right as the owner of the company and product to set the direction he believes is best, it is my right as a consumer to choose the products I use.

      • most definitely it is.
        others are curious what tool sets you have decided on as they may be of interest to them as well.

        Was good to meet you and see everything that you used Xojo for at the Science Center

        Here’s to success in future endeavours

    • I have seen some posts over the years where people say that in the forums and Geoff said something like, “it is my bussiness and no one will tell him how to run it”.

      If people are leaving, it is because they felt ignored, either directly on a feedback or indirectly with the lack of real improvement in the tool. So, why wasting more time explaining what they already said and were ignored?

  11. Hi Bob,
    I am tired too, watching Xojo making one disrupting mistake after another.
    My consequence from the API 2.0 disaster is to hit the emergency button, to avoid further damage to my business:
    1. I won’t upgrade my Xojo license again. I will carefully watch future movements.
    2. Instead of digging into API 2.0 I used my time to dig into some more robust, industrial strength cross platform frameworks. Under the line, this costs me the same amount fo time but it feels much better and secure for the future.

    Here is my cross platform suite:
    – For Desktop Apps, I moved to wxPython with PyCharm as its IDE and wxFormBuilder for designing the GUI. Once you managed wxFormBuilder, you can develop faster than you do with Xojo. The time you use to hunt bugs in Xojo compensates the time for “hand wiring” components in wxPython.
    – In a 2nd branch I use Electron for Desktop Apps with Bootstrap 4 and JavaScript on top and a layer of Python Scripts beneath. Here I use PyCharm and PhpStorm as IDEs and Boostrap Studio for GUI design.
    – For mobile Apps I use DecSoft App Builder in a Win10 virtual machine. It creates HTML5 Apps with Bootstrap 4 and JS, running on iOS, iPadOS and Android. You can also use this beast to produce Win10 Apps and Electron Apps out of the box, all with the same code.
    – For Web Apps I use BootStrap 4, JavaScript, PHP and again PhpStorm and BootStrap Studio.

    Digging into Javascript and Bootstrap allows me to use the same components for Electron and Web Projects. Using Python allows me to use the most of my code for Electron, wxPython, RaspberryPi projects and even for the smallest IOT Devices with CircuitPyhton or MicroPython.

    Debugging in PyCharm and PhpStorm (for JavaScript) gives you 100% control and a light speed workflow. And these are just fragments of all the advantages I see.

    • For those curious about Python, someone put together an excellent video that walks through the elements of Python with the expectation that you are already a programmer. There is a table of contents in the description so you can easily skip ahead to the parts that you are interested in.


    • Personally I believe that the mistake Xojo made was in spreading its net too wide. It should have focused exclusively on the desktop (grids, reporting, bug fixing etc) and achieved a name for excellence in that niche. It may be a declining niche but it’s still huge in absolute terms and lacking in RAD cross platform tools.
      If they’d done that they might have had the resources to put together additional teams to target other platforms, rather than trying to do it by giving fewer people more hats.

      Just wondering if anyone who moved on to another tool had considered Lazarus or B4X at all?

      • B4X was one of the platforms that I looked at, however in the end, it seemed to be in much the same situation as Xojo. Small development team, small community, focused on MANY deployment environments with a web environment that wasn’t where I needed it to be.

        Please do not get me wrong, it appears to be a viable solution that works well, its just not one for me.

      • I use B4X for Android and iOS, it is constantly evolving, not only goes with the OS, it is also adding new improvements and fetures to the IDE and to the languaje itself.

        As for desktop, it produces a java executable, not really what I want in a desktop, it is preatty easy to decompile.

        But, for web, I already replaced all my webservices with it, Xojo was really slow, The B4J app uses a real multithreaded server.

      • As Markus mentioned: The problem are the licensing costs for QT.

        I also had the future in mind, with my decision for Python: Functionality and GUI are loosely coupled.

        So if e.g. the wxPython project dies one day, it will be possible to replace the GUI with some other toolkit with relative low efforts. That’s the great advantage of Python. You can wrap things in classes and replace them on demand without changing much code.

  12. Hi Robert,

    Thanks for the encouragement, it is much appreciated.
    There is indeed a learning curve, but there was one with Xojo (RealBasic back then) . I am just not 100% enthusiastic about being forced down this path.
    Additionally I would echo your comments about the Xojo team. They are easily some of the best in the industry and have nothing but respect for them all.

  13. Pingback: Point. Missed. – Writings from the sticks

  14. Starting with RealBasic 3.1, I began writing custom apps for my small company. The goal was to plug gaps in software provided by large contractors pitching at a more general case, or to replicate the functionality of crappy software with poor support. This gave us enormous agility and flexibility, and saved us money. Eventually, on the strength of an in-house application for receiving satellite news feeds from the Associated Press, I was able to make the case for a professional license, and we’ve maintained it ever since.

    Since then, I’ve used RealBasic/RealStudio/Xojo through all its twists and turns, rolling with the many, many bugs (which have admittedly dwindled), and banging out a surprising number of highly functional, very specific applications which are still used on a daily basis at my company. Given this base of code, a large part of Xojo’s appeal lies in the ability to just open a project and recompile it if an older version of an app won’t run on a newer OS that was forced upon me by a hardware upgrade. In some cases, this cycle can be measured in decades. For newer development, while Xojo has remained a very quick way from A to B given the various tools I’ve built for myself over the years, I’ve found myself moving more and more toward Xcode, as my cross-platform needs are minor.

    Having the assurance that my older code can be brought forward with minimal effort is a huge part of the ongoing justification for maintaining a Pro license. If I Xojo tells me that I suddenly have no choice but to expend enormous effort to keep older code alive, then perhaps Xojo is no longer the right choice. I’m not sure I should recommend the expense of a Pro license even if I wanted to.

    I can’t be the only one in this position, and it definitely seems as if the folks at Xojo have failed to consider any of this. What a shame.

    • I don’t know if Geoff will see this here.. maybe you can post this on the forum…

      the needs you describe are common for in-house apps. Xojo Inc had no clue how much backward compatibilities matters even to “citizen developers” who used Xojo at work … even if they paid for the license themselves.

      I am not sure who they are trying to appeal to… what they are doing seems to me to be full of contradictions

      – karen

      • “I am not sure who they are trying to appeal to…”

        Seems a lot of us feel that way. I do, too. I guess I fall into “citizen developer” class since I haven’t held a professional developer job since 1985 when I was writing procedural C, Fortran, and VAX MACRO code.

        I’ve had a lot of gripes about Xojo over the years (mostly for introducing new bugs while fixing others or leaving bugs to languish for years), but this truly may be final thing to drive me away. My license expires soon. It won’t get renewed until and unless this settles out. In the meantime, I’m digging deeper into alternatives.

  15. The talk in this thread about “wide nets” and “shiny targets” makes me think–alot–of Apple’s Copland debacle. Except Xojo is trying to do it without the tons of engineers and dough that Apple threw at it.

    I’ve used Xojo/RB since Andrew Barry was putting out the early betas. I’ve carried Pro licenses for several years. But really, I’ve done little but play with iOS and Web. As I’m getting closer to actually doing a “real” iOS project, I’m thinking it’s just flat time to learn Swift, and a sensible Xojo renewal will just be for Desktop.

    • I think you should at least give B4X a look.
      I’ve not used it for iOS only Android and I’m recommending it based on that experience.
      The community is very good and constantly positive about the product(s).
      The language is Basic, the IDE(s) run in windows only which may or may not be an issue for you. You don’t need a Mac to develop for iOS or even an iOS device for debugging.
      I could only find a couple of old videos on youtube to demo it, it’s moved on a lot since

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.