20 May 2007

Client/Server apps still going where no J2EE/.Net have gone

Last night while I was chatting with an old friend back in the Philippines to check how they were doing in terms of application development in the enterprise arena. It came to a point where it's my turn to tell a story of how am I doing here in this little island. I had to tell them sadly that nothing has been a breakthrough here since the "dotcom boom" and the "dotcom burst", these guys were just riding the hype of the J2EE "promises" from some five years ago and now it's taking toll. Up to now, J2EE (or even .Net) has put more burden on the developer's learning curve of acquiring new skills instead of delivering real business value to the users, there are more talks on frameworks, platforms and theoritical methodologies that doesn't really work in the real-life enterprise development. Business owners are increasingly frustrated, developers are also increasingly frustrated and now they don't know which tools to hang on to, AJAX? Huh! AJAX is a tool for web applications that are trying hard to be client/server application, so why not do the real stuff? Stop wasting time learning different AJAX toolkits. And web applications that requires AJAX are not enterprise-level ones, unless Google and Flickr can be categorized as web-based ERP systems but that is absurd.

So going back to my conversation with an old friend. He just told me that they have upgraded to PowerBuilder 10.5, for sure those with uninitiated mind will surely laugh at this. But way back in '98 PowerBuilder and Visual Basic are the hottest contenders in the client/server rapid application development space. But now, Visual Basic is virtually dead and PowerBuilder is still raging on and delivering what it didn't promise. Users are still happy, developers are happy and can go home at 5:30pm no need to pretend trying to look like a genius that cracks code until 1am. Everything in the enterprise should be really, really simple. don't waste time on unnecessary integrated or "out-of-the-box", "bundled-altogether" promises of some of tech vendor shouting at their minds "We Simply Fry" and will tell you they're going to do it in Spring and Hibernate with some domain modelling strategies for problems that has been solved long ago by tools such as PowerBuilder, Visual Foxpro. These tools are laughing stocks nowadays because they don't look very "technical" and they don't sound too "smart" if you're using them. But up to now, no single tool has ever beaten the power of the DataWindow. But hey, speaking of VFP, Codeplex and SEDNA. They don't make too much noise these days but still packs a lot of punch.

Frankly, J2EE guys who haven't touched a code of any client/server RAD tools from '98 til present, should really, really go back to the drawing board. That's why client/server apps will go back with the vengeance. J2EE/.Net's frustration-to-happiness ratio is just really unacceptable.

7 comments:

Keith Weds Cha said...

I think VB is not dead.

Just look at they have for VB.NET for the next version and you'll be amazed how big Visual basic has leaped since the days of VB6.

DrKwak said...

Ha. I agree. DataWindow is really an effective feature of Powerbuilder. Right after college my first project was to migrate a Paradox 5.0 application (enrollment,financial,grading system -- my schools system) to Powerbuilder 7.0/Sybase ASA. That was in 2001. Up to this day, the system is still rockin'.

On Paradox 5.0 story.. I know 2 medical school in bicol who still uses it for their enrollment,payment,grading system. I used to knock my head off when trying to debug or recover corrupted tables. They're still using the Paradox-based system up to this day..

Amelio ES said...

VB.NET has not gone where much of the old VB6 had gone before.

With .NET, one has to cope with an Asteroid Field as one has to keep track of Service Packs, Framework builds and DRM licenses installed in each and every PC. It certainly would not be a pleasant voyage and expect to hit much walls and detours in trying to reach one's destination.

VB.NET is 6 years old and Microsoft had to kill off VB6 2 years ago to force a shift. In addition, Windows Forms, the client part in client/server, does not have GPU support and has already been deprecated in favor of Windows Presentation Foundation.

Ian said...

I'm a Filipino, currently working as a PowerBuilder developer here in Singapore. Our application is on a three-tier architecture with business logic residing on Sybase EAServer 5.2 and the database on SQL Server 2000. I've been programming three-tier and client-server applications for almost 7 years.

A year ago, I did a Swing-based medical claims insurance application for a US company. And with that opportunity, I was able to compare the two tools that I love, PowerBuilder and Java. Since I was doing many mission-critical PB apps in the past, I'm more inclined in PowerBuilder with regards to productivity. That's the reality with 4GL tools. Productivity is in mind. You just want to finish the job in the least possible time, but of course without compromising the quality. And PowerBuilder has been doing a good job in that arena. There are challenges but there's always API, OLE, ActiveX, COM, and even Web Services to help you. And you're right that there's still nothing out there that matches the power of the Datawindow technology.

I had lots of shortcomings with Swing. There were many "I wish Swing had these" situations. Simple and mundane commands/tasks in PowerBuilder would be very very complex in Java Swing. And I understand that. Java is there for you to play around and exploit. I can always "extend" Java's native API and create my own APIs to achieve the same level of functionality and usability of PowerBuilder. I can also get third-party Swing controls. But if time is not on your side, then you're left with few options.

I'm more of a desktop GUI app guy. I hate web apps that's trying to pose as client-server apps. It's just plain humurous and stupid. It's like trying to teach a dog how to plow a field like an ox. Some things are just not meant to be. Web application is not the answer to deployment headaches and remote accessibility.

My clients still prefer desktop applications over web applications for the obvious reason that users are more accustomed to the look and feel of good old window-based applications. Anyways, maybe one of these days I'll kick myself and write more helpful Swing APIs to reduce my work.

Jared said...

Hi Ian, nice one! I would suggest to start exploring Eclipse RCP, without so much fanfare, it's way better than Swing.

Actually, the desktop UI toolkits I'm focusing on right now are SWT(the core of the Eclipse RCP) and wxWidgets a cross-platform native GUI toolkit.

Sad to say, I only touched PowerBuilder briefly way back in '99. But it seems, moving forward the enterprise direction is really going back to the desktop again so I may need to find time to explore PB 10.5 and see what it's worth now.

Ian said...

You can also try the prior versions PB 10 or 10.2. It's not much difference. PB versions now can support unicode. The only attractive add-on in PB 10.5 is the menu toolbar icons.

Yeah, I've seen the beauty of Eclipse. Its widgets are based on SWT right? But unfortunately I haven't tried SWT. Somewhere on the Sun Java forums, I have read that SWT has some problems in MAC because of the AWT-SWT bridge. Is that correct or just plain hoax? But it wasn't the main decision why I went with Swing. It was more like I have covered a lot of ground already in Swing than in SWT. Anyways, where can I find quick walk-throughs and tips in SWT?

I have used Eclipse before. Eclipse is usually bundled with the Sybase EAServer installation. Sybase bundled it for creating Web Services prior to PowerBuilder 10. Usually when we deploy PowerBuilder NVO(Non-Visual Objects) to EAServer, we use Eclipse to "expose" it as a web service. There was also a time I had to create some servlets and EJB components to be deployed in EAServer and I wrote it all in Eclipse using the WTP plugin. But Eclipse doesn't merge cleanly with EAServer. You have to use the Sybase Eclipse plugin(aka Sybase Workspace) that costs around $1400, otherwise you have to do a workaround via Tomcat just to avoid coding it manually.

There's a movement in the PowerBuilder world, and that's the obsession of the managers to convert the client-server apps to web apps. That's why the release of PowerBuilder 11 is highly anticipated since it can produce .NET code. There are also other tools like Appeon and BluePhoenix. These can magically migrate PowerBuilder c/s apps but usually the migrated apps' performance out of these tools is bastardingly slow. Nowadays many companies, including my company, focus their attention to .NET for their dream of a web application. In these times when so many IT buzz words hanging around, it's very easy to be lost in all the hoopla and drama.

Yeyi said...

Hi, Another PB developer here in SG. It is true what Ian said regarding the frantic migration of C/S to Web-based apps. Although I am still using PB now, I have also used Java and still using .NET. I enjoy the fact that I can do more technical stuff in .NET compared to PB. But productivity has always been the reason why I prefer working in PB whenever possible. But the ease of use of PB is a double-edged sword since it is also VERY easy to make a crappy application. (I guess that can be said for any platform) But in the right hands, it can do wonders for your social and family life =)

BTW, I enjoy reading your blog, it rocks =)