Xojo vs Other Tools

Hi Guys!

I know that most of you are familiar with different development tools. Most likely, Dotnet, Php, Java and others.

With your experience with other language, how do you rate XOJO in terms of SPEED when it come to a multi user database system?

in my opinon, Database speed is determined by 5 major things

  • The database server hardware
  • The database engine (Oracle, mySQL, SQLite etc)
  • The network connection and its traffic load
  • The client application (ie. Xojo app, DotNet etc.)
  • and is it a 1-tier, 2-tier, n-tier design?

not to mention how well designed and written any/all software involved is.

My experience:
The speed depends more on the database engine, the efficiency of the queries, and network throttling, than the compiled code.

For example, if you write code in any language that opens a read/write recordset, works through each row in code, changes values, commits and moves on, it will be orders of magnitude slower than issuing an effective UPDATE statement against the database.

You will be able to find languages that execute the loops faster, but put the compiled app on the wrong end of a client/server system and you will have a long wait for results.

I would have no worries about using Xojo to get a set of data from a large database in oracle or SQL server
Or in updating lots of records at once using
update x set y = z where q;

Thanks Guys!

How about this situation:

Let’s assume that we had same database, same server and and same logic of program. Can XOJO out perform those other development tools?

Hi Ronaldo,
just want to chime in here. I don’t think it is the speed of running that matters, more the speed of development and what platforms you target. Based on you question, it looks like you think Desktop, possibly both Mac and Windows OS. In that case Xojo will enable you to (more or less) create true cross-platform software. Speedwise it will be up to a) the DB libraries you are using client-side and b) the speed of the DB back-end.
If you only target Windows OS I’d look into .Net or possibly UWP (if only targeting Windows 10) and use Visual Studio.
My experience on Mac OS is only with xCode for iOS and not Mac OS X so I can’t give you any hints there.

Let your previous programming skills guide you. Xojo may be tempting for it’s simplicity but once you get down to threading and UI elements it gets pretty dirty, especially on Windows.

If I were to choose I’d create a fully web-enabled system in PHP and use Sencha ExtJS for the front-end and target browsers only, but that’s just how I would do it :wink:

Hi Mattias,
Thanks for the response.

Maybe lets focus your comment for XOJO WEB application against other DEV TOOL. I believe Browser will be the battle ground.

Any comments there?

Never used Xojo WEB so I cannot comment on that.

Why do you believe that? It is basically running your app on top of another layer that is more limiting. Just look at how crippled iWork has become.

Unless you are already pretty knowledgeable in CSS, PHP and JavaScript, most other app development tools for the web will have a steeper learning curve.

[quote=283393:@ronaldo florendo]Hi Mattias,
Thanks for the response.

Maybe lets focus your comment for XOJO WEB application against other DEV TOOL. I believe Browser will be the battle ground.

Any comments there?[/quote]
The Xojo web framework should work well for an app that is mostly a database front-end. What I mean by that is that Xojo’s web framework works especially well for apps that are not intensely client-side apps. If, for example, you were going to write a web-based Photoshop competitor, Xojo might be the wrong choice. If you’re writing an accounting system, contact manager, project management system, etc., these are all examples of apps where Xojo’s web framework will deliver and you’ll benefit from the ability to build apps far faster than with traditional tools.

I agree with Geoff - Xojo’s Web framework really shines when it’s used to develop browser-based, database-driven business apps.

One of the things that has really impressed me about Xojo’s Web framework is how elegantly it handles sessions. Xojo truly does all of the “heavy lifting” for you - so much so that I think we tend to take this for granted. I’ve done quite a bit of Web development with PHP and ColdFusion, and as far as session management / maintaining state goes, Xojo is far and away the best.

Another often overlooked aspect of Xojo’s Web framework is that apps can be compiled as standalone executables or as CGIs, which can be run on OS X, Windows, and low-cost Linux servers. I’ve really been pleasantly surprised by the speed, performance, and scalability of compiled Xojo Web apps. I’ve used Xojo’s Web framework to developed everything from APIs to TVML content servers for Apple TV (tvOS) apps.

As far as speed of development goes, I think that will largely depend on your familiarity with Xojo itself. While there are differences in how you develop apps for the various targets, the core concepts are the same. So once you’ve got a good handle on how to develop for one target, developing for others is that much easier.

I first turned to Xojo for its iOS capabilities, and never expected to use it to develop anything more than that. Since then, I’ve used Xojo to develop iOS, Web, and even a few console apps. I feel lucky to have found a single development tool that delivers so much speed, power, and flexibility.

Depending on the purpose of the application or game. If you want performance and native integration, there’s nothing like a proper application.

Another thing I’d like to add about Xojo web, is that our registration server is running a Xojo built web-application. The #1 advantage is that the code is identical to what’s in the desktop application, meaning there are zero code incompatibilities between the server and the application, not to mention that while I do know some PHP, I didn’t have to learn another language to accomplish this.

Xojo’s biggest advantage over competitors is declares… Most competitors can create (maybe not compile) apps for Mac, Windows, Linux & web from a single code base (some can do more platforms), however there isn’t one I’ve come across that has the flexibility of declares. Declares allow you to extend your application beyond Xojo’s framework, often taking advantage of existing functionality already present on the OS. In some cases, it even allows you to work around bugs in the Xojo framework.

I deal with a lot of people wanting to put their apps in the App Store, and I always hate having to write to them and tell that there’s nothing that can be done at this time because that how tool XXXX has created your application. A couple of times we’ve had this with Xojo, but they care enough to fix it as soon as possible. Other developers, haven’t been so lucky.

If you think Sandboxing a Xojo made application is hard, you should try it with some of the other tools!

I really really appreciate your inputs guys, special thanks to Geoff. Im very proud to read your comments on this conversation.

Tim Dietrich provides very straight and clear comparison against php based on his experience and this gives me high moral achieving future projects.

MORE POWER!

I do use HTML5/CSS3/JavaScript/PHP.

As with everything in life, you have to find a good balance between the efforts you put in and the results you get out.

It doesn’t really matter which tool you use, as long as your results are in balance with your efforts.

I did not use Xojo WEB in the past, so I cannot tell much about it. But earlier this year, I had a very good candidate for a Xojo WEB application.

I think when using a lot of forms, your solution will benefit much from Xojo WEB.

Thank Chris!

Your share of comments is added on my wisdom!

Does Xojo WE still send every client event on a round trip to the server? If it does I think it’s something Ronaldo should be made aware of.

Imo with AJAX and single page web applications session data isn’t really a big issue anymore, the server rarely needs to store anything beyond a session id to show the user has successfully logged in. Because the client application never navigates from one page to another you don’t have to worry about losing values stored in variables, etc…

Ronaldo, you implied in an earlier post you view the browser as a target of interest, I agree because browsers are ubiquitous. That’s also the reason I’d recommend PHP for the back end. PHP is one of the easiest programming languages to learn, has a huge breadth of libraries and you’d be hard pressed to find a web host that DOESN’T offer it.

For details on passing data back and forth between client and server read this tutorial on JSON-RPC.

The right choice for the front end’s not quite so easy though. If you’re like me and don’t really like anything that involves HTML+CSS directly then a couple of possibilities are SpiderBasic. The problem with Qooxdoo is there’s no IDE, the problem with SpiderBasic is size, it’s dependent on so many libraries that the start up time is a real drag.

I don’t know if it’s possible to use Xojo WE for client side development only, perhaps somebody could clarify? If not I hope Xojo Inc will consider it.

The exact question was :

Sure, there are a lot of possibilities out there, and indeed Xojo Web is definitely server side. But it does get the job done with a relatively easy learning curve. That is not the case for most products combinations you cite.

Speed of development is sometimes as important, or even much more important, than clocked performances.

I am not saying these tools are irrelevant, though. I use some of them myself. They just require learning, and time to do so.

Hi Guys,

I been into many programming language before at young age, and all providers keep innovation. Most of the time, they change their technology to adopt new system.

At may age (46), I am nearly plan to hang my globes on studying and following another DEV TOOLS. I want to stay on single DEV TOOL that offers Rapid development, Fast data driven program and little learning curve.

:slight_smile:

There is no such thing as the one tool for everything. But I found that database management in Xojo is pretty straightforward and that makes it quite suited for business applications. In terms of development speed, you have seen for yourself how fast it is.

In terms of pure database performances, I believe the limitations are more of the particular database you use than Xojo itself.

The big misunderstanding I see all too often is that people who do a lot of web development view Xojo only in terms of design. When it is not so much a design tool as an engineering tool. For myself, I still design my web sites largely in HTML/CSS/JavaScript, but use Xojo Web wherever an app is necessary. I know a lot people swear by php, but in spite of using myself sometimes, I find it much too crude for the kind of application development I do. Where I can wrap a complete app in less than a week, it would take me a month at least to do the same in php, and maintenance would be close to hellish.

Steve’s remark about no client side is partially inexact as well. I use a good measure of JavaScript in most of my Xojo Web developments, let alone for RubberViewsWE, and it is indeed possible to have the best of both worlds with that mix.

That’s me of course. Your mileage may vary.

[quote=283895:@Michel Bujardet]Steve’s remark about no client side is partially inexact as well.[/quote]I think maybe you misunderstood, Michel. I asked if Xojo WE could be used for client side only in the same manner as Qooxdoo and SpiderBasic. If Xojo WE could be used for just the client side I’d be quite interested in it. However, I’m not interested if the only method of usage involves sending every event on every client on a round trip to a non-standard back end.

As for PHP, I think it’s probably the easiest programming language I know. That combined with the simplicity of a cgi script that starts, runs, ends makes the server side easy and very low maintenance as a consequence. If only the client side was as painless.