Open discussion of IT Business

Enterprisey IT Journal

Subscribe to Enterprisey IT Journal: eMailAlertsEmail Alerts newslettersWeekly Newsletters
Get Enterprisey IT Journal: homepageHomepage mobileMobile rssRSS facebookFacebook twitterTwitter linkedinLinkedIn

Enterprisey IT Authors: Skytap Blog, Application Security, Lori MacVittie, Andy Klee, Yakov Fain

Related Topics: RIA Developer's Journal, Java Developer Magazine, Enterprisey IT Journal

RIA & Ajax: Article

PowerBuilder, Java, Flex, Agile Programming

Who cares about the soup, when so much is going on in the kitchen

From Farata Systems blog

Ten years ago I've been doing PowerBuilder and my mentality was different: first, I was the best friend of business users, and second I did not really worry about what's under the hood. I could do stuff quickly, or using the modern jargon, I was an agile programmer without even knowing this (on the same note, lots of people were creating Ajax applications five years ago without knowing this, but it's off topic). I'd ask the business user Joe, "How do you usually do your business, what would you like to have on this screen, what step do you do after this step?" Most likely Joe did not really know, but I'd still give him a wide American smile: "No problem, I'll come back tomorrow and will show you something". Mary, yes you, "What's the most important word in my last sentence?" No, Mary, not "I'll come back", but TOMORROW. Not next week, not next month, but tomorrow.

With DataWindow component it was easy. I did not have to pull Joe's teeth, I was able to create a working prototype in a day, show it to Joe next day, all of a sudden his glassy look  would become friendly and understanding. Now Joe  was back in control: "No, Yakov, you did this part wrong, I want it differently". No problem, Joe, I'll see you tomorrow. Mary, what was the most important word in my last sentence? Good girl, Hasta maniana! I did not really know how DataWindow worked, but I trusted this component. PowerBuilder used event-driven programming model, which was clean and simple. An object A triggers an event XYZ on object B, and this event can carry a payload - the data that the object B needs to operate. Using the modern jargon it's called Inversion of Control or Dependency Injection design pattern. Whatever. What's important is that the object B does not know about the object A. Loose coupling in action.

Then I became a Java programmer, and my mentality have changed . Big time. I realized that the user's screens are not that important, because I have an intimate knowledge of how programs work internally. Screw users. I'll spend majority of my time designing a multi-tier system that does not really depend on any specific screen and is universal. Joe still asked me, when is our next meeting? In a month. Mary, do not raise you hand. I see that you know the most important word here. Why in a month? Because I could not do a decent prototype sooner (Java folks, easy, easy - Matisse was not even in the picture yet), and more importantly, we started to make fun of PowerBuilder or Visual Basic programmers who were thinking screens, while us, cool Java gurus, knew how the motor worked inside! These guys were enjoying a ride and counting cup holders, while we were thinking sparking plugs and combustion chambers. We were enjoying the process of programming in itself.

There is this Russian stand-up comedian Mickhail Zhvanetskiy, and one of his excellent phrases was "Who cares about the soup, when so much is going on in the kitchen!"

Now, with Flex I started to care about the soup again, because I can. I can change the prototype twice a day, and Joe does the same with his business requirements. No six-freaking-sigmas documentation. Napkin on the knee is back, and it works. I'll give the final OK to my server side Java team only after Joe is 100% happy.

Besides, with Flex I can have the best of both worlds: the source code of the Flex framework is available, I can learn how it works inside and override it (not always it's as easy as it should be, but it's doable).

Working with Flex promotes agile development. If you do not know what it is, get a really good book Agile Java Development with Spring, Hibernate and Eclipse. This is one of these mis-titled books, which has not much to do with Spring, Hibernate and Eclipse other than the fact that it comes with the working sample application written with these tool/technologies. It presents an excellent overview of the development process in an enterprise Java shop. You'll learn how to set up the environment, gather business requirements, and build the project deliverables in agile way.

Dear user, I'm your friend again! Now I'm as flexible as Flex can be. What do you want me to change?

More Stories By Yakov Fain

Yakov Fain is a Java Champion and a co-founder of the IT consultancy Farata Systems and the product company SuranceBay. He wrote a thousand blogs ( and several books about software development. Yakov authored and co-authored such books as "Angular 2 Development with TypeScript", "Java 24-Hour Trainer", and "Enterprise Web Development". His Twitter tag is @yfain

Comments (0)

Share your thoughts on this story.

Add your comment
You must be signed in to add a comment. Sign-in | Register

In accordance with our Comment Policy, we encourage comments that are on topic, relevant and to-the-point. We will remove comments that include profanity, personal attacks, racial slurs, threats of violence, or other inappropriate material that violates our Terms and Conditions, and will block users who make repeated violations. We ask all readers to expect diversity of opinion and to treat one another with dignity and respect.