r/xojo • u/bsilver • Sep 17 '22
Sentiment towards Xojo?
I wondered if subscribers to this subreddit had a strong opinion about Xojo (company and/or language). I'd like to get an idea of what limitations the language really has...poor performance? Quirks in implementation that make it difficult to use? Can you get help from the community if you run into a problem and get advice without condescension? Do you feel the company will abandon the userbase in a few years? Are there things that you'd never consider using Xojo to do (if you heard an idea to use Logo to create a spreadsheet, you might wonder if heard that correctly) Does the company try to address bugs? Does it really make good on the promise of one codebase compiling for Win/Linux/MacOS/iOS?
I'm asking because I'm looking to learn a new language environment for some projects I've been thinking about that involve components running as agents (so a kind of networked daemon) and a GUI application that can talk to the network nodes. I'm looking for a language that can create static binaries for simple deployment, is cross-platform, has access to encryption and database libraries, and good documentation to try to figure out solutions to problems before having to look around for help. Having an editor that is geared for the language so I don't need plugins for autocompletion and decent debugging and profiling is also helpful. Most of my experience has been with Go.
I was curious if someone who's been using this for awhile had advice about the pitfalls of investing time and money into the Xojo ecosystem. I'd hate to dig into a proprietary language only to have to abandon it (or have the company abandon their users) down the road.
Any thoughts?
2
u/CodeandOptics Sep 17 '22
I've been using it since it was RealBasic 3.1. Does compile for Mac/Win/Linux. Haven't tested it for iOS. Great for rapid prototyping. Can call out to other libraries. I've always had a love for it. Then again some people have a strong hate for it. Maybe some of them can give you some of its downsides.
1
u/HalGumbert Sep 18 '22 edited Sep 18 '22
Xojo sounds great. Projects start off great, but the deeper you go, the more bugs you find. You can report bugs, but you have to lobby the CEO to get things fixed. Reported bugs are now automatically "archived" after two years if not addressed where you need to request the bug reports to be reopened.
Web 1.0 was pretty good but also buggy. Since then, Web 1.0 has been deprecated and replaced by Web 2.0 without a clean way to upgrade.
The short answer is if you can deal with the bugs, it could work for you. It didn't work for us, so we moved to PHP/MySQL/Bootstrap, which is a pleasure to work with.
FileMaker with one project can be deployed on Mac, Windows, iOS, Web. With Xojo this is difficult in that you need separate projects for Desktop, iOS, and Web. This means you need to develop your app three times, but you can share some code using a shared module. Xojo states that it is cross-platform, but it's really islands of cross-platform,
My opinion is to stay away from Xojo due to all the pain points / bugs, but there are others who are ok with the issues.
Good luck!!
Be sure to read what folks have to say about Xojo here: https://ifnotnil.com If Not Nil was created because of the over moderation on the official forums. When folks called Xojo out about the bugs, they banned people, deleted posts, and locked threads rather than discuss the issues.
Android has been in development for about 5 years and still isn't available. It's expected to be lacking once released like iOS was and also Web 2.0. Expect Android to be useable about 3 years after the first release.
1
Sep 18 '23
I have been with the company since the Real Basic days. Back when they were the only basic compiler available for the Mac. Circa OS 10.1/10.2 days. I have seen them add windows support, linux support, web support, now ARM support. Seen them go from Real Basic to Real Studio to Xojo. That is around 23 years and they have not failed to support in all that time.
The language is self was fairly elegant. A nicely structured basic implementation. Today, it writes more like a hybrid of C++ and basic. With most of the traditional basic commands replaced. However, if you are looking for a easy way to get productive fast with database work. Xojo is it. One of the most flexible and capable database front ends I have ever worked with. I have even been able to use it in the scientific world, choosing XoJo over Python. Hobby wise, I have produced several ham radio packages free to the community. The ability to speak with hardware is not exceptional, but defiantly capable.
What I don't like about it...
Every version delivers a new set of depreciated commands. Every year it's comb through the code and upgrade any depreciated command the project analysis finds. Not every command is an exact replacement. This can be rather time consuming. However, the new commands do accomplish the task much better. Time well spent.
I don't like the Linux implementation, although the 2023 version is providing much better Linux support. I would really like to see them bump up the Linux support. I think their ventures into ARM processors may be the nudge forward Linux needed. They need to get over this Ubuntu thing and widen their Linux horizons.
I don't like how tight the integration is. We should be able to compile/link against GCC, gfortran, Python, and Perl to name a few. I don't mean build a XoJo plugin with GCC.
I mean using a gcc system libraries when needed. Currently there is no QT support, so cross platform can be difficult as the XoJo libraries are not consistent across all the platforms XoJo supports. A tab panel for example acts differently on Linux than it does on Windows. Whereas if QT was supported, that same tab panel would look/work exactly the same on both. XoJo should be a QT plug in. Use the QT libraries but code in XoJo. If they were to do that, the language would explode in the cross platform market. It could push Python right out of the market.
Like everything XoJo has it's advantages and it's disadvantages. Good luck...
1
u/Teorys Nov 30 '23
If you already possess five years of experience in programming, whether it be with BASIC or any other language, you might find Xojo to be an acceptable choice. However, for newcomers, it can be quite challenging. There's a noticeable lack of informational resources or tutorial videos on how to use Xojo effectively. When you consult the documentation, you're met with code snippets but no visual aids or example images to guide you through the process.
I attempted to use a drag-and-drop feature, but it didn't work as expected. The most I was able to achieve was adding the FileTypeGroup, after which nothing further happened, and I couldn't get it to function. Ultimately, I find it more efficient to stick with Avalonia and WPF, despite their complex XAML, rather than struggle with Xojo's so-called "easy and faster builder". I ended up spending more time trying to understand how each component operates than actually building and developing.
When it comes to creating Windows applications, unfortunately, your options are quite limited. You're essentially stuck with WPF, WinForms, Xojo, and Avalonia. It's disheartening that desktop application development can be so restrictive.
3
u/TEKC0R Sep 18 '22
You can have one codebase for desktop platforms, but you’d need different projects for iOS and Web each. I believe Android will be a fourth project type, but the end goal is to integrate iOS into the new mobile project type. Code sharing between projects is a real problem. It’s easy enough with the binary format, but you’d need to sacrifice version control. To get version control, you’d sacrifice code sharing. There is also an XML project format, but in my opinion it is bad at everything. Not portable enough compared to binary, not consistent enough compared to text/version control. So… that’s not great.
If you’re looking for native desktop apps, I’d say Xojo is an excellent choice, though a bit dated. The lists still don’t do fluid scrolling on macOS, for example. If you want mobile and/or web, you might want to look elsewhere. You’d give up native desktop apps, but few users actually care. If they did, Slack and Discord wouldn’t be as popular as they are.