Wednesday, July 21, 2010

Powerful Web 2.0 Alternative to PowerBuilder

Rich Bianco over at the Displaced Guy blog just wrote a post entitled WaveMaker delivers for the cloud like PowerBuilder did for client-server. In it, he talks about using WaveMaker to migrate PowerBuilder applications to Java.

He makes a number of great point in his post. Here are the key take-aways

1. PowerBuilder is a powerful product but developers need a rich internet alternative.
"I’ve spent most of my career doing PowerBuilder development against every major DBMS and I still believe it offers productivity beyond anything on the market for client-server applications. But the writing is on the wall for client-server and rich internet applications and WaveMaker are the future."
2. WaveMaker is particularly easy to learn for PowerBuilder developers because it uses the same visual development and data window-like concepts
"WaveMaker is the first development tool since PowerBuilder to catch my attention and keep it. WaveMakers’ claim of building a functional enterprise web application without needing to write Java code is for real. In a single day, I’ve taken an existing PHP / MySQL web 1.0 application and re-created a good portion of the core functionality using WaveMaker."
3. WaveMaker is just plain fun, particularly for PowerBuilder developers!
"From the day I downloaded WaveMaker and gave it a test run I knew that it was the next step for me as a former PowerBuilder developer. Not and not only am I still having a blast but I feel as confident as ever to tackle the challenge of developing enterprise web applications, or robust SaaS solutions."
It has taken WaveMaker almost 3 years to build a worthy replacement for PowerBuilder. We certainly have not achieved the full breadth of functionality that developers can get from mature client/server tools like PowerBuilder, MS Access and Oracle Forms. However, for developers who want a fast and easy way to build Web 2.0 applications, WaveMaker rocks!


Rman1968 said...

Thanks for sharing this. I wanted to add something that might be overlooked. For PB developers the ability to look at the generated Java code is priceless. Looking at real-world Java code is the best way to come up to speed with Java skills, way better than any book or course. As a PowerBuilder developer and Java wannabe, I can't wait for the day I have the proficiency to extend WaveMaker and incorporate two key features that in my mind would take it over the top, at least in the minds of experienced PB developers who were spoiled with PB's unsurpassed productivity with dated client-server applications.

Christopher Keene said...

@rman - ok, now you've got me curious. What are the two key features that would take WaveMaker over the top?

Rman1968 said...

I just noticed this Chris. Hmm, okay you got me on the spot here so I'll put my money where my mouth is.

The big one, WaveMaker is great at generating code after your datamodel is in good shape however in the real world no matter how hard you try there will likely be late data model changes. From what I found WaveMaker takes some serious understanding as to what is going on behind the scenes if you wish to salvage your work and incorporate data model changes late in the game. Now in PB you can do this very easily by modifying the data source of the "data-object".

The second weak point I see is the difficulty in swapping databases (e.g. development, testing, qa, production support) when the database is exactly the same or close in structure. In PB we simply change the connect string, and if we use the graphic SQL painter and are careful not to use any 'non-generic' SQL you can even swap a production application between MS SQL Server and Oracle and the dataobject will handle this seamlessly, granted there are exceptions.

You've already got a great start so if you can overcome those challenges it would be huge.

I've talked to many PB developers and they all tell me about the first one, where they feel fine at first but then once a late data model comes up they get lost and and up rebuilding their GUI from scratch, I'm sure a Java programmer could probably work around this.

Great job though, PB really kind of sucked until version 3, but had a few very buggy versions (the even ones like PB 4, PB6) where a dozen system crashes per day was to be expected so considering this you guys are doing some good stuff. :-)

p.s. I think I mentioned this to you before but you may have misunderstood. I am very experienced with data-modeling with the various tools, but I've rarely had a project that didn't have a few data model changes between development and deployment.

Hope this helps.