Share and share alike
Sharing your toys
When you grew up I am sure that you were taught to share your toys with your siblings and your friends. It is certainly a value to that I am keen to instil into my children.
When we share we get access to what we could not have done ourselves. It broadens our experience and gives us exposure to things that we might not have come across ourselves.
This goes for algorithms and implementation as well as the latest kitteh movie you found on youtube.
Being exposed to a varied approaches to development can only improve our abilities as coders. A great way to be exposed to other code is to read books with code samples that are annotated and explained or blogs or open source software.
Github has become of late the goto repository for such projects. It is a great place to discover and learn and also contribute.
Having said this it is sad to hear and read about SAP’s approach to such sharing. In response to community enquiry SAP promoted Codexchange based on the SVN source control system and available to developers working on a specially licenced version of the ABAP Netweaver Stack. Codexchange has an uncertain future – it seems to be stuck and not moving forward. The answer to such a problem is simple – use github.
What is the problem with sharing our code on Github? How is it different to adding source code to a blog here on SCN or on another technical site or even in a book?
Github lowers barriers to entry and because all the hip kids hang out there it may even encourage people to get with the grey haired abap gang.
To innovate you need to change and although the ABAP language is changing and introducing new features SAP’s approach to sharing is not.
Thoughts?
Thanks to Toban Black for the image
Hi Nigel,
Great blog post, and good to see this issue/question being raised here on SCN. It'll be interesting to see how SAP responds. And I hope it will be beyond something like "we already use Github for SAP HANA Cloud related developments".
I agree that allowing people to freely use Github for sharing has the potential to make ABAP and SAP much more visible to developers worldwide. I'm told that's one of the main objectives for SAP: attract 1M developers. And 1 + 1 = 2 ...
I don't know how legal issues play into this though, but since Github is mainly about sharing (your own) code and you still need a validly licensed NetWeaver stack to run someone else's code for yourself, I'd say the risk of code or IP abuse is not bigger than say by using CodeExchange or whatever other tool.
To be fair to SAP: when CodeExchange was launched (in response to community enquiry?!), Github was not yet the major code sharing platform it is today, so SAP should be excused for using an SVN based tool.
Cheers, Fred
Hi Nigel,
thank you for raising this problem. To talk now is more important than ever, since Code Exchange, as we know it, will close it's doors end of this month.
Because I'm also a customer with a full Suit license I've read this license and the "general terms and conditions" of SAP and haven't found any sentense about not to share my own programs.
What now? Can I share my programs if I've developed the code on a non-Developer-Edition System but not if it's developed on an SCN System?
May God or a lawer help us....
Uwe
Nigel,
great blog!
I learnt a lot from other developers looking at their code and how they are approaching the same issue in different ways. The problem with ABAP is just on licencing.
Now, NetWeaver Developer/Trial edition licence allows us to share our code only on SDN or Code Exchange.
As Uwe Fetzer mentioned Code Exchange has a very short life and no legal came with a valid solution to allow developers to continue to share and collaborate.
Ivan
Dear Nigel and Fred,
Ivan Femia, Uwe Fetzer and I being involved with SAP Code Exchange from the beginning. Since July 19th 2013 when the planned shut-down of the Code Exchange 1.0 was announced we are in contact with Anne Hardy and her team (Alvaro Tejada Galindo, Juergen Schmerder) to find a solution. Unfortunately it seems to be hard work inside SAP to get the right people together.
In the moment there are the following issues to solve:
1. Re-Licensing projects currently hosted at SAP Code Exchange
SAP must decide about the license under which the projects currently hosted on code exchange should be continued. As the Code Exchange allow SAP to use the code without further permission of the contributor they should make sure that hey can do so also with future developments. I.e. Uwe's ZJSON is already used twice in the SAP Business Suite. I think the Apache License would make the most sense as it's already used by SAP.
2. A real developer license for NetWeaver ABAP
I've just checked via the SAP Developer Center the two places where I can currently download an ABAP System: ABAP Platform Developer Center and SAP NetWeaver Gateway Developer Center. Both locations provide only a Trial Version that is limited to 90 days.
When I check out the new ABAP 7.4 on HANA and ABAP 7.4 on MAXDB offerings via the SAP Cloud Application Library provided via the SAP Store then there is there the limitation of countries and again the licensing. The license is called "DEVELOPER LICENSE AGREEMENT (SAP NetWeaver 7.40)" but unfortunately only this license in contrast to the HANA, Mobile and SAP HANA Cloud licenses is restricted to 90 Days.
As the "DEVELOPER LICENSE AGREEMENT (SAP NetWeaver 7.40)" is the most up to date ABAP related developer license I want to point out some other concerns with it (in addition to the 90 Day limitation):
at 2. we've got:
If I take this sentence literally I would be not allowed to do a presentation of my ZGEOCODE project using the SAP Standard transaction BP. I can only demonstrate my own sample reports.
next in 2.:
As the Project abap2xlsx allows you to extract SAP mass data (internal tables) to Excel (a non-SAP product) then abap2xlsx would be not allowed to be developed any further under this license.
in 8. Modifications and Extensions:
In ABAP there is the BAdI Technology. This are SAP provided interfaces for extending standard functionality. I.e. the SAPlink for ABAP in Eclipse is using such a BAdI to implement the back end functionality. Wouldn't that kill also that project?
3. A repository for SAP based OpenSource as a successor of Code Exchange 1.0
Blag has announced Code Exchange 2.0. Code Exchange 2.0 is a Subspace of SCN (http://scn.sap.com/community/code-exchange) where projects can be listed by sending an E-Mail to devcenter@sap.com. For me here every Wiki is a better solution. One reason for promoting Code Exchange was the central Repository which could be maintained directly by the project owners. I hope Code Exchange 2.0 evolves and for me the best place would be store.sap.com where all OpenSource, Partner and SAP Solutions should be listed in one central space.
Let's hope that we can find a solution soon and code sharing between ABAP Developers can continue. SAPlink is ready to be used also with GIT or Mercurial repositories 😉 .
Best regards
Gregor
Hi Gregor and hi everyone on this thread,
Since our group started to work on Developer Licenses, it has always been our goal to provide the same type of license (free, perpetual, clear IP ownership with the developer) for all SAP Platforms. It has not exactly been easy for the new and emerging platforms such as SAP HANA, SAP Mobile Platform and SAP HANA Cloud Platform, but is was easier than for ABAP, as there was no "legacy" (as in existing contracts). As you can imagine for a 40-year-old global company with 65000 employees, changing that legacy involves tons of stakeholders, and every stakeholder can find a valid reason which the change might be bad.
We are still pushing hard for a ABAP Developer License that resembles the one we have for HANA - and would allow ABAP Developers to publish their code (not SAP's obviously) on external forges such as GitHub. Good to know that SAPlink is ready to be used with Git 🙂
I know it's been a long time and you are running out of patience. Especially with the upcoming close of Code Exchange, we understand the fear that ABAP developers will be left with nothing. All I can do at this time is assure you that this is not our intention. We cannot declare success yet, but we are working hard on getting ABAP Developers the legal framework they need to freely share code.
Please hang in with us, have faith and a little more patience. As we've done in the past, we will ask for community support should we need a little more gunpowder...
best
--juergen
[Vice President SAP Developer Experience aka Developer Whisperer]
Hi Jürgen,
As long as you are on the case I'll wait patiently. Thanks for informing us about the current state of affairs and good luck with the whispering (may be you should tune up the level a bit? 🙂 ).
Cheers, Fred
hahaha - thanks Fred. As you know me, you can probably see the irony in my self-chosen title 😆
Thanks for your comment Juergen . I trust with you and others in your team of Developer Whisperers will create the sort of licence that will work for ABAP as well as the newer products.
Thanks everyone else for your comments.
I was ready to write a comment saying things like "whatever guys, everybody is already sharing their codes everywhere outside SCN, so what's the matter with Github?", but I'm holding my thoughts until CodeEx is really closed.
This whole thing is not about Github, it's about being able to share projects in the first place.
Juergen Schmerder , what you said is giving me a little hope on this matter. I'm eager to stop having long discussions about ABAP code sharing with my peers, and finally be able spread the word about my future ABAP projects hosted wherever I feel it's the best place to have them. Not every developer has the patience and the skills to dive into pages and pages of licensing, like Gregor Wolf just did.
I'm looking forward for news to be finally able to scream...
[embed width="425" height="350"]https://www.youtube.com/embed/lLCEUpIg8rE[/embed]
🙂
Best Regards, and thanks Nigel James for raising this topic!
Thanks Nigel,
It's an important line of thought. I will be following along!
Neal
With my recent post about uml generation from ABAP traces wanting a place to store the code is forefront in my mind.
I wasn't sure about legality of sharing the code outside of SCN but as it was developed on a customer system, I think I'm covered. It's crazy that a developer needs to share their code outside of SCN in order to be able to use sharing terms that prevent others from sueing them.
I will follow all updates with interest.
Chris
So I took the somewhat ridiculous step of publishing the code extract for my UML diagram generation on my own site.
http://www.wombling.com/coding/code-for-uml-sequence-diagram-extract-from-abap-for-plantuml/
at least this way I could attach an Apache Licence to it and feel safe that no-one can sue me if something goes wrong with it (unlike the SCN and Code Exchange terms).
Anyone can use it, make derivatives etc. and they can even bundle it up and sell it, as long as the acknowledge the author (me). So it's not particularly stopping anything, but it does carry that - USE AT YOUR OWN RISK label pretty well.
Whilst I do have a certain amount of patience for the idea of an SAP lead public sharing initiative, we cannot wait and sharing outside of SAP will happen.
I'm afraid that currently my use of an Apache License does mean that if anyone using a developer licensed NetWeaver AS can use my code, the cannot publish any changes that they make to it due to the terms of their license. I've run into this problem with my logic that allows dual factor time based code secure authentication that I have on Google Code (may move it to GitHub in future now that SAPLink supports git.) Gregor Wolf wanted to play and do some updates, but couldn't.
poo happens. I look forward to some progress on this 🙂
Hi Chris,
This is exactly what we want to encourage in the future - we do suggest Github, we have our own presence on Github (https://github.com/sap) and we're very happy that SAPlink can be used with Github. But if anybody wants to put their ABAP code on Google Code, Subversion or wombling.com, that's fine too. For now, we are getting out of the code hosting business (and with SAP, you never know when we will get back into it, but it's kinda clear that we will. But let's not talk about "strategy". Let's talk about license. Yes. I know. It's boring. And it's annoying. But it's also necessary).
The problem with your approach right now is that legally, you are not allowed to do what you are doing. ABAP is a proprietary language owned and controlled by SAP. We dictate what you are allowed to do and we don't allow you to share ABAP code (no Chris, we won't send the lawyers after you - but we have to make sure we cannot send the lawyers after anyone for sharing their own code). We bloody #*&^$@s. CodeEx 1.0 was the one and only exception, and it wasn't really great. Now we are aiming for something less restrictive and I am not happy that I cannot share any details yet. Anyway, it will be Blag sharing the good news - he got all the blame for shutting down CodeEx 1.0, so he deserves all the praise for freeing up the ABAP community. But as of now, that's still Science Fiction...
stay tuned...
--juergen
But as per Uwe's comment above, I can't see anything in the customer SAP AS licence agreement that limits the sharing of customer developer code. Whilst there is clearly limitations on the use of the free developer stack to develop code that is shared, I hoped that customer and partner systems (for which we pay a reasonably large licence already) were free of these limitations.
If the lawyers come looking for me, I'll be playing with the cloud stuff where this s*** just doesn't happen. 😉
Visual Basic/C++/whatever is a proprietary language owned and controlled by Microsoft. And? Maybe SAPs lawers should read M$ license agreements (chapter 4 "DISTRIBUTABLE CODE") to learn how to do it right (at least better).
And again: I still haven't seen any paragraph where SAP bans me from sharing my own code as SAP customer. "Pic or it didn't happen".
I'm really love to develop programs using ABAP and I have all my projects shared in the Code Exchange. I remember to complain a lot about CodeX and SVN and I'm really happy to hear about Git on CodeX 2.0.
However, all of these talking about licensing is getting me tired. It's really pissed me off the fact that the code I developed by myself, using my spare time to develop programs and projects using ABAP to grow community in favor of SAP should be propriety of... SAP!?
If I cannot publish my projects, code snippets, or any other piece of code of ABAP using any other tool that isn't under SAP Umbrella, so I'm out. I prefer to spend my spare time playing with my kids.
I'm really hope that SAP adopt more liberal position about the codes developed by your community. Let us play around wherever we want. I don't care if is on GitHub, Google Code or CodeX 2.0, I just want to develop program to help community and users without any risk to be sued or suffer any other treat.