Servoy vs. RealBASIC

Hello all – I’ve had 3 or 4 respected database developer colleagues point to RealBASIC as a choice to consider alongside Servoy when choosing one’s development/deployment application. I’ve been answering to the best of my ability with some comparisons (almost all of which point to Servoy as the superior choice), but I do not have direct experience with RealBASIC. I’ve been answering only based on some quick research.

I am planning to develop a “Servoy FAQ” section for the Datatude web site to answer the questions I hear over and over again (particularly from my friends in the FileMaker world) and one part of that FAQ will be a comparison chart between Servoy, FMPro, and RealBASIC.

I’m posting a preliminary bullet list of some clear differences between Servoy and RealBASIC. I’m hoping that someone here may have actual experience with, or at least has evaluated, RealBASIC. If so, please post comments re the below comparisons, and please help answer my questions where I have typed “???”.

It is my wish to make as honest a comparison as possible. Even if on some points FMP or RB has the advantage over Servoy, it’s looking to me thus far as though Servoy comes out on top when comparing pro’s and con’s. So, if you choose to comment on this thread, please remember I am not putting together “hype” to sell Servoy (because hype is not necessary!) …

  1. Installation of Server:
    Servoy: Install SAS either on the SQL box or on a different box. Open up a few ports as necessary in network/WAN routers.
    RB: ???

  2. Deployment of multi-user app’s:
    Servoy: No need to install anything on clients, if you wish you can ensure in advance of deployment that all clients have the proper version of the JRE installed but this can also be handled when each client first tries to connect to the Servoy server.
    RB: Build an installer for each platform on which you wish to deploy; install your application on each client, install the proper xDBC driver on each client and configure each client with the DNS to connect to the application server.

  3. Programming multi-user app’s:
    Servoy: Servoy itself largely handles record-locking issues for each of the back-end db’s it works with.
    RB: You need to understand how record-locking works on each back end to which you may connect, and code accordingly.

  4. Using multiple SQL data sources for your application:
    Servoy: no sweat!
    RB: Very difficult

  5. Quality of UI:
    Servoy: Java LAF’s are available to change the overall UI; and some CSS styles can be appied to forms and form elements, but to provide a really polished UI you have some work to do. However, forms are reusable within tab panels, custom controllers are a snap, a menubar plug-in enables one to customize menus.
    RB: ???

  6. Multi-platform capabilities
    Servoy: Both server and client will run on Win, Mac, and Linux.
    RB: ???

  7. Cost:
    [I can fill in the developer app costs & client license costs for Servoy, and the cost of RB Pro … I just don’t have them handy at the moment]
    Servoy: $xxx for Developer, $xxx per client license, cost of Sybase iAnywhere included so long as Servoy is the only application accessing it. Runtime engine costs $1995 to license.
    RB: $xxx for Developer, application distribution (standalone or networked app) is free, embedded db included, no back-end multiuser-capable db included.

  8. How “rapid” are these RADs?
    ??? (I have no idea about comparative speed of development between Servoy & RB)

  9. Scalability
    Servoy: Almost unlimited. One standalone user to even a million users – limited only by hardware, servers, network infrastructure, etc.
    RB: ??? (I presume the same as Servoy, or can you not use distributed servers for RB?)

  10. Offline databasing:
    Servoy: use the iAnywhere product
    RB: ???

  11. Server replication:
    Servoy: can be used
    RB: ???
    OTHER POINTS OF COMPARISON???

THANKS in advance to anyone who can help complete the comparison,

kazar

  1. Security:
    Servoy: automatically encrypts server/client connections via SSH
    RB: ???
  1. Modular structure & multi-developer:
    Servoy: Yes, can build solution modules and then import them into a solution. Multi-developer possible in Servoy & about to improve (I think?? I’ll know more after ServoyWorld!!)
    RB: ???

  2. Web-publishing:
    Servoy: Now possible to re-use logic with headless client, soon able to reuse the UI as well with WebDirect/Servoy Web Publisher
    RB: ???

  3. Batch processing:
    Servoy: Night routines, sending data to a fax server, UPSWorldShip, etc., can be accomplished using headless client
    RB: ???

I use REALbasic since pre version 1.0
But I mostly use it for internet applications, not so much for pure database applications, but I think I can answer some of your questions.

kazar:

  1. Installation of Server:
    Servoy: Install SAS either on the SQL box or on a different box. Open up a few ports as necessary in network/WAN routers.
    RB: ???

RB has no server component. Or you have to write one.
You connect directly to the database server so each client takes up a port on the database server.

kazar:
2. Deployment of multi-user app’s:
Servoy: No need to install anything on clients, if you wish you can ensure in advance of deployment that all clients have the proper version of the JRE installed but this can also be handled when each client first tries to connect to the Servoy server.
RB: Build an installer for each platform on which you wish to deploy; install your application on each client, install the proper xDBC driver on each client and configure each client with the DNS to connect to the application server.

Next to the ODBC support RB Pro comes with native plugins for CSV, DBF, dtfSQL, 4D, MySQL, PostgreSQL, Oracle, OpenBase and I know there are plugins for Sybase and others.
So depending on your needs you can choose not to use ODBC.

kazar:
5. Quality of UI:
Servoy: Java LAF’s are available to change the overall UI; and some CSS styles can be appied to forms and form elements, but to provide a really polished UI you have some work to do. However, forms are reusable within tab panels, custom controllers are a snap, a menubar plug-in enables one to customize menus.
RB: ???

RB has a true native GUI. So when you compile an app for windows it has all native GUI widgets.
RB is OO and therefore you can make classes of and objects that you can reuse and subclass. However GUI objects are not easy reusable other then having multiple instances of the same window/control.
In any case you won’t have the same GUI reusability as with Servoy’s Forms.
Reusability of code however is higher with RB.

kazar:
6. Multi-platform capabilities
Servoy: Both server and client will run on Win, Mac, and Linux.
RB: ???

RB Pro will allow you to compile native apps for Mac OS, Mac OS X, Windows and Linux.
Pre-requisition for Linux is that it has GTK 2.0 or higher installed.

kazar:
7. Cost:
[I can fill in the developer app costs & client license costs for Servoy, and the cost of RB Pro … I just don’t have them handy at the moment]
Servoy: $xxx for Developer, $xxx per client license, cost of Sybase iAnywhere included so long as Servoy is the only application accessing it. Runtime engine costs $1995 to license.
RB: $xxx for Developer, application distribution (standalone or networked app) is free, embedded db included, no back-end multiuser-capable db included.

RB Pro (with 6 months of upgrades included) : $399.95
RB Pro with 1 additional year of upgrades: $599.95

kazar:
8. How “rapid” are these RADs?
??? (I have no idea about comparative speed of development between Servoy & RB)

All depends on what you want to do and how you do it.
Printing for instance is MUCH more difficult on RB in comparison with Servoy.

kazar:
9. Scalability
Servoy: Almost unlimited. One standalone user to even a million users – limited only by hardware, servers, network infrastructure, etc.
RB: ??? (I presume the same as Servoy, or can you not use distributed servers for RB?)

Since RB has no server component it’s as scalable as your database server is.
However you have no caching of data whatsoever on the client. Unless you code that yourself.

kazar:
10. Offline databasing:
Servoy: use the iAnywhere product
RB: ???

RB Pro (2005) comes with SQLite if I am not mistaken.

kazar:
11. Server replication:
Servoy: can be used
RB: ???

Again, RB has no server component so it depends on your database server.

Thanks Robert,

Some very interesting information on RealBasic.

Kind of makes me wonder why I’ve never taken a look at it myself ?

Cheers
Harry

kazar:
12. Security:
Servoy: automatically encrypts server/client connections via SSH
RB: ???

RB Pro comes with secure sockets. But unless you want to recode your database plugins in RB you can’t use them for database access.
So RB has no encrypted connections to databases (unless coded into the specific plugin)

kazar:
13. Modular structure & multi-developer:
Servoy: Yes, can build solution modules and then import them into a solution. Multi-developer possible in Servoy & about to improve (I think?? I’ll know more after ServoyWorld!!)
RB: ???

Like said before, RB is OO and can be used in a very modular fashion.
REALSoftware also provides a free multi-developer environment where you check in-out the source.
I haven’t used it though so I can’t tell you how it works and if it’s a true CVS and such.

kazar:
14. Web-publishing:
Servoy: Now possible to re-use logic with headless client, soon able to reuse the UI as well with WebDirect/Servoy Web Publisher
RB: ???

With RB Pro you have support for server sockets. However I don’t think you want the clients to be used as webservers.
So if you want to reuse logic on the server you are pretty much out of luck, unless you code some CGI like functionality in the client and run that on the server.

kazar:
15. Batch processing:
Servoy: Night routines, sending data to a fax server, UPSWorldShip, etc., can be accomplished using headless client
RB: ???

Again, RB has no server component. You can use timers and such in RB. Ofcourse you need to have a client open then.

Just a quick note to say THANK YOU Robert!! for your thorough and incredibly quick reply. I am headed out the door and will be back this evening, and I do have some follow-up Q’s in response. Your information is incredibly useful. It sure looks like for multi-user app’s one has a phenonemally easier time with Servoy. I would not want to have to code caching, to learn every detail about every back-end to which I may need my app to connect, or to write a CGI for web access, etc.

Off to work now,

kazar

Just one more “quickie”: If anyone from Servoy can help flesh out the list of points of comparison or the details of the comparisons thus far, please take a whack at it! Also, any non-NDA “coming soon” stuff would be helpful (for example, I think I remember reading something about upcoming improvements to multi-developer possibilities).

ROCLASI:

kazar:
9. Scalability
Servoy: Almost unlimited. One standalone user to even a million users – limited only by hardware, servers, network infrastructure, etc.
RB: ??? (I presume the same as Servoy, or can you not use distributed servers for RB?)

Since RB has no server component it’s as scalable as your database server is.
However you have no caching of data whatsoever on the client. Unless you code that yourself.

What about data broadcasting?

Riccardino:
What about data broadcasting?

Again, because there is no server component other than the database server itself there is not databroadcasting.
If you want that you need to write your own server and handle all queries.
So in short, there is no databroadcasting with RB.

However GUI objects are not easy reusable other then having multiple instances of the same window/control.
In any case you won’t have the same GUI reusability as with Servoy’s Forms.

Since 2005 not completely true anymore. It is possible to create a container control with all objects and code in it you want. This is reusable all the time!

Hmm, I guess I have to look into that.
I have been playing with containers a bit but didn’t had much use for it.
But I don’t think they are as easy as with Servoy.

What do you think Marcel?

ROCLASI:

Riccardino:
What about data broadcasting?

Again, because there is no server component other than the database server itself there is not databroadcasting.
If you want that you need to write your own server and handle all queries.
So in short, there is no databroadcasting with RB.

Quite a problem, in a typical network environment, where people is not limited to browse records, don’t you think?

Score 1 for Servoy ;-)

Hi all,

I like to have several tools in my toolbox, so I use both RealBasic and Servoy, but in different ways :wink:

  • Servoy for multiuser database applications and
  • RealBasic for single-user tools, such as continous data transfer from FileMaker.

Compared to my work in the mid-1990s, I see Servoy as a replacement for FileMaker and RealBasic as a replacement for Hypercard/Supercard.

One of the reasons I have decided to use PostgreSQL as a default database for my customers is that I can use the PostgreSQL plugin from www.aliacta.com which is supposed to make life a lot easier when dealing with PostgreSQL databases.

I have been in contact with a couple of people using RealBasic for larger multiuser applications, they seem happy with RealBasic, but then they don’t know Servoy :wink:

What I like about RealBasic is that you take any object or interface element and subclass it to get the behaviour you want.

Christian

What I like about RealBasic is that you take any object or interface element and subclass it to get the behaviour you want.

This is a lack of Servoy. I think a true Object Oriented GUI and language could make Servoy the #1.

Container controls are really a container for objects and attached code. I have use for them but not yet implemented them

I think, like with everything when you are used to working with them, they are as easy to use as seperate forms within Servoy. But the concept is quite different. Servoy forms are really seperate forms, containers need a window to be used.

Another pro for Servoy is that the plugins you write for Servoy are almost by default crossplatform.
When you write plugins for REALbasic you mostly need to write code PER platform.

a.mariottini:

What I like about RealBasic is that you take any object or interface element and subclass it to get the behaviour you want.

This is a lack of Servoy. I think a true Object Oriented GUI and language could make Servoy the #1.

I know it makes lots of sense to write methods in JavaScript. But,
I wonder what would happen if you added a true OO language like Ruby..?

  1. Authorized end-user can make changes to the application
    Servoy: Yes
    RB: No

kazar:
16. Authorized end-user can make changes to the application
Servoy: Yes
RB: No

RB: Only when they have the source.
Then they need to redistribute the compiled application to ALL users.
Ditto for rolling back versions of the solution.