What is Servoy?


Of course, the best resource to find out what the main features and advantages of Servoy are is their own site (http://www.servoy.com). However, you as a Visual FoxPro developer are probably especially curious about how to position it compared to Visual FoxPro.


A detailed technical comparison will be added later but for now let's just look at the main architectural differences and similarities.


Let me begin to tell you that Servoy is actually not a programming language (still there?) but rather an application platform of which the main features are:

  • Rapid Application Development
  • Cross Platform Development (Windows/Mac/Linux)
  • Windows Application (Smart Client) or Web Application (Web Client) from just one code-base
  • Web Client also runs on iPad/iPhone/Symbian
  • Language syntax close to VFP
  • Low Learning Curve
  • Database independent
  • Powerful Reporting Options
  • SaaS (Software As A Service) and on Premises
  • Cloud Computing Ready
  • Zero Deployment
  • Scalable
  • Open Source
  • Agile software development

Licensing


Before telling you about the goodies let me start with what you won't like, the licensing model...


Visual FoxPro runtime libraries and applications could be distributed royalty-free to as many customers as you like. 


Then again this is probably the main reason for Microsoft to let VFP die, they couldn't make a profit.

There are many licensing models for different situations so I won't discuss them here.

Perhaps more on that later.


For now, hang on to the thought that licensing may become part of your business model and think of new possibilities such as renting your application to your customers instead.

Cross Platform Development


Some of you may remember that a long time ago there was a Unix version of Visual FoxPro and also a Mac version.

In Servoy, you can work on a project at the office on your Windows PC and continue at home on your Macbook or Linux computer.


Source code control is possible through Subversion (an integrated open source third-party product).

Smart Client / Web Client


Whereas Visual FoxPro was designed to build Windows applications and maybe a web service or interaction with a website, it is not suitable for building web applications and if you want to use the application over the internet you will have a hard time.


Servoy lets you build Windows style applications with full access to local PC resources or full blown web applications from just one codebase.

Rapid Application Development


Rapid Application Development (RAD) is a label that certainly applies to VFP.


Whenever we demo how easy it is to throw a table on a form and create a working data entry solution in less than a minute we don't expect this to also be the case in other environments.


Now the good news: Servoy is just as RAD as VFP and even more so!

In my perspective there are three key elements to success in this area:


  • State of the art application platform
  • Simple forms can be combined to complex forms but are still simple
  • Ease of use



It is tempting to tell you more but you have to see it with your own eyes. If you want to know more please check out the tutorials and webinars on the Servoy website. Of course, soon a detailed section on this matter will follow.

iPhone / iPad / Symbian


When you run your application from the Web Client it will run on anything that can access the internet such as mobile devices.


There are tools available to test your web-app as an iPhone-app (see http://www.servoy.com/iphone ) which requires nothing more than adjusting the screen size!


How cool is that?

Language Syntax close to VFP


You may have been wondering what to expect from the programming language.


First let me tell you that Servoy is open source and has been built using Java. Don't worry though you don't have to learn Java.


Visual FoxPro was built using C++ and we didn't have to learn that either.

As I mentioned before the Servoy application platform is not a programming language or a framework.



It is a very powerful and flexible feature-rich application platform that comes with a lot of standard features such as automatic data binding (yes even when adding parent/child records in complex one-to-many forms and regardless of the underlying database!), powerful but user-friendly data filtering, built-in security features, log-on functionality, auditing, reporting etc.


When you take a look at the source code of the sample applications you will notice that even in a full-blown application there is very little code needed to make things work. The language that you will use to operate and manipulate the Servoy application platform is Javascript. Some of you may know it already and others will find it to be pretty similar to the VFP syntax with regard to objects:

// Code in save button
//(When Autosave is off and you want to manually save changes)
databaseManager.saveData();
forms.companies.setFormReadOnly();


//Code in find button
// User enters search values in data-entry controls
var _formName = getActiveForm();
forms[_formName].controller.find();


Of course there are plenty differences as well and several concepts will require some getting used to. It will take some time to let go of what we are used to and start using Servoy as it has been intended and you will experience that the productivity will be just as good as in VFP and I dare say probably even higher.

Database Independent


One of VFP's strongest assets is being data-centered. Handling data from the command window in VFP is always a pleasure. However, handling SQL Server data or ODBC data requires a little more attention. Although Servoy does not have a native database it comes with PostgreSQL (not to be confused with Progress). Servoy used to ship Sybase but when they decided to go open source they switched to PostgreSQL.


When I attended the Servoy seminar a VFP developer questioned the ability of Servoy to handle data just as fast as VFP. At that point Jan Aleman (CEO of Servoy) said "I could tell you it was faster but you wouldn't believe me so I'll show you" and he threw together a form and a quite large database table (several million records), just like we would in Fox.

He then demonstrated that each search had an immediate response.


Of course, as we all know proper indexes can speed up things dramatically so somebody challenged him to search for a three-digit combination within all phone numbers and the response was still unbelievably fast.


Servoy automatically handles large amounts of data efficiently and retrieves only the first two-hundred records of any select and only pulls in extra data when absolutely necessary.


This is comparable with the way VFP handles data using remote views. Except in this case you just define the connection to the database and after that the data handles as if it were native data with full drag and drop support.


Servoy also connects to FoxPro tables with the jdbc driver.

Low Learning Curve


When I first watched Ken Levy's seminar on Servoy and started experimenting on my own I was worried that I wouldn't have enough control.


Everything seemed to be a bit too simple.


Visual FoxPro has a lot more events that you can respond to and I am certainly going to wish for them at one point or another but Ken has given the Servoy R&D team some VFP demo's and inspired them to add some of those features to Servoy.

We already concluded that we have to stop looking back at what we will be missing but instead look ahead to what we will gain. Overall Servoy is much easier to learn than Visual FoxPro or .Net. Many resources are available to get you up to speed quickly:


  • Many tutorials and webinars on the Servoy website
  • A Developer's User Guide
  • A Developer's Reference Guide
  • Several Sample Applications
  • Plugins and third party tools/applications for Servoy (see Marketplace)
  • Servoy Developers World
  • Servoy classroom training
  • Servoy Wiki Forum

Cloud Computing


A new buzz-word these days is cloud computing.

Solutions such as google-apps make it possible to access your documents from anywhere.


Servoy solutions are cloud-ready and there are hosting providers that support Servoy to effectively run your apps from the cloud.

Zero Deployment


Although Servoy claims zero-deployment that is not entirely true. Applications will have to be deployed to a server and that server will have to be installed and configured once. For the smart-client the client-computer will need the Java-runtime to be installed, most computers allready have it. After the server is up and running and the clients have the Java-runtime, applications can be deployed without the need for the user to exit the application. The next time he starts he will automatically get the new version.

Powerful Reporting Options


Reporting never was one of VFP's strongest features although the Report Writer sufficed for most.


One of the strange features of Servoy to us VFP developers is the ability to use a form as an on-screen report in a way that is very similar to the way that we are used to defining reports with data bands.

Where we can only report to a limited set of output destinations Servoy can report to PDFs, HTML, Excel, XML etc. easily but it doesn't stop there for some really powerful reporting JasperReports is included which is a opensource reporting plugin comparable with Crystal Reports.

Scalable


Servoy scales from a single user on a low-power machine all the way up to tens of thousands of concurrent users without having to rewrite a single line of code. Servoy can run on a desktop all the way up to high-end mainframe servers -- on any platform that supports Java 1.4 or higher.

Open Source


The Servoy application platform is written in Java and the source code is open source. If Visual FoxPro was open source the community could decide to continue its evolution so that's definitely an advantage. Also for the hard-core programmers, this makes it possible to develop Java-plugins and extend the functionality of the platform.

SaaS - Software as a Service


As stated earlier the Servoy licensing model is something the Visual FoxPro developer will definitely dislike at first.


However, from a commercial point of view, it also offers some interesting new possibilities such as being able to rent your solution to the client instead of selling it. 

There are numerous scenarios and licensing options to consider, you can set up a Servoy server that is shared by your clients or you can set up a Servoy application server on-premises, particularly when the client wishes to keep the data in the company. Also, secure cloud computing options are available. Always ask Servoy for advice so a solution can be tailored to meet your specific needs. Note that creating an offline standalone single-user application is also possible with Servoy Runtime.

Agile Software Development


What the heck is Agile Software Development? Please read the definition on Wikipedia.

In short the Agile Manifesto states:


We are uncovering better ways of developing software by doing it and helping others do it. Through this work we have come to value:


Individuals and interactions over processes and tools

Working software over comprehensive documentation

Customer collaboration over contract negotiation

Responding to change by following a plan


That is, while there is value in the items on the right, we value the items on the left more.

  • Customer satisfaction by rapid delivery of useful software
  • Welcome changing requirements, even late in development.
  • Working software is delivered frequently (weeks rather than months)
  • Working software is the principal measure of progress
  • Sustainable development, able to maintain a constant pace
  • Close, daily cooperation between businesspeople and developers
  • Face-to-face conversation is the best form of communication (co-location)
  • Projects are built around motivated individuals, who should be trusted
  • Continuous attention to technical excellence and good design
  • Simplicity
  • Self-organizing teams
  • Regular adaptation to changing circumstances


Once again this list emphasizes the similarity between the development process in Servoy and the development process as we know it in Visual FoxPro.


All you have to do now is to download the free community edition and try it out!