lunes, 19 de enero de 2009

Visual FiveWin, Do you really need it ?

Maybe what I'm going to write here today doesn't like to many people, but, that's why I'm here.

I've been following FiveTech's new project: Visual FiveWin, I've downloaded it, tested a little bit, and after reviewing it I think that call it "alpha release" is to be very optimistic (a lot), I would call it "pre-release alpha", it's still many nights, many research hours and many many maaaaany programming lines away to approach to sutff that products already have, such Visual xHarbour for example, for not to mention Xailer, Visual xHarbour is an advanced work in progress but it's still far away of what Xailer has to offer actually, under this circumstances Visual FiveWin has a long way to run.

I' aware that to build an IDE (Integrated Development Enviroment) it's not a piece of cake nor a single programmer work, Xailer's team took over two years to have a working product, Visual xHarbour has taken the same amount of time and it's not ready yet, Visual XBase++, almost 3 years in the oven and we haven't seen so much about it, some screenshots but that's all.

To build an IDE requires a lot of commitment and dedication, not of a lot of programmers but those should be highly skilled ones, I'm sorry if someone feels offended, but many of those FiveWin heads have already gone away.

On the other hand, everybody knows how Antonio works, he starts working hard in a project, gives it all, makes some impresive stuff and after 2 months or less he gets bored and leaves it aside until he feels "the call" again, to mention: FiveWin Pocket PC, after FiveWin Harbour one of the most advanced products, useable, but still with a lot of lacks, FiveLinux, I don't really know how many people is using it and if the final applications are stable enough, what about FiveMac ?, knock knock, is someone out there doing something with FiveMac ?, by the way, does FiveTech has something really useable for Macintosh ?

That's why I suppose that Visual FiveWin is an Open Source project (at least that says in Google Code, remember what happened in 2003 with the attempt to release FiveWin to Open Source) , I understand that without the collaboration of other programmers, Antonio, working alone, has a very hard way to go, please notice, I don't doubt about AL's programming skills, but I hardly believe that working alone, he could deliver a working IDE in a reasonable time.

Now the question is..... Does FiveWin really needs an IDE ? or FiveTech has already noticed that EVERYBODY is going the IDE way (Xailer, MiniGUI, Visual xHarbour, C3 and even the same Xbase++), and they don't want to be left away.

Some time ago the IDE was not necesary, in Antonio's own words, and translated from his comments in the FiveWin's forum:

FiveWin's working model is the same of Clipper's:

* You can use the source code editor you want.
* You can use a BAT or make file, or any make tool available for compiling.
* Even it's based in object oriented programming, you are not forced to work with objects, but you can use xbase commands in a comfortable way.
* The PRG files are available, there's no hidden files which you cannot have access to.
* It's "lineal" programming, not "thousand doors" programming such VB style.

Think for a moment that this basic rules have made of Clipper a standard. CA-Visual Objects, for example tried to change these rules and look where is the product and the IDE today. The same happened to Visual dBase and Borland threw it away.

Translated from FiveWin's forums

But today things are different, it' necesary to go the IDE way and sacrify FiveWin's advantages, as you will read later on, in order to have an IDE.... be careful, what happened to CA-Visual Objects or Visual dBase may happen again.

Two years ago I wrote an article in the Spanish blog about this, the final question wasn't if FiveWin needs and IDE the real question was if the FiveWin programmer was ready to use an IDE, is the FiveWin programmer going to change ?, what's the price to pay for ?

In our Xailer training we have noticed that it's easier to understand how the IDE works for the Clipper or (x)Harbour programmer that have never used FiveWin, same happens to the programmers comming from other visual enviroments such Visual Basic or Visual FoxPro, the FiveWin programmer has more difficult to understand the new programming style since they want to solve the problems the FiveWin's way. Myself, in my first attemps with Xailer used to work with dbf tables "by hand" (USE, APPEND, REPLACE, etc) until I discovered the DataControls, or used to write the source code myself to define a data browser, when Xailer has powerful tools to visually design a browse faster and effortless with the same final result.

Some years ago, the pretext to keep using FiveWin was the supposed "total control" of all the aspects of the application programming, but of course, If you have to write ALL the application, with the single help of a resource editor such PellesC or Workshop, the programmer has all the control (until some "internal" or class fails), but.... in this times, when we have to work faster and deliver results in less time, how pratical is to be wasting such valuable time writing and writing lines and more lines of code when you have tools that do the job for you ?.

Current FiveWin users that would want to use Visual FiveWin should be aware of:

The programming style is QUITE different and the way to organize the application also is, then you have to change the way you think in order to use the IDE and get the most of it.

Your current working applications made with FiveWin will not be able to be used with Visual FiveWin, then you will have two kind of applications: the "hand written" ones and the "visually designed" ones, you can, of course, to share programming routines between both, but these routines will be only "blind process" I mean, those that don't have a display output.

For sure the IDE will not generate command-based code, I mean, you will not find a DEFINE WINDOW ..... instead of that, you will find hundreds of things like; TWindow():New(....), so, object oriented programming will be a NEED. This is an interesting point, in my personal experience with more than 5 years teaching FiveWin I've noticed that more than the 50% of the FiveWin programmers don't have any idea of what OOP is, another great percentage uses it, but they don't really know what they are doing, they only "copy-paste" what they read in the newsgroups, if a oBrw:Refresh() solves the problem, good for it, add such line in the code, what does it ?, where it comes from ?, who cares !, solves the problem. Just a very little percentage has been brave enough to go into the deep of the product to modify current classes and even less FiveWin programmers are able to write their own classes. All the IDEs I know are 100% Object Oriented, if the most of the FiveWin programmers don't know how to work with OOP, how do they pretend to use an IDE ?

What about those programmers with old versions of FiveWin ?, which ones ?, the ones of Harbour or the ones of xHarbour ?

And this is a huge problem from the begining, what compiler are you using ?, Harbour or xHarbour ?, which version ?, because it's clear that every FiveWin programmer has his own (x)Harbour release, In my personal case I have 3 different releases of xHarbour installed on my computer, the one that works with Xailer, the one for console mode applications to be used with XEdit, and the one I use to support my legacy FiveWin applications. So, the IDE is going to work with which compiler version ?. This is not a problem for other IDEs, C3 uses it's own compiler, Xailer uses its own distribution of the Open Source xHarbour, and Visual xHarbour works with the xHarbor.com compiler release.

Problem apart are the the FiveWin's libraries, migration from release 2.xx to a 7.xx or 8.xx release may be a real headache, because many classes have change form one version to another or they work in a different way, more functions and controls are added, etc..... to provide compatibility with previous releases will be a real nightmare, to be honest, If I were FiveTech, I would forget about backward compatibility, what for ?, just for testing porpuses ?, what if I make some enhacement supported by an old version that does't work with the newer versions ?, just imagine, if we have 4 releases of FiveWin every year, to support 3 years of previous releases you will need 12 versions of the IDE, not to mention the compiler: Harbour or xHarbour, who is going to keep updated the source code for every single version ?, it's complicated if not impossible.

There's still a lot of work to do to have something useful, but I wonder:

  1. If my current working programs will not work with Visual FiveWin.
  2. If I have to change my programming style and way of programming.
  3. If I have to learn Object Oriented Programming
  4. If Visual FiveWin will not be compatible with my current (x)Harbour version or with my current FiveWin libraries.
  5. If I have to change all those things...

Why not to use a tool designed to be an IDE ? I mean, if you have to rebuild the full application because it will not work with Visual FiveWin, If you have to learn new stuff (OOP), and if there's no a release date of an stable version, why not to start the change today ?, actually you have 2 good options already available: Xailer and Visual xHarbour.

I'm not pesimistic, but I think FiveWin is comming late to the (x)Harbour IDE party, let's wait to see if there's enough party for it, because it can be the last to come and the first to go, but, thus my wise grandma use to say... give it time.

No hay comentarios:

Publicar un comentario