First, let me say - I think Servoy is a beautiful product, a huge step in truly delivering desktop client RAD dev with RDBMs integration. I am writing this post in the hopes that I might find out if my reasoning for deciding not to develop with Servoy is valid and to see if any alternatives exist for the obstacles I encountered.
A few months ago I downloaded Servoy and began developing an app. I was blown away and the product was truly inspiring, but I ran into what I saw as major obstacles to truly leveraging its potential. I did finish the application and it was beautiful - except for the following points. Can anyone correct me OR give me a glimmer of hope that future versions of Servoy will resolve these issues.
1) SQL - Because Servoy relies on its own query writing to fetch records, it limits the ability to take advantage of complex SQL statements. Yeah, I know - I used the sql functions to fetch rows but as far as I could tell, things like aliases and related fields were not well supported. I found the workaround to be a mess - building calculation fields meant creating dummy fields in MySQL so I wouldn't have to wait for large datasets to be calculated by Servoy.
I have read that Servoy uses advanced caching to speed performance, but the result is that Servoy IS NOT truly separated from the datasource. It requires the datasource to be dependent upon it. Why can't Servoy just act as a results set tool, at least as an option. Utilizing SQL to perform key calculations and to limit results and returning them directly to the client/server seems far more efficient.
I guess what I am saying is that a truly separated model would act more like lasso or php on Apache where it queries the DB and then handles the returned rows before displaying.
2) Data Dependancy - Yeah I know Servoy says it is completely seperated from the datasource but the fact is the datasource can't be messed with outside of the Servoy environment. This was truly dissapointing. I thought of a hundred ways to use Servoy but they almost all required other users to add, update or delete datasource info via a web interface. Ecomm and other situations make it impractical for everyone to access a datasource via Servoy client. I know this point has been discussed in previous posts, the issue of flushing client cache, etc but why can't clients just retrieve the records every time? Web sites do it all of the time. Or if Server would utilize a special required timestamp field in the DB in conjunction with key values it would know when records were updated, added or deleted.
Thats it - my only two gripes. I found everything else great and I still hope I might be able to utilize Servoy in the future. For now I have gone back to web application development to meet my needs.
Thanks for any comments.