Chasing Unicorns

I’ve been on the search, recently, for alternatives to Xojo.  I’ve done some basic research into Lazarus and RAD Studio and both came up short in a variety of ways that you can read about in past posts.  So what am I looking for in cross-platform development tool?  I’ll spend the rest of this post talking about some of my requirements.  

Desktop Targets

Most of our consulting work is macOS and Windows with the occasional Linux or Raspberry Pi project thrown in for good measure.  Whatever development tool I choose it needs to be able to build for Mac and Windows at a minimum and anything it can do with Linux is an added bonus.  Rarely do we get a project that is just Windows or just MacOS.  Being able to desktop and consoles apps is a must on each target platforms.  

Native Controls

Maybe it’s my Mac background but I’d like my controls to be as native as possible.  This means that when Apple, Microsoft, or Linux distribution changes their UI (again) the application will just work without requiring an update from the vendor.  I’ll be honest that this is a want-to-have option as even Xojo isn’t completely 100% native (Listbox I’m looking at you).  Accessibility is a big concern for some clients so I’m willing to forego native if it’s ‘close enough’ and works.

Mac IDE

I’m a Mac user so I’d like to stick to my platform of choice if I can.  This means that the IDE must have the features that I come to expect on the Mac (keyboard shortcuts, standard Mac text editor features, Finder integration, and so on).  Can I live with working in Windows?  Sure, but remember I’m searching for unicorns so it’s not my first choice.  Plus, having a Mac IDE is a good indication how good of a cross-platform development tool it is.  I find it laughable, really, that some companies create cross-platform applications but yet don’t have a Mac IDE.  Um…so do you *really* do Mac applications or is this a marketing checkbox?

RAD Environment

I’ve been doing Rapid Application Development using Xojo for nearly 20 years and while you could argue that parts of Xojo are not very RAD (database development I’m looking at you) it is very easy and simple to get simple applications developed in practically no time.  Just last week I was able to get a simple Mac/Win desktop application developed for a client in four hours and that included preferences, full menubar, a simple text editor, talking to a web API, all with code signing, notarization, and installers.  Some of that is experience and the kit that I’ve developed over twenty years but some of that is simply Xojo.  Xojo makes it easy to create a MenuBar and quickly create menu handlers at either the application or window level.  The integrated Layout Editor makes it easy to add events for the window and controls and automatically drops into the integrated Code Editor.  I really want the next development tool I choose to be as easy to use as Xojo so I can get work done quickly and efficiently.

As a bonus I’d like my IDE to have integrated git and/or subversion integration.  I’d also like built-in code signing and notarization if possible too.  I realize this last part might require some remote magic since only a Mac can code sign and notarize Mac applications.  Neither of these options are available in Xojo at this point and require command like voodoo or a third party utility.

Double-Clickable, Compiled Executables

I really need my apps to be double-clickable in the Finder and Windows Explorer and just run.  I should never have to start up an application with the command line nor should I have to have a runtime installed to run the application.  Xojo applications are packaged to run independently and on the Mac they are in a bundle and even in Windows and Linux they are self-contained builds not requiring anything special from the operating system (as in no runtime necessary).

Community Size and Friendliness

I’d like my new development community to large and friendly.  When I have those inevitable questions regarding my new language and IDE I want a lot of options and where the community isn’t full of jerks.  For all of its issues this is where Xojo really shines because it’s one of the most helpful and friendliest communities I’ve ever been part of.  I’ve seen the vitriol spewed in other communities when newbies ask a question that should probably be obvious.  Hey, mistakes happen, and what’s obvious to one person may not be obvious to another.

Consulting Community

I’ve spent the last two decades as a consultant so why would I stop now?  Whatever community I go to I’d like there to be a decent consulting community where an up and coming developer could make a name for themselves.  I have no problem becoming ‘certified’ (whatever that means) to get listed and to get prospective clients.

Large 3rd Party Ecosystem

One complaint I’ve had about Xojo over the years is the lack of 3rd party options for controls and libraries.  If you want reporting options, a better grid, PDF creation and viewing, database ORM options, and a whole host of other controls and libraries your options are extremely limited.  My new development tool should have a vibrant 3rd party community so I don’t have to reinvent the wheel in many projects.  I’m okay paying money for a quality controls and libraries but what I really want are options because each one is different.

Good Documentation and Examples

This seems pretty self explanatory.  The documentation should be sufficient to learn the language.  In an ideal world it would be fully fleshed out so you can get a feel for the gotchas.  As far as examples go they should just work without having to futz around fixing stuff.

Bonus Things

It can do web apps.

It can do iOS and Android mobile apps (with some of the same caveats above).

The company/community behind it has a roadmap and what they want the language and IDE to be in the long run.

A standards organization behind the language.

A large enough company behind it, or a large enough community, to ensure future new features and timely bug fixes.

The things that I’m NOT concerned (much) about

Pricing – if it works then the price is (almost) irrelevant.

Licensing – if the language, IDE, and controls and libraries let me create commercial applications then I don’t care if it’s an MIT, GPL, LGPL, or Commercial license.

So that’s my unicorn list.  If Xojo is not going to be my long-term development tool these are the things I’m looking for.  Is this an impossible list?  I don’t think so but as someone coming FROM Xojo these are the things I’m looking for.  I you have some suggestions, I’d like to hear them and please let me know what the tool does NOT have from my list above.  I know it’s highly subjective but I think it’s important to acknowledge the limitations of the language and tool you work with every day.  Like Xojo, no development tool is perfect.

53 thoughts on “Chasing Unicorns

  1. Sadly I’m not aware of any other products that fit (most of) your criteria. I think you’ve just written a discourse in favor of Xojo.

    I’m also p*ssed off with Xojo over 2019r2, but 2019r2.1 seems tolerable if I’m forced to leave 2019r1.1. My license doesn’t cover 2019r3 and beyond, and the features are not of any use to me anyway.

    Although I plan to continue to use Xojo, I don’t plan on sending any more money their way anytime soon, even though they have been the beneficiaries of many, many thousands of dollars of my lucre over the past two decades.

    As an aside, I just bought a maxed-out MacBook Pro 16″, and everything runs like greased lightning on it… apart from Xojo, which, every time I compile, spends 5 minutes pounding on a single core, running my fans up to maximum, and displaying the Whirling Pizza of Death. The other 15 (effective) processor cores just point and laugh.

  2. I’ve been reduced to a php web developer and can offer no advice other than I wish Xojo was better at web apps. I see no demand for desktop apps and the web world is junk open source frameworks that lasts less than a year or two. lookup up AngularJS. WebForms. Cake. Flask. KnockoutJS (actually this with JQuery gets powerful). just look at the wasteland of github. I want Xojo to get better and make programming fun again.

  3. PhoneGap can also be used to make native iOS and android apps from a single web page. hahaha…

  4. I spent most of the time reading that blog post thinking “well, Xojo already has that, it has that, it has that…”

    I also look around every year for alternative tools. I like to know what’s out there. And there are lots of tools that do individual items better but I’ve honestly not found any tool with the complete set that Xojo has.

    I know we’ve all had some pain with API 2.0 this year (some more than others) and they definitely could have done some things better but I feel confident that the pain will fade and the tool will eventually be stronger for it. I also feel really good about the incoming Web 2.0.

    My conclusion from years of examining other dev tools and IDEs is that we’re all a little more spoiled than we realize. I hope the pain will fade for you and you’ll stick around with Xojo and continue to be the huge asset to the community that you are.

    • When the owner of the company says that the beta testers aren’t their target audience it makes you wonder who the hell their target audience is! If we’re not valued then why keep supporting them?

      We are spoiled. And that’s what’s so irritating about my search for unicorns since Xojo does much of what I need and want already. But it’s certainly not marketed to professional developers even though it has all of these nice features and in my 20 years they’ve not added much that adds to my day-to-day life as a developer. I mean, we’ve asked, pleaded, and demanded some features and it seems to fall on deaf ears.

      • First, let me say that we greatly appreciate the efforts of those who beta test Xojo and provide us with valuable feedback. We couldn’t do it without you.

        To the question of who the target audience is, we have said publicly that there are three: hobbyist/students, citizen developers and professional developers. You’re correct that beta testers are not a target audience when it comes to marketing or product development. beta testers come from all three of our target markets but they are not themselves as a group a target market.

        I hope this clears up any misunderstanding.

        • Damage limitation exercise? Because unless beta testers are a completely different group this makes absolutely no sense.

          • Not at all. I’m simply clearing up what appears to be a misunderstanding. And to your statement, I said in my previous reply that beta testers come from our three target markets but they themselves as beta testers are not a target market. We do no marketing to beta testers as a group.

        • There is no misunderstanding. It’s become quite clear that you don’t value the input from the professional developers. If you did, you’d add things to the product to make it more attractive sooner rather than later. Actions speak louder than words.

          • Hear, hear! Honestly, the pro-users need to get together and build a Xojo rival from scratch. Maybe leveraging Swift as the language beneath it. I guess that will never happen, but if it did, I’d bet on it eclipsing Xojo fairly quickly once publicly available. Or band together and get VC to buy out Xojo once and for all.

          • I’m sorry you feel that way because it does not reflect at all how I or anyone else at Xojo, Inc. feels.

            Since I know with absolute certainty that we do care about what professional developers say (and could give you a long list of features that ONLY professional developers would care about), I’m left to interpret what you really mean. It seems that what you really mean is that we should focus exclusively on professional developers since that is the category that best describes you. That’s certainly understandable but it’s not what we have chosen to do.

            We want Xojo to be accessible to anyone who wants to create software. It might be just to noodle around, to learn, to help them or their coworkers in their jobs, or perhaps to create a business. We have literally had users that started off as hobbyists, brought Xojo to work, then developed a solution they realized they could build a company around. That’s the vision we have always had for Xojo: that it be accessible to anyone.

            No product is ever perfect for every potential user. I accepted that fact a long time ago. That doesn’t stop us from working hard to make Xojo the best it can be. I’m sorry that it’s not good enough for you.

          • @Geoff: Then you should be able to explain how the event renaming fiasco went ahead when everyone told you it’s a disaster. It was a slap in the face for every developer who was invested in Xojo.

          • Geoff, why do you feel you must argue over the idea of marketing to the beta test group? This is a pointless. The beta testers are your customers and arguing over if they are a target group defies logic!

            If I understand Bob, he is offended because Xojo ignored input in beta testing leading to a poor outcome and Geoff says statements like this (and other statements) which shows he is really isn’t hearing what his customers are saying. Beyond that, there is an ongoing established pattern of consistently making poor requirement and design choices which has led to the point where we are at today.

            Geoff you need to choose your battles and words far more carefully because you are creating ill will rather than assuring your customers. Like Bob has stated, actions speak louder than words. Do you hear the seriousness of what Bob is saying? One of your most stanchest supporters is upset with the direction Xojo is going and he has good reason feel so, which leads him to explore other tools. Bob can speak for himself, but this kind of response feels like a slap in the face. Up to this point, it seems you don’t want to change your ways.

            I have said before, what is good for the professional customer is excellent for the hobby developer. Listen to the professionals developers and the ship will be pointed in the right direction.

          • Oh man, I really don’t understand what’s wrong with this company (Xojo) anymore. Now critics are not only temporarily banned from the forum but also long-time, experienced members of the community who are highly adept and experienced, who give us tips and tricks for working with Xojo in their private blogs, simply deleted from the link lists. This feels more and more like a war of roses, in which one part has absolutely no willingness to talk.

            http://docs.xojo.com/index.php?title=Resources:Blogs&curid=8282&diff=68946&oldid=56612

          • Geof says that the feelings of the users in this forum is does not reflect at all how I or anyone else at Xojo, Inc. feels.

            But in the Xojo forum he has post some comments saying that “no one will tell him how to run his company”.

            Maybe he doesn’t understand that no one is telling him how to run a company, just what we want in the product we are buying.

            Sometimes the best ideas you can come with, dont reflec the users needs, nor the market reality, for example, having the web framework themed as mac when 95% of web users DONT use a mac. or the recent so called “event renaming fiasco”.

            The reality is that xojo has a tiny staff and because of that, they should listen to the comunity even more closely.

            There is an interesting post in the Xojo blog:

            https://blog.xojo.com/2019/12/13/why-you-should-become-agile/

            PROBLEMS
            -Decisions made throughout a project lifecycle appear ad hoc and reactive. QA (testing) gets involved way too late.
            -QA (testing) gets involved way too late.
            By the time the customer sees the product, sometimes it isn’t what they expected.
            -Some features aren’t getting completed on time. We usually find this out way too late to course-correct.

            Being xojo so small, some of the QA relies on the users. So, if you dont have input early on the development, when you finally hear that something is wrong, you will have a lot invested in a crapy solution or in features no one wanted or not implemented the way they are needed, while many needed features are not included.

        • Geoff,
          You said:
          “and could give you a long list of features that ONLY professional developers would care about”

          I’m curious what you think those are. I am not a professional developer, and the may be some such, but off the top of my head I can’t think of anything fro desktop apps that falls into that category exclusively.

          For example, I don’t use any source control… BUT I have found Xojo being able to save in text formats useful for a different reason…

          It let’s me write code to write code or create a bunch of enums or constants that I can then import into my project…

          I don’t do it often, but everyone once i a while I do and it has saved me a lot of pain/time one the years in specific cases.

          My point is that features get used in ways you may not initially expect (as well as in the way pro’s do) by us non pros.

        • Geoff,

          I don’t know if you will come back and see this but i would like to make a point… You said:

          “you’re correct that beta testers are not a target audience when it comes to marketing or product development. ”

          But that they tend to be is a cross section of real world longer term users who are both more involved with the product and motivated to try to help make it better.

          As such their feedback is more likely to point to improvements that will help not only attract new years but also help KEEP existing ones a paying customers….

          Not seeing their feedback from real world usage in many more scenarios than you or teem ever will, as important to product development is just wrong IMO in multiple ways, as well as demotivation to them.

          While you and your team can come up some with things we might not realize we need, by the same token, we can see more real needs and lacking features as well as mistakes you may be making because of taking too narrow a view/ not seeing teh whole picture or teh full impact of what you are introducing.

          Because we represent more varied uses in very different scenarios for the product than you possibly could possibly have experience with, our feedback SHOULD be very valuable to you in terms of product development beyond just finding bugs…

          When many of us are saying we think you are making a mistake you have to realize there is a reasonable chance the collective may be right…

          Not listening is why so much effort was wasted on teh Xojo.framework … it’s failure has been a big factor in hurting the iOS product viability (as well as an incomplete features set)…

          What I am saying is IMO the feedback from beta testers as group should be a significant factor in product development DIRECTION , which can have a big effect on marketing opportunities.

          it’s your company of course so you will do what you think best… but remember everyone is fallible, and great ideas can come from anywhere, so really listening is important.

          -Karen

  5. Maybe we should come together as Third-Party-Developers and make a list of things missing in Xojo and then each allocate some time to fill a few such gaps.

    Like I wonder if a coordinated action over winter time could create something that moves the platform forward. For my part I could look into a bigger C/C++ library and maybe port it to Xojo, like I did with e.g. recently ImageMagick 7 or ten years ago with DynaPDF. If you have a good idea for what may be worth to port to Xojo, please let me know.

    • Christian these are my wish list. If you could make it possible it would be great to the community.

      1) Grid Control
      2) Reporting Tool

          • As I’ve said in other comments, it’s impossible for me to completely abandon clients any time soon. I will still be part of the community for many years to come. Been part of this amazing group for 20 years. I can’t just pick up and easily leave.

            With that said, there is a reason why I sell Shorts as unencrypted source code. It’s all there for a developer to use if we did, for some unforeseen circumstance, disappear. I did this because I’ve been burned in the past by buying encrypted source code for a developer that disappeared and a new version of Xojo broke something in their code.

            If I did leave the community I’d try and find a home for all of our developer products. People use them and could continue to support and sell them and put their own enhancements into the products too.

    • Here’s my wish list:

      1. Better graphics support to help those who want to develop games. Perhaps a replacement for the SpriteSurface or access to Metal / Vulcan canvases

      2. A 2D physics engine – maybe take Box2D (open source C++ library) and wrap it in a plug-in.

      3. RegEx support for iOS.

      4. Support for OAuth.

      Xojo could be a great platform for gaming since it’s compiled but there a number of things (some listed above) that could really help in that field.

      • “2. A 2D physics engine – maybe take Box2D (open source C++ library) and wrap it in a plug-in.”

        Christian?

  6. “I spent most of the time reading that blog post thinking “well, Xojo already has that, it has that, it has that…” ”

    Much of the time it “sorta” has it ,but it’s maddeningly incomplete in functionality, or too buggy or much slower than it should be or behavior is inconsistent Xplatform… and stays that ways for years and years.

    And it terms of RADness, it seems to me very little functionality that helps us implement significant end user facing features easily, has been added in a VERY long time.

    I renewed during the black friday sale, but it was a hard decision to justify and I almost did not… But I may have made the wrong decision as I may just stay at 2019R1.1 for a LONG time.

    • > I renewed during the black friday sale, but it was a hard decision to
      > justify and I almost did not… But I may have made the wrong
      > decision as I may just stay at 2019R1.1 for a LONG time.

      I also went through a lot of soul searching before renewing during the sale. I came very close to not doing so, as my trust in Xojo was damaged badly by the 2019r2 cycle. I haven’t decided what I am going to do in the future, either in terms of moving beyond 2019r1.1 or moving to another development platform. The latter is still definitely something I’m considering and actively researching with a similar wish list to Bob’s.

  7. I regret that Bob is currently not happy with Xojo. I see BKeeney Software as a professional anchor in the relatively small but close Xojo community.
    Many of his arguments for looking for a different environment certainly make sense, but I think his search will teach him that he has stayed at RB / Xojo for 20 years for a reason.
    I would like to say to Xojo Inc that it is important to have loyal beta testers and third party vendors. If these drop out, then many professional developers will leave with them and Xojo may become the hobby platform it was at it’s very beginning 20 years ago. Next year, 2020, will learn us if we can make OUR customers happy with good looking and stable webapplications and phone apps. If not, than credits of those of us waiting for so long already might be gone since they have to listen to their customers else they die out of business rapidly. It’s hard to make a living based on Xojo development, please don’t make it worse. Together we can be great, alone is just nothing.

    • Wow, that’s PR done in the worst possible way. Ironically, it almost deserves some admiration for being THAT conceited.

    • Another PR driven damage limitation exercise. Instead of admitting wrongdoing by adding Bob’s blog again or fixing a problem (eg by updating the links) they throw the baby out with the bath water.

      What happened to Xojo Inc???

    • Oh my gosh, that is so embarrassing. Well, that even tops the previous move *facepalm* Now they’ve got my full admiration. If they were a better-known company, this would be a full-grown PR disaster.

      For the ones that couldn’t see the previously altered page, here’s a screenshot: https://ibb.co/RBY9Ghs

      This reminds me of Chinese/North Korean politics. Absolute fail.

  8. I think one theme when discussing a development environment is “friction.” How much effort is required when going from point A to B. Professionals don’t like to waste time and futz with what someone thought was modern cute idea of how the workflow of an IDE should work. Such additions are often toe stubbers and annoyances. When these additions make it into the IDE, they then take a life onto itself (we are stuck with them). Then there are times when the IDE developer realizes that the solution was a total pain to use and fixes or redesigns it. In xcode, signing your application was sometimes pretty painful in the past. Today, it is mostly brain dead simple to use and I really appreciate the effort they put in to make a frictionless experience. The opposite experience is xcode’s design of autolayout because it is error prone and far more complicated than it needed to be to accomplish the task.

    We can all think of aspects of the Xojo IDE that are frictionless and parts that are full of friction. The event renaming in R2 was like taking 40 grit sandpaper to polish a new car–it made no sence. Geoff made the statement, “Since I know with absolute certainty that we do care about what professional developers say….’ Markus then pointed out, “Then you should be able to explain how the event renaming fiasco went ahead when everyone told you it’s a disaster.” This exposed the hypocrisy in Geoff’s statement. Sometimes the friction users feel has at its root in the one driving the design decisions. In this case, I think Geoff is the root problem. Everybody make mistakes, but there is a consistency in how they trip over the same types of problems. Geoff seems to be a “right-fighter” where he strives to prove himself right no matter the consequences and this was demonstrated even in these comments for this blog entry. Geoff stated, “We want Xojo to be accessible to anyone who wants to create software.” Geoff also stated, “It seems that what you really mean is that we should focus exclusively on professional developers since that is the category that best describes you.” This statement reveals a false dichotomy in Geoff’s thinking. He is defining it as either-or logic when in reality it is someting else all together. I would describe it as making the user experience frictionless as possible for the professional which will in turn make it dead simple for everyone else.

    Deleting the user blog links seems petty and just reflects the feudal mindset which Geoff is exhibiting by his actions. Will all of this change? Yes it can, but that is up to Geoff.

    • Some of the other blogs liked to, were were not totally positive either.

      Maybe the decision to delete the whole page was about Geoff deciding not to have links on the company website to content they do not have control over?

    • I’ve tried, and tried, and tried, lazarus over the years as it seems like the closest to Xojo from a pile of options (RAD Studio seemed to be the other good option)
      And literally never managed to get anything as simple as “hello world” to work with either for any one of a pile of reasons.

      • Alex has said there is an issue on Catalina and there is a workaround. When last did you try to use Lazarus. Repeatedly denigrating the product based on your historical experiences is a bit low especially when someone is trying to be helpful. I’m a very average programmer but I’ve gotten Lazarus to work on both Windows and Linux and done some simple crud programming with it without any issues at all.

        • I have been using Xojo / RealBasic since version 2.1. Many times I have looked for alternatives and have not found an effective one. Lazarus was promising and I built a full prototype of my cross-platform app, but I dropped it because there we many more holes and pitfalls than continuing with Realbasic/Xojo. Making a high grade user interface required way too much work in upgrading the available framework. That opinion has not changed – Lazarus is a lot of promise but I fear it will never be fulfilled. RAD studio was even more promising as my original app was build with Borland Pascal 7.0 for Windows and Think Pascal for mac, but that was an exceptionally expensive super buggy pile of slowness. I have not looked at it for a while but I have completely lost faith in that one.
          Finding an alternative is very tough. Looked at .net, C++, C.#, MS Studio, Xcode, Xamarin and whatever else. And despite the bugs, despite the increasing cost, despite holes which prevent making it a solid commercial tool, I still go back to Xojo and renew year after year. But I keep searching for an alternative because you never know when you hit a roadblock. Example: one of my apps is still on Real Studio 12r2.1 as a critical database plugin broke going to Xojo and the plugin is no longer updated. I am now migrating the database to MySQL/MariaDB so that I can go to Xojo and make the app 64bit for mac and run on Catalina. It is a big job and am losing a lot of money on it.
          What I really miss is a solid user community where the more tricky problems can be discussed and there is possible an archive of classes to speed up development. These groups gets occasionally formed but don’t seem to last.

          • “What I really miss is a solid user community where the more tricky problems can be discussed”

            I think more of that happened on the NUG in its heyday, but some of that can be had on the forum…

            I do miss what the NUG was. Still difficult question do usually some answers on the forum.

            -Karen

  9. After many years of Xojo running into the same big issues again and again, I came to the conclusion that Mr. Perlman was – and is – the problem. And almost each post of his proves it.

    I switched to old-fashioned PHP (procedural, no libraries, no framework) and to Xcode and Objective-C and lately Swift. I was lucky because I run out of Windows projects…

    To be able to go back to desktop cross-platform development I will going to look into C# and Eto for the UIs. Maybe somebody has already looked into this combination?

      • Bob, it’s so sad to see Xojo’s politics with your company. Please stay part of our user community, it’s so important to us. We will continue to support you.

      • That was by my choice. Sales through the web store weren’t all that great and more hassle than they were worth. They are still for sale on our website.

    • I tried Eto.Forms for a while (I was desperate to NOT move away from VS) – gave it my best shot, but it’s too buggy to be used. It’s not actively being developed anymore either, I believe.

      In MY perfect world, someone would figure out how to cross-platform C#/VB.NET properly. Xamarin ain’t it.

    • 5 languages, several IDs, but I don’t see them having a cross platform framework. So you code Cocoa framework on Mac and WinRT on Windows.

      The reason we use Xojo is to write on Mac and deploy For Mac/Win/Linux.

      • Not ideal indeed, but you can use 1 language (even Swift) for both platforms and therefore you can at least share the non-UI code. These use native IDE’s on both.

        Not being able to fully share the UI code is a downside, but the upside is that there aren’t many limits or the need to use declares all over the place and or require to buy addins for simple controls.

Comments are closed.