You are on page 1of 4

Progress 4GL to Java Conversion

is a service offering which uses a proven


methodology and unique tools to automate
the process of converting a Progress 4GL
application into a functionally identical pure
Java application. The database schema is
converted and all data in the Progress database
is migrated into the relational database of
your choice. The converted application
looks, behaves and processes exactly as the
original. While the source code is re-factored
and transformed into a completely different
form, the users of the application cannot tell
the difference. This allows for a drop-in
replacement without user retraining or other
adverse business impacts.
Using high levels of automation allows Golden
Code to offer this service at a reasonable xed
price and with an elapsed time to completion
measured in months rather than years. As a
result, this unique service offering
profoundly changes the economics of
switching away from the Progress 4GL.
It is now feasible for all Progress 4GL ISVs
to quickly and permanently increase prot
margins by eliminating all payments to
Progress Software Corporation.

Progress 4GL
to Java
Conversion
For Independent Software Vendors
(ISVs)

The Catch-22

Increase Profit:
Permanently eliminate all
payments to Progress
Software Corporation.

Gain Freedom:
Realize complete
independence from
Progress Software Corp.

Improve Technology:
Re-factor / modernize the
application and move to
the Java platform which is
a significantly more vibrant
technology ecosystem.

There are many reasons driving ISVs


to leave the Progress environment. But
with a huge investment in 4GL technology, the corresponding switching
costs have often been large enough to
keep organizations captive. Until now.
Golden Codes unique service offering
profoundly changes the economics of
switching. The high level of automation
and the proven track record virtually
eliminate the risk of switching. For ISVs,
switching away from Progress is now
the best choice.

Preserve the Huge


Investment in a Custom
Software Product. Large software products (such as ERP applications) can take hundreds of person
years and decades of elapsed time to
build. The millions of lines of source
code encode an immense amount of
knowledge upon which a business is
based. Hundreds or thousands of customer organizations are trained for and
are dependent upon your application.
The value of such a software product is
enormous.

Shed the Language


Handcuffs. Expert knowledge
embedded in a software product has
been encoded in the Progress 4GL, a
form not easily transported. The software product is the basis for a thriving
business but its dependence upon the
Progress language environment can
come with a very high annual cost.
Despite a large nancial incentive, most
ISVs cannot justify the cost and risk of
moving to an alternative environment
using traditional approaches. Many
organizations are held captive by their
investment in this major asset which is
locked into a proprietary environment.

Remove Articial Limits on


Prots. Most large Progress 4GL
applications are licensed and maintained with an embedded 4GL runtime.
This usually translates into a requirement to share a percentage of application revenue with Progress Software
Corporation. For this reason, there is
a permanent percentage of an ISVs

revenue which can never be claimed by


that ISV. For large ISVs this percentage
can run into millions or tens of millions
of dollars annually. While the application is dependent upon the Progress
4GL runtime, such fees represent a
signicant and permanent reduction in
net income.

Move to a Modern Language.


The core design of the Progress 4GL
was made in the early to mid-1980s.
That design pervades all aspects of the
language despite incremental improvements made over time. A languages
design not only denes what an application can easily do, it likewise denes
a set of limits and constraints. Complicating this problem, the Progress 4GL
language was not designed to be easily
extended:
While it is possible for third parties to
provide APIs in Progress, it is neither
easy nor does the result appear as a
natural part of the language.
Progress Software Corporation
(PSC) has incrementally added to
the language over time, but every
such attempt has taken the language
further away from the promise of
English-like syntax without ever
breaking out of the core design
limitations.

Bridge the Technology Gap.


Since a single vendor controls Progress
evolution and maintenance, the environment simply cannot keep pace with
more modern environments like Java,
which enjoys industry-wide support.
Java has a more modern design and
has always provided a very extensible
environment. Its evolution is managed
by an open process known as the Java
Community Process, whose membership ranges from large multinationals
to individual, independent developers. Java has attracted over 5 million
developers. It runs on a huge range of
hardware platforms. There are countless
libraries, tools, books and other facilities
available, with the majority coming from
organizations outside of Sun Microsystems. Since Java now has an open
source (GPL) reference implementation,
it is a completely non-proprietary

environment. There is an entire industry


investing actively in Java. By comparison the Progress 4GL ecosystem
is small. Every day, the technical gap
widens.

Due to these factors, developer productivity in Progress 4GL over the long
term arguably is no better -- and may be
worse -- than in Java.

Options for Switching. Over


Eliminate the Soft Costs of
Platform Captivity. Improvement of a Progress application over
time is articially limited. External data
access and application integration is
difcult with Progress 4GL, especially
when compared with Java. PSC has
control over what technology is available
and how partners can compete in the
ecosystem. Opportunity costs to an ISV
of missing features or integration are
usually measured in lost sales, but this
can be hard to quantify.

Enjoy Comparable or Better


Long Term Productivity. Many
long time Progress 4GL developers
claim that the Progress environment is
the most productive application development environment. As a rule however, it
is the quality of the development team
-- not the language -- that yields the
best result in the shortest period of time.
And when considering Javas object oriented programming model, code reuse
capabilities, tools, and the broad range
of third party libraries and open source
projects, the Progress 4GL productivity
claim is much less certain. Furthermore,
any 4GL application of real complexity is
likely to be harder to maintain over the
long term than the equivalent in Java:
4GL syntax is signicantly more
complex than 3GL syntax.
4GL syntax is often inconsistent,
in many cases it is arbitrary or
confusing.
The large amount of implicit behavior
causes many material aspects of a
program to be hidden.
Lack of modern features for structuring and/or reusing code causes heavy
reliance upon shared variables, cut
and paste, the preprocessor and
other techniques which increase
maintenance effort.

the long term, the costs and limitations


of the Progress 4GL are signicant,
leading organizations to reach their own
individual tipping points where they
nd that making a switch is preferable to
doing nothing. Each such organization
must choose from one of the following:
Traditional Option: Rewrite the
application using a dedicated
development team.
New Option: Automated con-

version of the current Progress


4GL application to a functionally
equivalent pure Java version.

Comparing
Switching Options
Traditional Option:

Rewrite
A parallel development team writes the
replacement while some number of
additional development resources maintain the current application. Completing
a functionally equivalent application
requires 5+ years. Development costs
for larger applications may be $40MM+.
The replacement application is not compatible (in user interface and behavior)
with the original, so there is a huge effort
and barrier to customer upgrades. Such
projects are open ended and success
cannot be determined until after the project is nished. There is a very high rate
of failure due to the extreme complexity,
long lead times and often remote nature
of the development team (for offshore
resources).

A NEW OPTION:

Automated Conversion
Golden Code Development (GCD)
has invented the technology and
methodology to enable the automated conversion of arbitrarily large
applications from a closed/proprietary language into an open and
modern language (such as Sun
Microsystems Java). GCD has also
implemented a set of conversion
rules and a completely compatible
runtime environment to fully handle
90%+ of the Progress 4GL language
features. The remaining features
are being added over time based on
client requirements. The resulting
application contains all the unique
business logic and an identical look
and feel such that it is a drop in
replacement for the original application. From an end-user perspective,
there is no difference! The dependence upon the original proprietary
environment is completely eliminated while all business functionality
and behavior is preserved. All data
is retained and taken forward for the
replacement application. As part of
the service, the database structure
is converted and the data itself is
migrated from the proprietary environment into the clients choice of
open/standard database.

Benefits of
Automated Conversion
Greatly Improved Prots. The
conversion costs are xed and one-time
only, but the elimination of fees to Progress Software Corporation is perpetual.
This yields a potentially huge permanent
boost to net income.
Quick Turnaround. The automated
process and tools allow a team to
handle a large conversion project in as
little as 6-12 months.
Fixed Price. This greatly reduces risk
to the client.
Retain Existing Business
Processes. No expensive business
re-engineering projects get in the way of
selling customer upgrades.
No User Retraining. The users are
unaware of the transition.
Seamless Cut-over. Customers see
no disruption during implementation.
The old system continues running until
the new system is in place. The switch
can occur literally overnight.
Technological Freedom. Proprietary language and platform limitations
are eliminated. Any relational database
can be used. The client obtains the economic benets of an open and vibrant
ecosystem.

Vendor Independence. Included


with the project is a source license to the
Progress-compatible runtime environment created by Golden Code. There
are no ongoing fees associated with the
use, distribution or modication of the
runtime. There are no tie-ins to Golden
Code or any other vendor.
Database Independence. Through
the use of Hibernate and Java Database
Connectivity (JDBC), even the backend relational database choice is now
open. All popular databases (and many
less popular ones) are supported, from
proprietary to open source. No source
code changes are required to change
relational databases. The choice is one
that can be made at the time the application is implemented in production.

A compatible schema is maintained,


but some improvements are made
(e.g. relational integrity is added).
The application gets a single,
common, standard directory-based
security and conguration model.
The runtime security model is signicantly stronger than that possible with
Progress 4GL.
Standardized runtime facilities
provide deep visibility via auditing
and logging. This may be important
for initiatives such as Sarbanes-Oxley
compliance.

Lowest Cost Alternative. Automated conversion costs signicantly less


than a rewrite.
Technical Improvements.
(partial list):
The programs are re-factored (to the
extent possible while maintaining full
compatibility) to separate UI, business logic and data access.
Dead code and dead les are removed. Duplicate code is removed
in some cases. All code is emitted in
a more consistent format. There is
reduced reliance on implicit behavior.

Golden Code Development Corporation


5450 McGinnis Village Place, Suite 101
Alpharetta, GA 30005 USA
TEL: 770-360-9755
EMAIL: info@goldencode.com
WEB: www.goldencode.com

Copyright 2006-2007, Golden Code Development Corporation. Golden Code and the GC logo are registered trademarks of the Golden Code
Development Corporation. Visit us at www.goldencode.com.
Progress is a registered trademark of Progress Software Corporation.
Java and JDBC are trademarks or registered trademarks of Sun Microsystems, Inc.

You might also like