|
I've received a very well written email titled "PowerBuilder developer needs some direction". Here's what the author (let's call him Joe) wrote:
Yakov, I have been a PB developer for the last 12 years. I'm hoping since you were a PB programmer awhile back that you can help me understand what the fuss is about with web development and/or point me in the right direction to better understand this. In the past few years, our department is doing less developing in PB and more focus is on developing web applications in Java. The applications are used within the company so there is no requirement to be able to access the applications from the internet. I also should mention that most of the business logic was in Oracle stored procedures and now the focus is on having the business logic in Java and using hibernate to talk to Oracle.
I usually thrive at learning new technology but I'm really having a hard time with convincing myself that this is the way to go. For me, PB is so much faster at building GUIs. It also made more sense to me to keep the business logic on the Oracle server so we wouldn't have a network bottleneck issue. And dealing with only PB and stored procedures made maintaining the applications real easy. Now I have so many parts in applications like JSF, Spring, Hibernate, Java workflows, Log4J and XML configuration files that it's not as simple to maintain these applications anymore. Also, since internet access is not required for these applications, I don't understand why we have to go this route and make these applications so complex.
I'm hoping you can shed some light on this because I really need to get past this.
I swear, I did not change a word in this email. I want to shed some light, but I really do not know what to say - the author is absolutely right - it's really hard to explain why majority of the business applications have to be so painfully difficult. I'll probably repeat myself, but let me say it again,
Using Web technologies in enterprise development is abused. At least fifty percent of the Web applications in any given corporation could have remained Client-Server using PowerBuilder or Visual Basic as a front end.
Can anyone explain why all these HR applications has to be on the Web? Why your order management system is written in Java and requires developers that know Java, JSF, HTML, JavaScript, Spring, Hibernate, XML, XPath, XSLT, Shell scripting, JDBC, Servlets, JSP and a couple of other buzzwords? Any PowerBuilder or VB developer who knows SQL could have created such applications in half time for half money. Why hire expensive Java Swing gurus to display data in a simple datagrid? Why hire even more expensive AJAX gurus to achieve even half of the functionality that any mid-level PowerBuilder developer gets off the shelf with an excellent DataWindow control that I've been using more than ten years ago?
Why overcomplicate programming? Guys, 90% of corporate programmers do not need to be computer scientists. Unless you are working in the algorithmic trading modeling area or have to calculate a trajectory of an object moving in space, PowerBuilder or VB is more than enough! Having a MS in Applied Math, I have to admit that during the last 15 years I did not need to use even a bubble sort algorithm. If you know how to write nested if-statements and a little of SQL you should be able to write majority of the modern enterprise business applications. And business users will be much more happier than they are now with this pletora of technologies!
So what can I say to Joe? You have to learn Java and JSF and Spring and Hibernate to survive and feed your kids. They will proudly announce how dependency injection (also known as inversion of control) helps. I'll tell you a secret - if you are doing PowerBuilder you already know all this - it's just sending custom events to a non-visual user object with all the data that this object needs. But hush! We do not want to make all these gurus angry. You'd better read all these article of smart programmers who will explain you how to make your life easier wit their XYZ framework. Someone pushed you in the corner in the first place for no reason, and now they are happy to suggest you how to make your life "even easier" than before.
All these technologies scared an average American away from CS majors, and friendly Indians are happy to help without having any idea why such superpower as AMERICA can not find people to program an Order Management System of a shipping company?
Joe, I'm sorry I can not give you any better explanation. Just surrender and learn all that they want you to know - you need to raise kids and take you wife to a nice one week vacation to Carribean. Just do not forget to put the Hibernate book into the garment bag right next to the swimming trunks and shades. They say writing Select lastName, firstName from customers is bad, and you need to create a Java class and an XML mapping to get the last and first name from a database table.
As one stand-up comedian recently said, "There is no difference between I'm sorry and I apologize unless you are attending a funeral". PowerBuilder is dead, and I am really sorry.
Thanks for the quick response and not replying with a bunch of marketing
hype. I'm sure part of my reluctance is the steep learning curve with all
these pieces. I guess I better get the books out.
I too have been a PB programmer from PB4 thru 7 and using the PFC. Having
watched the migration tutorials by Benefield with the early Silverstream
product, I couldn't wait to touch Java development . Alas, the price... So
I settled on being a DBA/ database developer
One thought to add. There is one valid reason for developing on the web
and not in Client/Server: deployment. Managing a web server is a much
easier IT task than deploying a C/S application to anything over 5-10
machines. There are ways to solve this, and I've seen a number of great
ones, but with diminished IT budgets and increasing workload that cut has
become obvious.
With the advent of SARS and other fears of infectious diseases,
corporations are increasingly developing emergency plans for having people
work from home in case of a full blown epidemic. Web based apps make it
easier to telecommute and to move the whole staff to a new building and get
them up and running quickly should your building be destroyed by fire, etc.
I wholeheartedly agree that j2ee development is overly complex and
cumbersome when compared to other tools such as VB or PB, especially EJBs.
Companies when considering the pros and cons of standalone versus web based
apps seem to prefer a higher cost of development to a higher cost of
deployment/support.
To put it simple, Web shines when you want to have seamless deployment.
Initially it was just HTML, then JavaScript came in. These two exists on
any user's PC, let not worry about Web browser JavaScript incompatibility.
Then Java was born with its concept of applets, which was the first rich
Internet application. But Java creators quickly decided that server side
applications should be their strategic direction. Sun was not able to pull
off an easy installation of a small footprint JVM on anyones machine. This
is where Flash Player shines. The fact that it exists on 98% of users PCs
makes it pretty much equivalent of HTML or JavaScript when it comes to
availability on your user machine. Do not get the right version of the
Flash Player? One button click and 20 seconds later you have it. Thant's
why I beliee that Flash Player is the best environment (it's a VM running
compiled code) for rich Internet applications. As to PB developers, Flex
seems to be a natural transition for them - event driven, object-oriented,
RAD tool. But...you should know at least basics of the server side
programming (preferrably Java).
So the root of evil is that deployment problem was solved in wrong way:
there was (is) a need for deployment of client code. Plus there is always a
need to have client-server transport for data. So instead of developing
right code delivery mechanisms (something besides ActiveX with trojans and
Java with disabilities) industry decides to merge client-code transport and
data transport. We get HTML applications (mess of data and presentation)
with all associated complexities and limitations.
Sometimes I miss my VB days. Specially when I take a side trip down Swing
lane...
I came across this blog when searching for a PowerBuilder Eclipse plug-in.
It was a compelling read. I recently learned PB 7 as part of a
PowerBuilder to ASP.NET migration project. I was pleasantly surprised to
see that PB 5 to 7 was ahead of its time, with its object-orientation, data
binding (DataWindow), built-in support for validation and default values,
strong database support to make it easy to do SELECTs, UPDATEs, INSERTs,
and DELETEs, and a fairly easy-to-use GUI builder. It's obviously not as
scalable as today's options but that is an unfair comparison. I also don't
like the proprietary way PBLs are packaged. However, I know Sybase has
provided to the community ways of getting at the binaries. I'm not sure if
the output has to be XML but I've read of some intriguing ways of
outputting as XML, using an XSL transform, and using the result to automate
migrating PB Windows and DataWindows to .NET or Java. Yes, PB was ahead of
its time!