You may have noticed this has been a slow week in Cringeville. Well now the truth can be told. For the past five days I've been held captive in Amsterdam by a small group of mad Dutchmen. They locked me in the tower of a Swiss hotel, trundled me into a van with three other captives, drove us around the Dutch countryside until we were disoriented, and forced us to consume vast quantities of rich foods delivered in thimble-sized portions accompanied by heroic volumes of tangy Teutonic wine. It was Hell.
Only through extreme cunning did I manage to escape -- leaping into a passing cab and smuggling myself aboard a flight to the States so I could file this report.
The company behind this sinister scheme is named Servoy. Their master plan: to convince me and a handful of other tech journos they had a new way to build custom applications -- and, possibly, do battle with Microsoft's .Net empire.
Their idea is simple and compelling. Servoy's tools allow developers to build a single Java-based application that connects to any SQL database, runs under any desktop operating system, and displays on virtually any device -- whether a smart client on the desktop, a thin client browser, or a mobile handset.
To build a simple app in Servoy 4.0 you choose from a library of prefab objects, drag them into place on a form, and connect them to the relevant data stores. In a live demo, Servoy CEO Jan Aleman built and published a form-based GUI that pulls information from three disparate databases in about five minutes -- or less time than it takes me to create a Windows Live ID. The form looked and functioned identically, whether it ran on desktop or inside a Web browser.
The ability to create (and maintain) a single code base for Windows, Mac, Linux, and Unix desktops, as well as a variety of browsers, could save software geeks oodles of time and money. Servoy claims its customers can develop Web apps many times faster than by using Microsoft's .Net, and for a fraction of the cost.
Of course, even Microsoft products look good in demos, and without more independent testing it's impossible to evaluate those claims. Using these tools under real world conditions is where the banden meets the straat. I'm nowhere near a big enough geek to figure that one out, even if I wasn't still recovering from a smoked eel- and Trockenbeerenauslese-induced coma.
The notion of an unknown Dutch company taking on Microsoft's .Net is a little like Schwinn Bicycles deciding to compete head to head with General Motors, or a fuzzy white bunny squaring off against an anaconda. It's not for the squeamish.
Though Servoy has managed to get its technology inside a few big companies (Sony, Wells Fargo, Proctor and Gamble), it has almost zero name recognition. Its primary customers are independent software vendors that build custom CRM and ERP apps for small to medium businesses and then slap their own labels on it. You could be using Servoy-powered apps and not even know it.
They also have a fraction of the resources Microsoft could bring to such a fight -- provided of course the giant anaconda looks up and notices that Servoy is in the cage with it, baring its big bunny teeth.
The road to digital nirvana is littered with the remains of much larger companies Redmond has digested or destroyed. But even Microsoft is starting to recognize that it's not just a Desktop/Windows world any more. And you have to admire Servoy's big brass ballen.
.Net or .Not? What do you use to build Web apps? Looking to change? Post your thoughts below or email me here -- cringe@infoworld.com. Top entres qualify for koele giften.
More news, commentary, and predictions from The Industry Standard:
- Prediction: Apple hits 18% share









Comments
Those Dutch are famous for sneaking up on the powerful ... and crushing them.... ha ha!
Servoy ROCKS! :-)
It's not just .Net that are in the crosshairs.
Also the pure-Java-shops can save a LOT of time (and therefore money) using Servoy.
Servoy as a product is awesome but their support for the product is down right refreshing. They very much listen to their customers and their development cycle is FAST!
I haven't seen many companies being so responsive to their development community.
P.s. Nice usage of some dutch words in the article ;)
After four years developing with Servoy we are convinced that Servoy does stand up to real world conditions - including several successful projects for the (very demanding) British National Health Service. Yes the .NET empire is much larger, but an increasing number of ISV's are building Servoy apps and discovering how profitable it can be.
The other great bonus of working with Servoy is that they are so responsive. Servoy's own Engineers (and CEO) monitor the Developers Forum and problems get discussed openly and usually resolved pretty quickly.
re "The notion of an unknown Dutch company taking on Microsoft's .Net is a little like ... a fuzzy white bunny squaring off against an anaconda. It's not for the squeamish." -- think "killer bunny from The Holy Grail."
After using a 4 gl tool for 20 years i am now (also) building with Servoy.
It is a tool with a very nice aproach, it is relatively young but has mature features
and they are always open to discuss feature requests.
It is a very refreshing company with a very active and supporting userbase (Servoy forum)
If you have a question, you will receive answers from other developers and/or Servoyans very fast !
If you run into a bug there support is swift (lightspeed compared to some other vendors)
Here is a highly secure (HIPAA compliant) solution, built entirely with Servoy. It is a internet enabled solution that lets medical providers collaborate with each otherWe are proud that it looks like a social communication tool instead of the database that it is. We are pleased with the Power of Servoy and its people, http://www.clickcare.com
I was lucky enough to stumble upon Servoy back in 2003 and had a somewhat similar reaction: who are these crazy Dutchmen and why does it sound as though they have just what I've been looking for?!?
I develop research databases for the study of cancer and had the problem of wanting to be able to:
a) develop different solutions quickly and make them user-friendly/searchable more or less out of the box
b) integrate different databases from different vendors (Sybase, MS SQL Server and Oracle) all on the same form showing related patient information securely from those different databases.
c) be able to deploy and manage these solutions simply and remotely
d) use industry standards (SQL, JavaScript, XML, Eclipse, etc.) so that it is easy to train new people in its use.
One of these solutions manages patient care and thus must be operating 24/7. I am happy to report that it has been doing this without interruption since 2004 other than when by mistake a hospital IT person literally pulled the plug on the server one day!
When we decided that our good old 4GL wasn't up to the job anymore we starting looking at what to write our ERP system in. Because of the nature of our business we cannot use an off the shelf product as it would cost millions to customize. We've looked extensively into .Net but found it way to improductive to develop in. We found some upcoming web-technologies such as Ruby promising but they could not give us both a native app and web from single code base and additionally have no Enterprise background. Servoy's R&D comes for a large part from Baan Labs, one of the largest ERP vendors and know how to deliver scalable and secure environments.
Developing in Servoy is a dream unlike using other technologies and when we evaluated the cost comparison for developing in .Net or Servoy it was a no brainer. Whilst there is a small learning curve, if you have ANY javascript knowledge then it will be a breeze.
The guys that develop this software are also using the technology and are consistently adding more features as a direct response to feedback from their customers. Moving to an Eclipse base has further pushed this product forward and we can develop our software for both the web and the desktop for ANY platform from one code base.
Our team of developers work together checking in and out solutions and it makes project managing far far easier. When a new version is available it is pushed to the app server and all clients then have the new version on their iPhone, web browser or desktop client throughout the country wherever they may be located.
I cannot praise this software or the development team enough!
Want to see real world .NET comparisons with Servoy? Check out this page: http://servoy.com/generic.jsp?mt=393&taxonomy_id=792 . A Bug tracking solution was built in Servoy, and in .NET. The .NET version was outsourced to a very competent .NET development. Long story short: The Servoy version was done in about 45 hours. The .NET version is at 446 hours and still counting.
My company has been developing exclusively with Microsoft products for many years. This has recently changed. I had been looking for a RAD environment for web-based apps. We are a small developer and need tools with a lot of leverage. Servoy seemed to fit the bill.
I ask my clients to make a leap of faith that a small company can be as good a vendor as a large one. So I gave Servoy the benefit of the doubt. I'm glad I did, the products and services are first-rate, the management and staff are great to work with, and we plan on a long-term relationship with them.
I much rather prefer to work with a -great- tool that can be compared with a blazing fast and friendly bunny, other then to work with something that's similair to a giant old snake :-)
I'm on a 2 person development team using Servoy.
We've been using Servoy for about a year to develop a large complicated application. Servoy 4 just came out and will be a big improvement, but we're still on version 3.5.6 until 4 has time to stabilize.
Our application is a "smart client" so the benefit of a single code base for "smart client" and web deployment is not an advantage for us, but may be a big advantage for others.
So is Servoy such a great tool? Many have answered yes and love it. My advise is to spend at least a month working with it before committing to Servoy.
So what is wrong with Servoy? Here are some problems we have had:
1. Multiple Developers: We have had 2 and sometimes 3 developers - all at remote locations - working against a Servoy development server. It was very very slow when using the "Multi-Developer" feature, just about unusable! Turning off "Multi-Developer" gave a very small speed improvement, but not enough. Also, there were many lockups and much lost code. [Servoy 4 will avoid this problem - see below.]
2. Version Control: Forget about it! There isn't any! All your Servoy code and objects are stored in a SQL Anywhere database in various tables that make up the "Servoy Repository". But, Servoy 4 will integrate with Subversion, etc. and this solves this problem and also #1 as you can then work entirely locally and merge your code changes with other developers via Subversion or some other version control systems.
For ourselves, I finally had to spend some time writing a utility (using C#.Net by the way) to extract all Servoy code and objects out of the database and into files for integration with Subversion version control. It also updates the Servoy Repository from these files. So we have now solved problems #1 and #2. (Again - Servoy 4 will also solve these problems, but it still appears to be too buggy for us to make that move - yet.)
3. Debugging: The debugger has many problems. Your break-points can disappear (and sometimes reappear). Stepping through your code will often fail (and then it is running without stepping.) And, data provider calculations cannot be stepped through or have break points set. Also, execution is not necessarily serialized. Some unwanted and dangerous multi-threading seems to be occurring in regards to form events. (Servoy 4 should fix much of this - I hope - as it is integrated with the Eclipse IDE.)
4. Form based development: Basically you have your database tables (with fields and calculated fields) plus global variables (Servoy calls them data providers), and you have forms. There is not much in between. You can define relationships between tables and also between global variables and tables. You also have form methods and global methods. Servoy 4 will provide the addition of form variables. There is no object model between the database and your forms. Form elements can only be bound to data providers (database fields, calculated fields, and global variables). So, it is difficult to encapsulate your object model and associated business logic. Servoy does allow the creation of modules (each containing forms, etc.) and the inclusion of one or more modules within another. This helps, but it is not ideal. Servoy 4 will not solve this problem. For some applications, this may not matter, but for others it may matter a great deal. For our particular application, I consider this a great drawback.
5. The Servoy IDE: For Servoy 3.5.6, the IDE is very frustrating to work with. Many operations are modal. You cannot search any of your code that is in "calcs". You can only fully work in one module at a time and cannot easily move things around from one module to another. Again, Servoy 4 should offer much improvement in this area.
Finally: to use Servoy is to buy into the Servoy way of doing things. You lose some flexibility and are dealing with some huge "black boxes" which you cannot look inside. Be sure that these are things that you like before committing to Servoy.
On a positive note, Servoy is cross-platform and can run pretty much anywhere Java can run. It has good data binding:. It is easy to create form layouts and link form elements to database fields. But, if you have a complex application, don't let this apparent simplicity deceive you. (see #4 above.) Remember that your code must be maintained, updated, modified, and re-factored...
I look at Servoy like any other framework for building complex applications: it has its pluses and minuses, areas where it excels and others where there's room for improvement. I'd say point 4 in Mike's post above (an intermediate object model between forms and data sources) is an example of something that will likely need refinement in the future. The other problems have all been solved in the current version of Servoy.
If you do find Servoy's basic framework for development and deployment suitable for your project -- typically a database-driven application with complex business rules and cross-platform deployment -- then the productivity it gives the developer is unmatched and allows for that truly agile development style that we're always hearing about. You're trading a small amount of flexibility for big gains in development speed and in my experience with the product it's always been a very easy trade to justify.
Over the last year I've actually found Servoy to be a huge drag on my productivity with its terrible performance for multiple (remote) developers, buggy and inefficient IDE, buggy runtime (pre-empting form events), and lack of a true object model (see #4 above).
I can only hope that Servoy 4 fixes many of these problems (and I know that it does fix some of them - see above), but so far it has been too buggy to use. We've tried several Servoy 4 versions without success. (We have a very large application - in the Servoy Repository database we have about 17000 rows in the servoy_elements table.)
So, I would not say that Servoy gives a developer unmatched productivity. There are many available alternatives to using Servoy that I would explore if I were starting development today. Many of these leverage Java as does Servoy and look much more appealing to me. There are various GUI frameworks for use directly from Java or with JRuby or Jython, etc. There are also, for Web applications the Google Web Toolkit, and many other frameworks and tools. You can always use Hibernate directly instead via Servoy. Or, if you want to really increase productivity you can use the db4objects object database if that is a good fit for your type of application (your object model is the database!) saving you a lot of db to object and back transformation code.
So, before committing to Servoy, look around : )
In reply to the posting above from Mike VanZant (a developer in our company), I should add that there is no perfect software nor framework out there. As management/shareholders, for us Total Cost of Ownership and Time to Market is essential. We've found Servoy to be amazingly helpful with regard to both. Frameworks like .Net and Java are unproductive and too complex for us - as a small ISV - to be able to compete in this marketplace. I believe we've been able to reduce by nearly 50% our development schedule through the use of Servoy.
I've gotten some feedback on my prior comments that I was bashing Servoy. I hope that is not the case. I don't want to bash Servoy.
I did describe some of the very critical problems we faced in working with Servoy 3.5.6, especially with multiple remote developers, but I also made it clear that Servoy 4 solves most of those issues. This is very welcome. I am glad to see these improvements and also for Servoy's commitment to improving their product.
I also mentioned alternatives, but it is only fair to do so and is important for anyone considering Servoy to make sure that it is the right choice for them. One of the major strengths of Servoy is that it is a comprehensive solution. Servoy delivers many strong technologies as an integrated whole. With many alternatives, some offering more flexibility, integration is additional work to be done and may not be an easy task. This is a trade-off to be considered.
I'm very glad to see the many improvements in Servoy 4 and look forward to using it soon.
Post new comment