discovering uniface: a java developer’s experience · experience of the synon tool/code generator...

8
WHITE PAPER Discovering Uniface: A Java Developer’s Experience

Upload: lenguyet

Post on 29-Apr-2018

225 views

Category:

Documents


5 download

TRANSCRIPT

WHITE PAPER

Discovering Uniface: A Java Developer’s Experience

WHITE PAPER

UNIFACE.COM

Discovering Uniface: A Java Developer’s Experience

2

A Varied IT BackgroundIf 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 QuicklyWhen 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.

About vision4healthA 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.

WHITE PAPER

UNIFACE.COM

Discovering Uniface: A Java Developer’s Experience

3

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 learning.”

Why It’s Easy to Switch from Other Environments to UnifaceLearning 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 Uniface.”

Advantages of Uniface’s Development EnvironmentAlthough there are similarities between Uniface and his earlier working environments, Georges also discovered that Uniface has a number of advantages over them.

Technology independenceOne 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.”

10 Ways Uniface Helps You Succeed

PRODUCTIVITY

RELIABILITY

SECURITY

INTEGRATION & REUSE

SCALABILITY AGILITY SUSTAINABILITY

TECHNOLOGY INDEPENDENCE COMMUNITY

PARTNERSUNITED PROGRAM

#1

#2

#3

#4

#5

#6

#7

#8

#9

#10

WHITE PAPER

UNIFACE.COM

Discovering Uniface: A Java Developer’s Experience

4

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 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 code.

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.

ProductivityAnother 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.”

“ 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

WHITE PAPER

UNIFACE.COM

Discovering Uniface: A Java Developer’s Experience

5

ReliabilityCode 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 EnvironmentWhen 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.”

“With Uniface, you get the same results with a lot less

code and this is a huge benefit.”

Based on Development Productivity Study, PetPlaza reference application

Lines of Code

14,273 L.O.C.

2,000

0

14,000

1,958 L.O.C.

Java

WHITE PAPER

UNIFACE.COM

Discovering Uniface: A Java Developer’s Experience

6

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 CommunityGeorges has recently started getting directly involved with the international community of Uniface users, through Uniface.info 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 automatically

» 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.

WHITE PAPER

UNIFACE.COM

Discovering Uniface: A Java Developer’s Experience

7

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 web-based accounting project

WHITE PAPER Discovering Uniface: A Java Developer’s Experience

UNIFACE.COM 8Uniface B.V. Hoogoorddreef 60, 1101 BE Amsterdam, The Netherlands © 2016 Uniface B.V. www.uniface.com/legal

Europe: +31 (0) 20 311 62 22 US: (248) 233-0866 Global Offices: www.uniface.com/contact Email: [email protected]

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 www.uniface.com