RAD Studio vs Xojo

In my quest to find a Xojo alternative I came across RAD Studio https://www.embarcadero.com/products/rad-studio that is owned by Embarcadero.  RAD Studio can work with C++ or Delphi (object Pascal) and build for Windows 32 and 64-bit, MacOS 32 and 64-bit, Linux, Android, and iOS depending up on the license.  They also have a Community Edition that can build for Windows, macOS, Android, and iOS but is free until company revenue reaches $5,000 or you get to 5 developers.

The RAD Studio IDE is Windows only even though it will allow live debugging into the other target environments.  For my testing I was running the IDE using Parallels 15 in Coherence Mode running Windows 10 64-bit.  The VM resides on an external SSD via Thunderbolt 2.  I found the environment to be responsive despite being in the VM environment.

During installation it asks if you want C++ or Delphi for MacOS, Windows 32 bit Windows 64 bit, Linux, Android and iOS.  I selected Win32 and MacOS.  It took a good 15 minutes to install.  You definitely need a large VM to do this.  I ran out of space on my VM and had to start over again after clearing up some space.

To start testing, I created a New Multi-Device application.  Doing a Hello World was simple enough.  Double click on the on the label in the Palette, or drag and drop onto the form.  Scroll down in the Object Inspector and change the Text property to “Hello World”.

At this point I’m ready to rock and hoping for the best.  Pressing the Run button runs the app and voila a Windows app with a window saying “Hello World” pops up.  Passes the first easy test.  But what about getting the Mac version going?

To set up for the Mac (or iOS, Android, Linux or even another Windows computer) you’ll have to install the Platform Assistant Server (paserver for short).  Paserver is a command-line application that you install on Windows, macOS, and Linux so that RAD Studio can connect and do its thing.

I had to read through the help file to figure out how to do this.  PAServer20.0.pkg is located in C:\Program Files (x86)\Embarcadero\Studio\20.0\PAServer and you copy it to the Mac side to install it.  The PAServer installer is using a code signing certificate that’s expired but it’s easy enough to work around.  The installer puts two applications in your Applications folder:  PAServer-20.0 and PAServerManager.  But for now we’re only concerned with the PAServer-20.0 application.  Go ahead and double-click to start it.

This opens the Terminal and the first thing it asks you for is a Connection Profile password.  I set it to blank for ease of setup.  It automatically opens port 64211 and a Mac security prompt immediately pops up asking if I want to allow incoming connections.

Going back into RAD Studio if I go to the project listing that shows my targets and I select Properties from macOS 64-bit I can setup my paserver now.  Select which SDK to use (Mac 64-bit), then input the TCP address of the Mac.  Test the connection and then select OK.  A bunch of files get copied over to the Mac side.

Trying to debug run the application on the Mac side generates an error.  Module not found:  dccosx64260.dll  After contacting the sales rep for help it appears that I had version 10.3 Update 2 and the fix for this problem was in Update 3.  Maybe I just missed something in the myriad of menu’s but I never did find an “Update” in the application.  I had to go to their website and search for updates and download an updater.  The updater then proceeded to uninstall the previous version and then proceeded to give me the default settings (not what I’m looking for).  It seems that the installer is pretty stupid.  But it installs.

This is really where my review should end.  After spending a number of hours trying to get this working I was unable to actually see a Mac app running.  Despite updating the entire RAD Studio (twice) and update paserver I could never get any of the demo apps to run on the Mac.  I know this works since I saw an Embarcardaro  engineer do it.  I’m sure it’s something I’ve done wrong but I figure if I can’t figure it out in a couple of days of messing with it then it’s not a trivial issue.  It was very frustrating.

Initial thoughts on the IDE:  This is a very typical 90’s looking MDI Windows application with one big overall window with various smaller windows inside of it.  I find it to be very busy but not awful.  I can live with it.  I have to remind myself that I’m a spoiled Mac user and I expect ‘pretty’ and functional UI from every application.

The Projects list shows all of the available targets and seems pretty straightforward.  This window disappeared on me once and the only way I found to get back to it once reopen the project.  I’m sure there’s some menu command to get it back – I just couldn’t find it.

The Object Inspector is listed alphabetically and not grouped into functional groups.  It has two tabs, Properties that shows the properties and Events which shows the available events.  Double clicking on a control, like a Button, automatically drops you into the Code Editor and into the Action event.  All code for a form or library is available as a complete text file rather than the way Xojo presents it to the user in a singular fashion (i.e. you get to see one method, property, or event at a time regardless of your coding skill level.

Here’s where things got really confusing for me.  A multi-device project has one library (FMX) whereas a Windows-only project could use that one or one called VCL.  Then there’s the choice of what language to use C++ versus Delphi.  I was really confused on how to even figure out how to do a simple message box on the click event.  I don’t see this as a huge problem as it’s common with learning any new framework so it’s just a matter of finding the right documentation and doing some reading.  But it is a little concerning that I wasn’t able to find this readily.  It was frustrating.

Code signing is built-in for all target types.  For Mac deployment (assuming you can get it working) has built-in Notarization but it should be noted that you have to have a Mac and use paserver application to do code signing and notarization.

Another interesting thing is that you can have Windows, Mac, Linux targets all in one project file.  That’s not too much different than Xojo but what’s also interesting is that you can have Android and iOS targets as well.  The form editor gives you a simulation of what the UI looks like native to that platform.  I’ll be honest, it’s not a great simulation but it’s enough for you to get the gist of how it will look.  Of course, it’s convenient that you can reuse code amongst all of the targets in the same project.

During a demo with a sales rep and engineer I asked if the Mac controls were native.  They said they were but I can say with 100% certainty that the standard tab control in RAD Studio is not using the standard Mac tab control (that looks like segmented buttons centered on the page).  So I wonder about the veracity of this claim.  I could never verify this as i was unable to get a Mac app running on my machine.

RAD Studio has considerably more built-in controls than Xojo.  It really puts Xojo’s control library to shame.  It has everything to get going without having to jump to the 3rd party market.  However, when you do need something not provided (or that needs more features) there is a window to find them.  Simply go to the Tools->GetIt Package Manager menu option and use the search field to find what you need.  Additional filters allow you to see all, free, already purchased items and so on.  Need a PDF viewer, reporting tool, or advanced grid?  It’s in the list along with details about it and it has a convenient Install button right there.

RAD Studio is more expensive than Xojo but it does things that Xojo cannot currently do (Android for example).  To create macOS, Windows, Android, and iOS applications it costs $2540 for the first year and that includes all major updates, hot fixes and ongoing maintenance of previous releases, and 3 developer support incidents.  The Enterprise license allows you to do client/server databases, build for Linux, and build REST API applications for $4217.

In many ways, RAD Studio is what I wish Xojo was striving for.  It has a definite “we’re serious” feel to it.  The 3rd party integration is really nice.  The documentation is very expansive and relatively easy to find things although as I noted above I had issues figuring out how to do a simple message box.  It is nice to see that they have hot fixes available rather than having to wait for a major update.

For a company that touts its cross-platform development capabilities I find it kind of funny that they don’t have a Linux or Mac version of their IDE.  If they did I think they’d learn a few things about making Mac applications in making their IDE truly cross-platform.

The fact that I’ve struggled to find answers to installation issues says that it’s not an easy language and IDE to learn.  I suspect that having dual languages (C++ and Delphi) along with multiple UI libraries makes getting started much tougher than it needs to be.  Getting the cross-platform applications working seems to be finicky and while I’m sure it works I threw my hands up in frustration.  

Yes, I’m spoiled because the Xojo IDE (mostly) works the same on Mac, Windows, and Linux and compiles for the other platforms without needing to run a special app on the target platform (iOS requires a Mac but that’s an Apple restriction).  While it’s true that there have been hiccups with API 2.0 the language is still undeniably Xojo and the Language Reference is decent with working code examples.  Where Xojo is deficient is in default controls (like Date, Time, Calendar) and there is zero 3rd party controls/libraries discoverability in the Xojo IDE.

If you have a different experience with RAD Studio I’d love to hear from you.  Are you doing macOS and iOS development with it? Did I do a fair review (keep in mind I’m coming from a Xojo)?

14 thoughts on “RAD Studio vs Xojo

  1. I switched from Delphi to Xojo nine years ago. The main reasons at that time were that I switched from Windows to macOS and there was only Lazarus as an “alternative”, which is no alternative for me until today. As soon as I discovered Real Studio in a computer magazine, I fell in love with the language extremely fast. I’m one of those who find the Xojo IDE more pleasant to work with than the old Real Studio IDE. So the interest grew even more with the IDE switch from Real Studio to Xojo. Of course I had a longer learning curve, but there is no serious alternative to Xojo for me at the moment. Why? On the one hand, because I simply don’t want to learn a new language “again”, on the other hand, because I’d like to continue creating multi-platform applications and because I really appreciate the community and the helpfulness. At Delphi, I found it “annoying” that I had to type a lot, just like in other languages. This refers to the declaration of a method/function/class, etc. I simply like the concept of Xojo better. Also, that you always have only the current code to view. I know that there is a feedback case for displaying the entire Xojo code. I am also in favor, but would see this only as an additional option, and still primarily use the single code view.
    Just the past few weeks I’ve seen how powerful and fast Xojo is by optimizing algorithms. Arrays, memory blocks and structures, everything is very fast. You just have to know how to use Xojo.
    When I changed nine years ago, I asked blue-eyed once if I could create a video editing software with Xojo. At that time, an experienced user said no, I had to go through system functions and declarations. Today, I have the feeling that this would also be possible with Xojo. Cross-platform!

    Another appeal to Xojo Inc. to bring all manpower together, possibly despite the difficult financial situation, to increase the team a bit and to further develop our development environment, which is often disreputable as a niche product, and to keep the users with you.

    Translated with http://www.DeepL.com/Translator

    • Yeah, but they’re not the only ones who’ve done it. BlitzMax has also done it, but failed as a commercial product. At least the original developer has donated it to the Open Source community, and it actually has been picked up and is still under active development:

      https://blitzmax.org/

      Originally designed as a programming language to write games, BlitzMax is truly multi-platform, fully object-oriented — and, as a programming language, way ahead of Xojo/RealBASIC and much more elegant (especially the OO-features). I’ve seen commercial games and business software written in it, but I’m afraid the original developer never cared much for making BlitzMax attractive for a developer audience outside of the game creator community, which is why BlitzMax never took off as it could – and should – have.

      Anyway, now it’s Open Source, so people have no-one else to blame but themselves if the language cannot do what they need it to do.

      Would I build my professional career around a niche language? No, not anymore. But in my book, Xojo also CLEARLY falls into that niche language category, and I would NOT use it commercially.

      In a development world dominated by Python, Java, C#, C and C++, it’s extremely hard to make a case for programming languages that are only used by a fistful of people — especially if there are no big companies (Microsoft, Oracle) or huge communities (Python, C, C++) behind those languages. But my perspective might be different because I work at a research institute that is part of a large society of research institutes, and these days, everybody in the scientific community uses Python (or C++, when performance really matters), and life is much easier when everybody “speaks” the same language.

      As Python IDE, we either use PyCharm (Professional) by JetBrains or VS Codium/Visual Studio Code (which is __NOT__ based on the ‘big’ Visual Studio, by the way).

      PyCharm is a big beast written in Java, by the company that also gave us the Kotlin programming language, Android Studio, IntelliJ, Gogland and what-not. The Community Edition is Open Source and available free of charge, so you might wanna take it for a spin.

  2. There is quite a lot of discontent in the Delphi community. The product is quite expensive compared to Xojo and some feel that this is because the plan is to milk large organisations why are locked in to Delphi for legacy reasons for as much money as much as possible. I don’t know that it is a prudent choice any more. There is a good forum here (the official one is poor)

    https://en.delphipraxis.net/

  3. Bob – if you’re going to look for alternatives, why not look at Microsoft Visual Studio 2019? As I’m sure you already know they have a Mac version that looks pretty darn polished. You can pretty much use any language in the IDE (C++, C#, Python, JS, etc.) I don’t know much about VS 2019 but I’m often tempted to dive right in. Thoughts?

    • You can only use Python and several of the other options in the Windows version of Visual Studio. The Mac version is built on top of MonoDevelop (which in turn was originally based on the Open Source IDE SharpDevelop), which is an entirely different foundation, and it also is rather limited compared to the Windows environment.

      Also, developing software for macOS in C# is — at best! — an afterthought at Xamarin/Microsoft — this IDE was build to let you write software for iOS and Android in C#, using Xamarin.Forms. Maybe an ASP.NET based web app.

      But let’s be honest to ourselves here: Even Apple doesn’t care about macOS as an application platform anymore, so we can hardly blame Microsoft here…

  4. Since you are looking for a Xojo alternative and have checked out Delphi and RAD studio, have you looked at the work they are doing at RemObjects?

    They produce some very interesting cross-platform tools that compile to native code, using a variety of modern languages. It might meet your needs.

    I have no affiliation with them, by the way.

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.