Download Discovering Uniface: A Java Developer`s Experience

yes no Was this document useful for you?
   Thank you for your participation!

* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project

Document related concepts
no text concepts found
Discovering Uniface:
A Java Developer’s
Discovering Uniface: A Java Developer’s Experience
About vision4health
A specialist in laboratory
diagnostic software,
vision4health sets new
standards in the market for
laboratory diagnostics with
trendsetting diagnostic
applications. At the center is the
concept of a multidisciplinary
system, including links between
the various institutes, such
as specialist laboratories,
hospitals, general practitioners
and patients. Work sequences
of every diagnostic discipline
are thereby supported,
from laboratory medicine,
microbiology and transfusion
medicine to pathology.
A Varied IT Background
If you’re looking for someone who can compare different development
environments based on first-hand experience, Georges Herzet is better
placed than most. He has an extensive and varied software development
background, including considerable Java programming experience: He has
worked on Java applications for both iSeries and Windows. He also has
experience of the Synon tool/code generator and of 3GLs including C++,
as well as J2EE in the WebSphere environment.
When Georges began his career, he worked as a developer at a
manufacturing plant using C. He later moved on to a software factory that
worked extensively with Java. At that time Java was becoming popular and
he worked on several GUI projects. Before joining vision4health, he worked
with J2EE for an accounting web application which focused more on
analysis and led a small development team.
Georges started using Uniface in 2010 when he joined his current employer,
Uniface application partner vision4health. “I was astonished to find that
our Uniface application has successfully been deployed and maintained for
nearly 20 years. In the IT world, products tend to have a short lifetime, but
at vision4health we have kept our product, Molis, current and modernized
it by moving from one version of Uniface to the next – and it keeps on
working reliably.”
Becoming Productive with Uniface Quickly
When he joined vision4health, Georges had no previous knowledge of
either Uniface or the Molis product. He was recruited, he states, because of
his general IT knowledge and willingness to learn other technologies. On his
side, he was interested in the technology vision4health built.
By way of preparation, he received informal training from colleagues
– vision4health has around 10 Uniface developers – and spent some
time reading online Uniface documentation. “With a background in
Java and other development tools, Uniface was easy to learn. I certainly
wasn’t banging my head on the wall and felt I got a good grasp of the
development environment quite quickly.”
He and his boss agreed that Georges would begin familiarizing himself with
Uniface by undertaking small programming projects. These would give him
the opportunity to learn about the company and its products while doing
useful work. The tasks Georges initially worked on were ones like updating
screen layouts in older parts of the system. The fact that he started with
smaller projects helped with getting started.
With Uniface, he found he could immediately be productive at completing
these tasks. He found very close parallels between Java and Uniface. For
example Java events in GUI and triggers in Uniface relate to the same
concepts. Gradually, he progressed to more complex jobs, with colleagues
on hand to mentor if needed. Within a short period of time, he was able to
take on much more complex Uniface work, and after a year he was working
independently on his own projects.
Discovering Uniface: A Java Developer’s Experience
10 Ways
Uniface Helps
You Succeed
Three years on, he has managed projects throughout the lifecycle from
adding new functionality and forms, to installing or updating the product at
client sites. “We have a lot of sites – 200 customers – and they all use our
product in slightly different ways.”
Perhaps a bigger challenge than learning Uniface was the need to
understand the business aspect of the application. “In healthcare, we have
a very specific business environment with a lot of clinical content that you
have to learn gradually, which is what my manager arranged for me to do.
The business logic is a very complex aspect of the job, and there I’m still
Why It’s Easy to Switch from Other
Environments to Uniface
Learning Uniface from a Java programmer perspective is quite
straightforward because many concepts are common to both Uniface
and Java. “When building forms for the Windows environment, a task
like closing a window is quite similar – the events work in the same way.
Recognizing familiar concepts like this in Uniface makes it easy to make
the jump between the two worlds. I found that my knowledge of the tools I
used in previous jobs made it easy to apply similar concepts when building
Uniface applications.”
Georges adds: “The other languages and environments I have used helped
and in fact, it’s not always easy to tell which knowledge came from where.
Some concepts are common across a variety of environments. For example,
Java programmers know all about classes, and similar concepts exist in
Advantages of Uniface’s
Development Environment
Although there are similarities between Uniface and his earlier working
environments, Georges also discovered that Uniface has a number of
advantages over them.
Technology independence
One such advantage is its genuine technology independence. Molis runs
in the client/server environment that is preferred by its user organizations
– mostly clinical labs. This means that the code is split between Unix and
Windows, but that’s no problem with Uniface, Georges says. “You don’t
have to worry about the differences between platforms, which is great.
Java is supposed to be platform independent too, but in practice it’s more
complicated and you can get some unwelcome results such as additional
time and effort spent for testing and verification. With Uniface, you really
can run the same code on both platforms, even though one has a GUI and
the other doesn’t.”
Discovering Uniface: A Java Developer’s Experience
Another satisfying aspect of Uniface for the developer is that the
technology is constantly on the move, keeping pace with technology
trends. You don’t know what IT will look like in a few years, and a lot of
Java is supposed to be
platform independent too,
but in practice it’s more
complicated. With Uniface,
you really can run the same
code on different platforms.”
Georges Herzet,
Software Developer
today’s tools will have disappeared, but Uniface has been on the market
since 1984 and is still here and constantly evolving. Uniface has always kept
up with the latest technologies, so you, in turn, can keep your application
up to date, for example in terms of currency, without the need to rewrite
That, of course, is also the attraction for user organizations, and particularly
software houses such as vision4health, Georges points out. They can
write an application in Uniface, secure in the knowledge that Uniface will
update the technology platform for them. That means they can focus on
making the application as complete and sophisticated as possible, and on
responding fast to business change.
Another major advantage is Uniface’s productivity. “Coding takes a lot
longer with Java – simply because you have to write a lot more code. I had
a problem once because I had coded a GUI in Java and when I showed
it to my manager he said, ‘That’s nice but it took you a lot longer than I
expected!’ This was because it takes a long time before you get the right
result. With Java there is a lot of experimenting in the development
process. You don’t get that sort of disappointment with Uniface, because
things happen smoothly and you end up getting what you expect to get.
With just a few lines of code you can create, for example, a user interface
with a Windows look and feel,” says Georges.
He explains that with Java this is very cumbersome because you have to
code so much, or you have to choose the right open source frameworks
to get your application to work, versus mainly just coding business logic
in Uniface. “You get the same results with a lot less code and this is a huge
benefit—which also makes my manager happy!” concludes Georges.
The productivity benefits apply to maintenance as well as development.
“Maintenance in Java is always a challenge because it depends not just on
your knowledge but also on the skills of the person who wrote your classes.
When you have to do maintenance that’s a huge amount of code to look
after. The code in Uniface is more compact, and it’s also easier to predict
where you’ll find a particular bit of logic. In Java there is a wide range of
programming styles so if you want to fix a bug or make an enhancement,
you have to spend time searching for the piece of logic that you need
to change. There are typically many possibilities, particularly if several
developers were involved. With Uniface, you have a much better idea of
where to start, therefore shortening the maintenance cycle altogether.”
Discovering Uniface: A Java Developer’s Experience
Code quality in Uniface also has an advantage over Java since it is
standardized. With Java the quality is very much dependent on the
expertise of the programmer, Georges says. “You’ve got to know about
classes, otherwise you can end up having to change a lot of stuff. So the
quality of a Java project depends on having people on the team who
really know about class design; this is a major shortfall that can have big
implications for a project.”
In Uniface, on the other hand, because of the model-driven approach to
inheritance, use of templates and less dependence on coding, developers
are able to focus on business logic, so there is less to go wrong. In
addition, the structured nature of Uniface development means that good
programming practice is enforced.
Job Satisfaction in an Agile Environment
When you start using Uniface, the point of the job shifts away from
programming complex code to delivering solutions meeting end-user
requirements quickly, Georges has found. “That suits me because, although
younger developers may be excited by the latest development tools, with
the hype that surrounds them, after you have seen a few development tools
and languages the excitement wears off and you’re more satisfied by giving
the customer what they want in a short time.”
14,273 L.O.C.
Lines of Code
“With Uniface, you get the
same results with a lot less
code and this is a huge benefit.”
1,958 L.O.C.
Based on Development Productivity Study, PetPlaza reference application
Discovering Uniface: A Java Developer’s Experience
That sort of satisfaction is easy to find with Uniface because it lends
itself to an agile approach to development. “For example, you can show
a cosmetic change to the screen within a few hours, or even a working
prototype within a day. It’s often hard for users to describe what they want,
but showing them a quick prototype makes it a lot easier and with Uniface
it doesn’t take much time. With Java, it would take a lot longer because you
would have to write the ‘plumbing’ to run the GUI as well as the business
logic, so the project takes on another dimension and it becomes more
difficult to manage customer expectations.”
Because of the way application architecture works in Uniface and the
guidelines that enforce where business rules are located, it is easy to make
changes quickly. Georges explains: “There are no rules in Java, anywhere,
and with a bad architect your code can be all over the place. With Uniface,
even with bad development practices, there are guidelines that enforce
where code is located.” Working in an agile way this is important as you
spend little time searching when adding new functionality.
Part of a Global Community
Georges has recently started getting directly involved with the international
community of Uniface users, through and for example, by
visiting the lab in Amsterdam on behalf of his employer. “It’s great to have
the opportunity to meet the Uniface team and find out what’s in the Uniface
pipeline and even try it out. I’m looking forward to getting more involved
with that as I’m now the deputy for vision4health’s main Uniface contact.”
A Java Programmer’s Uniface Wish List
• A “code assist” function like in Eclipse or Java – to suggest how to
carry out particular functions
»» Thoughts from the Product Manager: This is one of the most common
requirements we hear about for Uniface 10, and as a result it’s an important
piece of functionality that we will be including.
• “Refactoring” – if you need to add a parameter, the system could
find all the calls to the function in question and make the change
»» Thoughts from the Product Manager: With Uniface 10, the new IDE will give
the ability to achieve this kind of functionality.
• Easy, lightweight version control
»» Thoughts from the Product Manager: This is such a huge topic! Ultimately,
there are so many options for version control and development shops
always have their own unique ways of managing source. Uniface 10 will give
developers the ability to have project driven development, and to share
Uniface components across multiple projects. Also Uniface 10 will encourage
(but not enforce) development techniques such as sandbox, which leaves
the developer much more in control.
• More national language support inside the HTML widget/browser
»» Thoughts from the Product Manager: The HTML widget is quite a new control,
and as we continue to mature it, we will enhance the functionality.
Discovering Uniface: A Java Developer’s Experience
A Career Path That Benefits Both Developers
and Employers
Like other developers who’ve cross-trained in Uniface, Georges believes
that employers are inclined to overestimate the need for lengthy Uniface
experience. “For a job like the one I do now, I don’t think you need to recruit
someone with years of Uniface experience. What you need is someone
with a strong IT background who’s flexible enough to apply it to a different
environment, and who is interested in tackling business challenges rather
than just technical ones. Fortunately my manager agreed with me and gave
Georges Herzet’s IT Background
• After graduating in 1993 from the University of Liège (Belgium) with a Master’s
Degree in computer science, Georges’ work experience includes:
• Working at a cable manufacturing plant (Kabelwerk Eupen AG) on projects
written in C for the internal IT system used for industrial process control
• Developing with Synon (a development tool used on IBM iSeries), targeting
sales, accounting and process control applications
• Java development, mostly GUIs in a client/server setting (also with iSerie
• Managing a small team of Java developers while project managing a J2EE webbased accounting project
Discovering Uniface: A Java Developer’s Experience
About Uniface
Uniface, the most productive, reliable development tool in the industry,
provides a model-driven environment for the rapid development of scalable
enterprise mission-critical applications. Learn more at
Uniface B.V. Hoogoorddreef 60, 1101 BE Amsterdam, The Netherlands
© 2016 Uniface B.V.
Europe: +31 (0) 20 311 62 22
Global Offices:
US: (248) 233-0866
Email: [email protected]