A quick look at Windev, Windev Mobile and Webdev
I’ve been heads-down coding using this set of tools and I’ve been meaning to write a really in-depth review on each separately something I will still do. I must admit there is a part of me that selfishly wants to not write anything about it, because frankly, it’s my secret weapon! I have been absolutely amazed by this trio of products, and even more amazed at the low adoption (especially in the US).
The makers of these products is a French company called PC Soft. I ordered the product from the US distributor. PC Soft have always had intriguing marketing but have been lambasted for the pictures of the woman they use throughout their brochures in shall we say…provocative clothing or poses. Probably not a big deal by European standards but not really appropriate by conservative ole US standards. In some corporate environments, reading the PDF brochure would be borderline inappropriate given the imagery. I believe in the past even the product installers had these images and this caused issues for people attempting to install the app server on a client site. At any rate, I’m also lead to believe the imagery has been toned down somewhat in recent years. I for one must admit I’ve been quite enamored by the PC Soft girls Anyway, some highlights appear below of my experience with these products. I’m not going to repeat everything here that you can find on the vendor website, so you may want to check that out too.
Collectively, these three products are referred to as the Wx products below. They are currently on version 17 and it shows. They are mature, slick, highly powerful and very well thought out environments. I think it puts Visual Studio to shame and I wouldn’t even try compare it to Eclipse which currently ranks high on my suckage list.
I started with Windev as I had an idea for a standard Windows application. In essence, it’s an application for Internet Marketers to run their business, keeping track of projects, clients, expenses, income etc. Somewhat of a crossover between Quickbooks and CRM but specifically for the IM industry. Taking out the bells and whistles, my application came down to fundamentally being client/server type application with a GUI front-end to a database. As good as Visual Studio may be, it still makes you “work” to create what should be routine tasks. Windev EXCELLED at making this application a reality. For starters, it is one IDE that contains everything you need. From UML modelling to ER DB model/editor, to Unit Testing, to source code management, to web services generation to creating installers etc. It’s all there. I pretty quickly mapped out my ER diagram and created the links and then started building the screens. I would say, INCLUDING learning time, it took me around 5-10 evenings of part-time work to get my basic application together.
This is the part of the family for creating web applications. I admit I was a little frustrated at first but as I got more familiar with the product, it started growing on me more and more. Coming from the J2EE world, I kept struggling to make the analogy about how I would do it in that technology versus this technology. Sometimes the best way is to just suspend what you know and embrace a new way of doing things.
You can deploy your site either as a native webdev site or as a php site. If you want to use native webdev, you are required to run the webdev application server. I think it’s well worth it given the benefits it gives you in terms of session management and general webapp administration. You can develop around this but managing your own sessions can be a pain with web development generally.
Webdev will definitely get its own detailed review later on in this blog, as I will give a blow by blow breakdown of my project I developed in it. Right now, I’m really really liking this product. The “problem” is that web development today has become a laborious task. J2EE killed itself with a ridiculous number of frameworks needed in a project (Hibernate, Spring, extjs etc etc). However, this is done (call me a skeptic) because its “pure” and makes code “maintainable”. So you have separation of concerns, MVC models, layers of abstraction, design patterns etc etc. For these hard core idealogists, webdev will be a dissapointment because it hides all (actually most, not all) of this from developers. Other products like Ruby/Rails are trying to address the mess that J2EE has become. Regardless, the current web world seems to have centered around J2EE, PHP, Ruby, Python and .NET as the major players. That makes introducing a new product particularly difficult. However, if a CTO worth his or her mettle would calculate TCO, Webdev would be a slum dunk winner in terms of productivity gains.
Next up is their product for creating mobile apps. The IDE, language etc is all similar to the Windev and Webdev products. So when I needed to create my iphone app, it took just a hour or two to get familiar with the differences for mobile. Within a few hours I had my simple app created and deployed to my phone. Windev Mobile can generate code for a number of different devices. Note though that you will still need xcode/Apple to create your final IPA for distribution to an iphone or the app store.
Clearly I need to allocate a complete review to Windev Mobile as I would like to give a detailed run down of the experience with it. I am busy finishing up both my big web site and the mobile app that accompanies that, and that will be a good opportunity to present the review in terms of a case study.
These products use their own proprietary language called W-Language. It’s very BASIC’esque. I know in this day and age, to mention a language as being proprietary is enough to scare people away, but it really shouldn’t. For one, this W-language is used across all three products, and the products themeselves offer multiple platform generation. So, with having learned this one language, I can write applications for Windows, Java/Unix, Websites, native iOS app, native Android apps and native Windows 7 apps!
The language itself is also very powerful yet easy to use. It offers both high levels of abstraction to make life easy but it does let you get down to the nitty gritty if you prefer.
As an example of its high level commands, look at “ScreenToFile()”. In an application, you typically have a number of fields on a form that need to be added to a database. Instead of manually grabbing the value of each field in the form and then passing it into a DAO (or similar), you can simply type ScreenToFile() and all the fields on the screen which are DB linked are automatically inserted into the File buffer, which you can then simply follow up with HAdd() to add the record to the DB. Quick, easy, and painless. The way it should be.
We all know the bane of modifying the DB table structure…you need to modify your code, stored procedures AND, worst of all, create a patch file to modify the production DB. Here, the Wx products shine by automatically picking up your DB modifications, proposing the code changes AND actually modifying the DB structure for you, along with versioning making patch updates quite easy.
I’ve used graphical SQL builder tools in the past and generally always came away dissapointed and ended up manually coding the SQL. However, the SQL builder tool here to create what they term “Queries” is actually incredibly impressive, and I’ve been able to create sophisticated multi-table joins with calculations, all through point and click.
The products ship with Hyperfile which is a free to distribute database engine. Don’t worry, you can use almost any available database (including MySql, Oracle etc), but using HF makes it very easy. HF itself is remarkably powerful and performance seems impressive so far. HF can be used in a traditional local database manner (think MS Access) or can be used as a full DB server managing multiple databases. It even supports being set up in a clustered environment for failover or loadbalancing requirements. It features many functions you would only come across in larger systems such as replication, frame compression and more.
The products themselves abstract you from the underlying database in that when I call, for example, HAdd() to add a record, the driver determines how to add this to the underlying DB, so switching out databases should be relatively straightforward.
This is a controversial item: The dongle! The Wx products are copy protected through the use of a dongle. Very important: This is only the development IDE’s. You can freely distribute the resultant applications you create and your end-users do not need a dongle. I don’t like using a dongle…and if the dongle fails I have to get a replacement from PC Soft which can delay my development. Even worse, if the dongle is lost or stolen, there is no deactivation procedure. PC Soft will require you to pay for an entire new software license, NOT just the cost of replacing the dongle. That, to put it mildly, sucks. I would much rather they had a “phone home” mechanism so that dongles can be deactivated and I just pay for the cost of a new dongle.
One of my biggest gripes with the entire Wx product suite is not related to the product itself but the lack of a developer community. This is a vicious circle: Less adoption means less of a community which means less adoption…and around and around we go. They do offer free technical support which gets mixed reviews. I have not used it enough to really have an opinion. They also offer a forum but they do not contribute to their own forum. So, you will see many questions go completely unanswered on the forums, causing great frustration. I believe PC Soft would be well suited to continue to let the community be developer driven, but step in to help or assist where need be. There is at least one third party forum which at least for me has been a life saver for when I got stuck a few times. Given that you are in essence using a proprietary product, it can be unnerving not having a big developer community so that you can easily google the issue or ask for help.
I call this an initial summary only in that I will be following up with more reviews. I can honestly say that at this point I am incredibly impressed by this set of products. I have been phenomenally productive and most of all, coding has become fun again. I’m not configuring 5 different frameworks and modifying xml files just to put up a simple app. Almost every day I used the product, I discover something new that makes me think “wow, awesome”. It’s really that good. I truly am surprised that there is such a lack of adoption, and it is sad that corporations are scared of “proprietary” technology. Yet, they are doing themselves a disservice by not looking at products like this. The productivity gains will be unbelievable.