I have been coding since the days of BASIC and Turbo Pascal.
I am mildly proficient in Javascript and Python but my coding currently is to develop tools to support my primary business which is not computer-related.
So I want a tool that will let me rapidly develop cross-platform apps. I can trade performance if that gives me quicker development time. Keeping up with all the intricacies of Javacript/Python and related libraries is a full-time job; I’d prefer one language which integrates all that work on multiple platforms.
So… is Xojo a good fit?
I am reading people who have left Xojo or are concerned for its future. What alternatives exist which are cross-platform at least to the (somewhat limited) extent Xojo is?
I qould recommend you to use C# or Java for cross platform Desktop development. At least with Java Swing or JavaFX you can develop Desktop Apps for all Platforms (Windows, Linux, macOS) with exactly the same code and the same UI. Using Netbeans you could have a UIManager und the UI and the toolchain for free, using IntelliJIdea community you would have to pay for the UI Designer (JFormdesigner) for Java Swing or using JavaFX with the free JavaFX Scenebuilder. Java you can have for free, I am building apps for all platforms with both, the JavaFX and the Java Swing UI. Hence you have long term support for the JDK you can get the security that your JDK will be updated until 2030. And in nearly all cases the Software you develop let’s say with Java 11 will run on future JDK. Also there is nearly no ecosystem around Xojo. Java has the biggest one. Ihf you have questions, ask me,
I think C# or Java make sense for full-time coders. It takes a whole lot of time to get and maintain proficiency though - I don’t think those are languages for a part-time or hobbyist programmer to master.
It really depends on a number of factors, the ones that spring to mind.
Xojo is 80% x-plat, there are problems other than performance on each platform and finding work arounds usually involves buying a plugin that costs almost as much as Xojo.
Xojo is a shrinking community, that means find existing solutions and people to help will be getting harder and harder as time goes by.
Platform specific functionality is often poorly implemented or non-existent, i.e. the macOS Preferences system is entirely unsupported, even though it’s been around for at least 30 years. Once again, you’ll need a library or plugin to solve that.
When you find a bug in Xojo, the chances of getting a fix in a reasonable time frame are very slim, which could be said of other development tools also, but Xojo has a reputation for buggier than most.
Xojo is heavily underfunded and they lack dedicated platform developers, this increases bugs, especially in new functionality and old bugs are often left there, because they don’t have the manpower or experience to fix 'em.
What kind of scale are you thinking? If it’s for yourself to help automate some tasks, it’ll probably do. If it’s to sell to customers to run on their own 'puters, you’ll need to invest in a lot of effort to make the Xojo application actually feel like a native app on each platform. If you’re looking to build an app for a small or medium business, consider building a web app and for performance, avoid Xojo.
Javascript and Python has a much larger community, which means less bugs and more resources.
Electron has gained momentum massively while Xojo was busy re-arranging the deck chairs. While this often creates very bloated apps, many can be run through Tauri which uses the built-in web browser and vastly reduces app size.
It also depends on what you mean x-plat, Apple’s Swift and SwiftUI is x-plat across all devices. You can build a Mac app and run it on a Watch, or with the help of skip.tools, Android.
C# is x-plat, @npalardy has more experience with that, again larger community, more resources.
There’s also other tools, which we’ve discussed here to help with x-plat. Flutter and Java spring to mind.
PureBasic looks very interesting - or its cousin SpiderBasic which allows for web app development.
On the surface SpiderBasic is probably an ideal match for my goals - mostly to automate tasks for myself and a small team of employees as internal tools. Indeed SpiderBasic seems intuitive because long long ago I actually worked as a Dev writing BASIC code of all sorts. My favorite language of all time was TurboPascal - which I understand has some similarity as well to PureBasic/SpiderBasic.
But why are PureBasic/SpiderBasic so relatively unknown even compared to Xojo? Even putting aside my goals at this time it seems to me PureBasic is a whole lot easier to learn for an adolescent on a first exploration of coding - there is no environment to set up, the documentation is complete from a single source, and it is sufficient without any libraries to do most basic hobbyist/citizen programming projects.
They do not invest much in marketing, hence their visibility is low.
Regarding Xojo, for a commercial product, quality is very low. Bugs can remain for years and Xojo is not feature-complete.
Xojo Inc, resorted to an eternal beta strategy. They release new features, like DBKit and Android ‘support’, talking it up like it was ready for production. But in reality it is declared as beta and it remains at that state for an undetermined period.
Expensive beta software it is.
That looks like a really neat product I would enjoy - except it is Windows only and I would prefer not to have to code in a VM on my Mac. Very interesting however. Is there anything similar to that on a Mac?
SpiderBasic is only for the client side though ( unless you’re compiling Android / iOS Cordova apps ) so you’d still need a web server and server-side language for that. PureBasic does have commands for both CGI and FastCGI so it can be used server side.
If you want to make desktop utilities PureBasic is great for that.
As Thorsten says there doesn’t seem to be any real marketing going on. It’s also a procedural language and I think most developers these days are more familiar with OOP.
Xojo IMHO is still the shortest learning curve when coming from a Basic and Pascal background. Like you, I started out on Turbo Pascal, then went to Visual Basic .NET, and now am TRYING to do things with C# as much as possible. However, I did purchase Xojo in 2019 and still feel it’s the simplest way there is to create a cross-platform (Mac/Win Desktop is all I care about) app for my needs.
I still use Xojo all the time for quick-and-dirty “testing” apps that take only moments to create and “just work” cross-platform and allow me to not get off my Mac to create a MacOS and Windows version. Using other systems (expect maybe electron) has way more hoops and debugging required to go from an idea to a working app. I WAS able to do that with VB.NET as well, but that was only workable on Windows.
Even though C# with Blazor and Maui is far more powerful, advanced and speedy when running, it’s still “in development” and is constantly changing, which makes it difficult to really learn. Every few months there’s a “new and better way”, so I have to re-learn. Also, Xojo does a good job of hiding all the muck-a-muck that on c# is spread across many files. I still understand very little of all the junk that’s in the dozens of files that c# uses when creating a GUI app. Xojo kindly keeps (most) everything under one roof and within one file that the IDE uses to create the app.
The IDE automation is a lifesaver in Xojo, and I shudder to think about how difficult it might be to do some of the stuff I’ve done in Xojo within C#/Blazor Hybrid.
That being said, I have to push myself to continue with C#/Blazor Hybrid for desktop and mobile apps because there’s really nothing better (IMHO) than building a GUI with html/css in C#. No limits to how your controls can look and operate. SO many hours and days spent trying finagle a Xojo control to behave how I wanted it to, that limitation is gone.
Now, using Radzen studio to design and test your GUI is a great way to WYSIWYG your html/css layout and it’s really astounding what they’ve been able to achieve. What will really be the “killer app” for me is when Radzen Studio finally supports Blazor Hybrid directly (you can still edit those apps for adjusting the GUI) and adds a Radzen plugin for VS. At that point I feel VS with Blazor Hybrid will be the most powerful platform and IDE out there.
Always, though, I’m waiting…
In many ways I’m persisting with C# because, in my case, iOS and android are the two platform my client cares about and with Xojo I’d literally have to write mostly the same app twice - with whatever differences their iOS and Android offerings will have (and I’ve run into many already)
It is slower to work with for now because I know Xojo way better
But once I get “the right way” I go “Oh but of course !” and off I go
So I sort of agree with your assessment in several ways
But C# seems to be entrenched in my future as well
Sorry but with java I can build cross platform for all platforms from all platforms and have is not like c# under development but ready for production since decades.
Hmm yes with GluonMobile or codenameone it is possible.
Look on codenameone.com there you can write with one single codebase an App running on Android, IOS and Linux, Windows, macOS. The best here: it is native compiled with Xcode for IOS and native compiled for Android. Write one UI and one Codebase, add platform specific code if you need and run your App. Appstore ready and if you have no mac computer with latest XCode you can use their buildservers. Try it out for free. All you need inside. Unitl 8MB jar Size use all for free (ahould be more than enough for developing a small app to get how it works or a small commercial app). Get unlimited jar size for 30 Bucks per month. For Desktop it spits out a jar without any build server. If you want you can setup the buildservers locally for free and compile by self. You will pay for using their buildservers and for generating Javascript apps.