Since the dawn of time, it seems, ABAP was THE programming language for SAP developers.
That all changed in November, when cochairman Hasso Plattner and SAP opened their arms to Java and announced that SAP would become bi-lingual. Going forward, all SAP products will adhere to strict standardization, meaning that you can now choose which language to use based on personal preference.
So which tool is best for which job, and should a current ABAP developer spend the time and energy to become ABAP/Java bi-lingual? Java, or Java 2 Enterprise Edition (J2EE) to be specific, has certain advantages over ABAP. But that is not to say that good old ABAP is down and out. In fact, both languages have their own sets of pros and cons, as is to be expected.
Which tool for the job?
Karl Kessler, product manager of business programming languages and framework at SAP, concludes that when it comes to anything on the Web, Java is king. It is the obvious choice since SAP decided to implement its Web user interfaces in Java, he said.
"Java is a proven, well-established platform," Kratel said. "It provides powerful solutions across the board, from enterprise processes to mobile applications. Today, Java is not just for the Web."
ABAP, on the other hand, has the power of maturity and its integrated development environment, Kessler said. ABAP benefits from its robust server runtime environment, as well as the nice database programming capability. In that regard, ABAP has an advantage thanks to its powerful performance and portability abilities. ABAP is obviously not going to ride into the sunset anytime soon.
From a developer standpoint, Java and ABAP have many similarities, Kessler said. Both are object-oriented and are compiled to byte code, and both address the enterprise server.
As for differences, ABAP has a lot of 4GL features such as database programming, while Java doesn't. On the other hand, ABAP only runs on the server side, while Java handles both. Also, the syntax of ABAP is keyword oriented (like Cobol), while Java has a more C-like syntax.
Best to be bilingual
Like with most other things in life, it's nice to have a choice. Knowing both languages will allow you to pick the best tool for the job, based on the task at hand. In many cases, both will work equally well and the decision will be based purely on personal preference.
Kessler believes your background will help determine which language becomes your favorite.
"If you are a computer scientist, you will probably like Java," he said. "If you are a physician taking up programming, ABAP can make you productive more quickly."
If you already know ABAP, is it easier to learn Java? Obviously, any kind of previous programming experience will give you a head start in whatever new language you take on. In the specific case of ABAP developers learning Java, it should be even easier.
"SAP has done a lot in terms of introducing concepts into ABAP that are similar to Java," Kratel said, pointing to the similarities between the two languages.
One way to get a head start is to study ABAP's object oriented features such as classes, interfaces and exceptions, then start learning the Java syntax and compare their features, Kessler said. The two languages are very close to each other, and making the mental connection between what you know and what you're learning can speed up the learning process considerably.
Kratel thinks the best way to get started on learning Java is to tap the power of the Web. There are tons of articles, tutorials, and helpful free gizmos to get started.
Java is a relatively easy language to learn compared to other advanced programming languages. That said, its powerful and flexible nature can make it a complex platform to master. Getting good takes practice, lots of practice. Fortunately, online aids such as IBM's Robocode can help hone skills in a playful and fun way. If you want to get started quickly, Borland's JBuilder Personal is available for free and is geared towards learning Java.
There's no reason to get left behind, so make it a point to at least familiarize yourself with the basics.
"Java is of interest to every single ABAP developer out there," Kratel said. "If you're going to be programming in the SAP ecosystem, you're going to be best equipped to do so if you have both ABAP and Java."