Eclipse revisited – New pros and cons
Hi,
This is going to be an extremely small blog post because time has been a very rare commodity around these parts lately.
So here it goes. I’m forcing myself to use Eclipse (again). This time it might stick. It has improved enough for me to break even or maybe even be more productive using it than good ol’ SAP GUI. It still has a lot of issues (for me) though. Here’s a quick list which adds to this list created by Florian Henninger, A wishlist of features – ABAP in Eclipse.
Disadvantages/annoying things
- Pressing ALT+F8 to start a transaction (like SE11 for data dictionary) takes forever, if it has to “search” for it.
- I’m one of those crazy people that actually creates documentation for classes/methods. I’m completely lost as to how to do this in Eclipse. Also, description on method parameters show up when you use code completion, which is a nice feature. But apparently you can’t create these descriptions using Eclipse, which doesn’t make any sense.
- (Implicit) Enhancements are impossible. So, anytime you need to do this, you HAVE to use SAP GUI.
- Can’t have the tree explorer organized to see the includes in a program? In places where people “stuff” everything in the same package (which is very common), the “Project Explorer” becomes completely useless, and it would be very nice to “restrict” this explorer to a certain program, as you can do in SE80.
- Code completion doesn’t recognize global parameters?
- Can’t activate an include used in more than one main program.
- I have no idea on how to create an enterprise service out of a function module… On SE80 I just right click on it.
Advantages
- The only REALLY nice and productivity increasing feature (for me) I have found so far: using quick fix to create a new method.
That’s it from me.
All in all, I think I’ll keep using it, but I do hope it keeps improving… For the “regular” abapper, I still don’t think it’s an obvious alternative to SAP GUI. It might fit some people better, and some others not.
Cheers,
Bruno
Honestly I find it disappointing that in three years that SAP hasn't been able to make eclipse a full replacement for SE80 with no SAP GUI screens launched. I understand the limitations of earlier netweaver releases, but with Netweaver 7.40 SAP should have released an AIE that makes SE80 / SAP GUI obsolete for developers(unless you are doing dialog programming 🙂 ).
Instead we are stuck with a half-finished product based on a client-server model of development. I still think a native HTML5 development environment that allows you to edit code from an iPad/android tablet would have been the better solution(zero-client footprint). SAP really needs to bring the fiori experience to development tools(the WEB IDE is a good start) and free abap developers from the SAP GUI especially when maintenance of the business suite is extended to 2025.
Perhaps we need to start a campaign for SAP to complete eclipse or fiorize ABAP development. Either way I'm fine, it's just time that ABAP developers tell SAP to finish the job fully 🙂 and get rid of SAP GUI completely for modern ABAP Development.(if you launch SAP GUI to edit abap development artificats inside another program, the job is not done).
Take care,
Stephen
Agreed completely.
Actually, I'm about to stop using Eclipse again. For one reason, and one reason alone. I just opened a class again in SE24. I really like the descriptions for the methods, and descriptions for the parameters. When properly used, this is really helpful to know what a method is for and how to use it.
I also like to use documentation for the class as a whole. I usually try to help the next developer by providing some tips on how to use the class.
Florian Henninger did mention something called ABAPDOCU or something like that if I'm not mistaken. But if I can't find this or if I can't get this to work easily, I will switch back to SAP GUI, unfortunately.
Cheers,
Bruno
I agree with some arguments of Stephen and as you I'm with SAP GUI again my reasons are purely related to the WebUI framework, no support from eclipse, It's just a waste of time to have 2 editors opened...but despite that I enjoyed my ride and I hope I can use eclipse again in some point..
ABAP Doc
This feature is quite nice if you are in the corresponding version but even if you are not is a good guide to document your local classes, clearer and prepared for eclipse, not bad 😉
Cheers!
Luis
ABAPDoc. This is similar to JavaDoc or even JSDoc (used in SAPUI5) and it's a completely different way of doing documentation, but much more "standard".
Hi João,
I'll give it a try, but the last time I programmed in Java was almost 10 years ago. I had never even heard of JavaDoc or JSDoc, so I don't know how happy I will be with ABAPDoc 🙂
Cheers,
Bruno
In my experience Eclipse excels when you are programming OO with little need to use SAP DDIC elements. if you do all your programming with classes, and don't need to open SE11, Eclipse is more productive since code completion and syntax highlighting are much better.
It's when you need to open SAP GUI to do X or Y that it breaks your Eclipse workflow and you feel "Damn, why do I use two instead of one?".
But then you have CDS views, and if you mainly use SE80 you still need to open Eclipse. Its the opposite scenario, the problem is people are much more used to SE11 then to CDS views.
Yes, you've said this before, and I agree.
By the way, is it just me or Eclipse seems to favor stuffing everything in the same include? Like... the outline is pretty much useless if you have organized your program into several includes... and don't get me started on project explorer 🙂
Cheers,
Bruno
Well, perform/form is obsolete so.... 🙂
Oi? What's that got to do with anything lol?
I have programs organized into different includes for global variables, selection-screen, and logically related classes.
I don't need sub-routines to have different includes 🙂
Cheers,
Bruno
If it is obsolete, new applications aren't built to support that kind of programming (includes/subroutines/global variables) The outline is fine for classes.
According to ABAP guidelines all new programs/code should be OO, like it or not. Not going into the discussion of whether that is ok, just calling it how it is.
I agree about avoiding as far as possible global definitions, and constants are better assigned to OO interface, and don't want to argue about it either, but INCLUDE... I know only these two SAP Programming Guidelines:
Use include programs to modularize source code
Do not use include programs more than once
cheers
Janis
We might be having some communication issues.
I don't know if you've read my reply till the end. I don't develop subroutines anymore. I'm fine with the guidelines. I don't have any emotional attachment to them (like liking or disliking them), but I follow them as much as I can.
Now, "like it or not", when you create a selection screen, the selection parameters are global variables, or do you do it differently?
Up until now, I have developed the (good?) habit of organizing these distinct logical parts of a program into separate includes. Even when I have a program with different "clusters" of logically related classes, I like separating them into different includes. Maybe I'm too organized?
Cheers,
Bruno
I really don't want to get into best practices, so I'll just state what I do. I haven't used includes for ages, mainly because my methods are around 10-30 lines of codes maximum. I don't feel the need to create includes (and they don't exist in other languages).
Personally, I dislike the creation of TOP, PBO, FRM triunvirate, leaving the main program with almost no code. I don't do it, I declare the selection screen in the main program file, and unless there are a ton of variables, I dont create a TOP either.
Selection-Screen are global but there is no way around it.
Hi again,
I beg your pardon but, isn't an include equivalent to a library (.dll)?
Cheers,
Bruno
A DLL has an API, the include doesn't. If we are talking about includes that have many forms inside, you could consider that an API, but then we are back to "obsolete" statements (according to SAP, not me).
For the third time, no one is talking about subroutines.
I have been talking about logically related classes. Classes for function A, I put them in include A, classes for function B, I put them in include B, classes for the main logic, for example, I can put them in some sort of "main" include. Is this more understandable?
Anyway, let's agree to disagree on this one. I don't think this "discussion" is going anywhere.
Cheers,
Bruno
Yes it's more understandable, finally I got what you are doing. I use packages and sub-packages for logical divisions.
Yes I try to use packages too, but mostly for reusable stuff. If what I'm "organizing" is not meant to be reused, if I just want to organize it so I don't have 20 classes in the same "file", I "like" includes.
And SE80 works perfectly fine with that, because I can have my classes separated by includes, but at the same time I can see all the classes that are used in my program.
I can stop using includes... but, in my opinion, that means going backwards...
But I guess that's how you do it? You are used to programming in "files" with thousands of lines?
Cheers,
Bruno
Like I said, I finally understood what you were doing, and I understand why you are doing it.
Every language other then ABAP tries to organize one class per file (for example SAPUI5/Javascript).
Bom dia João,
Ok, my apologies. When you said you "understood", I wasn't sure if that meant you agreed with what I do.
So do we agree it would be nice for the "outline" in Eclipse to "include" all the objects (classes, methods, attributes) for the main program, and not just the current include, as it is possible in SE80?
Cheers,
Bruno
Yes 🙂
I havent tried it on NW 7.40 yet , but in my experience the 7.02 code completion does not handle some cases of INCLUDE use either... Even the seemingly "simple" ones - like splitting local class into Definition and Implementation includes.
cheers
Janis
Well, SE80 was developed in the last 15-20 years. I don't think it's realistic to have it replaced in 3 years.
Peter
I agree. 3 years might look like lot of time, but it is not easy to create new, better IDE for such specific development, which SAP development is. It is IMHO not possible to fully abandon SAP GUI in xy years...
There is some similarity to Android development - yes it is Java, but there are other Android specific things around it (XML layout designs, android graphics for different DPI, emulator etc...).
They also went Eclipse way for IDE. It is/was working, but not good enough.
So last year was introduced "Android studio" which is based on "IntelliJ IDEA" IDE and it is really nice, but still in evolution.
Yep and if SAP was a company of 100 developers then yes I would agree. Instead you have one of the largest software companies in the world so the expectations are much higher given the % amount of maintenance that customers pay. SAP Customers pay a premium and SAP better deliver "premium experiences" or those SAAS vendors will eat most of SAP's marketshare despite S/4 HANA. Premium experience includes development tools. It's not unreasonable to expect a finished product from SAP in three years. My point is finish the tool completely that's what ABAP developers deserve. If SAP GUI screens are horrible for end-users then how come developers should be treated differently. All I want is a tool that can support a EHP7 ERP System on Netweaver 7.40 that doesn't use/launch any SAP GUI screens for all supported development tasks(data dictionary, enhancement spots, etc).
Take care,
Stephen
As for my example. Company which stands behind Android and its development is comparable software giant.
But I agree with your point, because there are big differences. Android is open source, is more popular, so is innovating faster... (I compare it now from point of support for developers, API...).
It sure would be nice from SAP to better support "customer development". But it seems it is not enough big target/market for SAP 🙁 I do not know how many developers they have, but i bet only very few of them are targeted to work on ABAP in Eclipse (and overall IDE overhaul).
>Yep and if SAP was a company of 100 developers then yes I would agree.
I would be also curious how many people are working on ABAP related tools and also how many of them on the Eclipse integration.
I also miss a proper DDIC support in eclipse especially when there are cool graphical tools are available for the HANA part in eclipse. But as far as I heard it will be improved soon.
New addition to the list, does anyone know how to create an enterprise service out of a function module using Eclipse?
Thanks.
BR,
Bruno
Or Gateway support in Eclipse.
I'm not using Eclipse yet. Perhaps when it is better, I'll be able to try it. Excellent discussion after the blog.