Hi there,
The cover picture for this issue was created by Google DeepMind and shared on Pexels, plopped into Substack and sent on its way to our readers. Isn’t technology swell?
In the enterprise world, AI is yet to rescue us from the daily humdrum and grind. If you’re interested in what AI can do other than drawing neat pictures, check out our new Hot Potatoes video (“now with 25% more AI” ™) and a new issue of the Boring AI Nerdletter. Find links to both (and more!) in the Elsewhere section below.
Have AIwonderful day!
-Jelena and Paul
RAP vs CAP: ELI5
“RAP vs CAP” is a question that can be silly but also monumental at the same time. Both programming models have the designated pages on SAP Community, befitting their stature (here is RAP one and CAP one). At first it seems like what else is there to say? But it seems the “vs” part could use a simple explanation.
Bagels are a popular breakfast food in the US. They’re usually sliced and shmeared with cream cheese (yum!). A bagel can be sliced with a sharp knife or with a mini-guillotine contraption called bagel cutter. Some people tend to think about “RAP vs CAP” in the same way as deciding whether to use a bagel cutter or a knife: one is more commonly available, the other is more convenient. Regardless of the tool, the result is a sliced bagel.
However, “RAP vs CAP” is not like that. These programming models are rather different tools for different jobs, more like hammer and screwdriver. This blog post has excellent comparative analysis of both programming models. Considering the use case though (“solution is independent of S/4HANA” is one of the parameters), even in that post it seemed like the choice was already clear from the get-go.
I’m struggling to imagine a scenario where both models could be considered equally and would deliver the same result. The main question would be what exactly are you trying to achieve and then the choice will become rather apparent. It’s almost like the bagel will tell you how it wants to be sliced. :) JP
Oracle CloudWorld: Not Just GenAI
I've spoken up in a couple ways about the Oracle CloudWorld event last week. I didn't discuss their non-GenAI announcements, but one really grabbed my attention. The day 2 keynote, "The Future of Data and App Dev" showed off a new feature coming to Oracle databases: JSON as a native type. Several cool things about that:
Using JSON as a sort of schema-table definition that they call "JSON-relational duality views". These "combine the advantages of using JSON documents [a la MongoDB] with the advantages of the relational model, while avoiding the limitations of each".
Creating a definition of a JSON duality view automatically creates the relational tables alongside the object depth of the JSON. In other words, if you specify a JSON duality view as a JSON object with sub-objects as properties of a higher level object, under the covers you'll get relational tables that support the relationships that that JSON implies.
You can directly insert a JSON object into a JSON duality view OR you can perform standard SQL UPDATE/INSERT/etc operations against the relational tables that exist in support of the view.
Out of the box, handling this data can go through old-school SQL channels, RESTful APIs that retrieve and update data, and the Oracle Database API for MongoDB. Very handy for developers who are accustomed to a particular way of doing things.
Keynote speaker Juan Loaiza compared this to the old-school notions of DDL and DML - calling this Data Intent Language (DIL). It’s a nice conceptual bridge from older SQL knowledge that many developers are carrying around. I still think SQL is the best language around for understanding relational databases, part of the reason why I wrote in this little book that the new distributed class of databases still chooses SQL.
By the way, Oracle nerds will rightly point out to me that JSON relational views have been known in preview releases for about a year already. I'm sorry! I don't usually dive deep into Oracle-specific stuff! Direct all hate mail to larry@oracle.com if that makes you mad. PM
Devtoberfest 2023: Week 1
The first week of SAP’s annual online event Devtoberfest is just behind us with more to come. Here are my organic-intelligence-based reviews of the first batch of YT videos from the event:
Overview of ABAP Cloud – solid session, good level of technical details. Definitely recommend if you’re looking for an overview.
ABAP Cloud for Classic ABAP Developers - like Tom Hank’s character in “Big” movie, I didn’t get it. It looked like the authors tried to make ABAP Cloud more relatable using ALV. But throwing ALV with IGA into the mix just made it more confusing IMHO. Good idea, maybe different example would work better.
Making SAP Extensibility Real with CAP in 60 minutes – no “CAP for dummies” stuff here, this session dives right into the action, which I really liked. True to “making real” part, well done.
Event-Driven Architecture: Bringing SAP and Microsoft together – great content and great presenters, recommended for anyone interested in the events or even SAP/MS integration in general.
What are your Devtoberfest favorites? Drop us a comment! JP
Nuve Is A New Way (To ABAP)
My nerd friend Nestor Lara reached out to let me know that Nuve is putting its flagship Nuve Platform through beta testing. I jumped at the chance to try it out, having already heard lots of details from him on this incredible podcast with two unparalleled hosts.
"Platform" is the right nomenclature here. If you dig into their online resources and pay attention to what both Nestor and advisor Lars Hvam Petersen say often and publicly, the vision is clear: bring modern devops and CI/CD practices and tools to the SAP ecosystem. The platform that vision depends on is reliable, repeatable development environments for SAP developers, so Nuve's product is on-demand, easy-to-use SAP systems. Having worked outside of SAP stuff for a few projects and products, I wholeheartedly support this vision because holy hell does that world have ways to move quickly.
Another piece of this puzzle, nicely implemented, is the clear understanding that open-source plays a role. The instance that I created for myself was spun up batteries-included with abapGit, so I instantly decided to slap in my favorite open ABAP project: abap2UI5 (give 'em a follow).
The experience so far has been pretty darn good. A few notes:
The on-boarding is well-thought-out. It felt pretty quick to get a system up and running.
Pausing and resuming instances of your system feels fast, especially given what's likely to be at least a few gyrations happening behind the scenes.
Yep, Visual Studio Code ABAP development worked right away, after configuring one Gateway bit. Don't forget to add the LOCAL system alias to ADT_SRV in /IWFND/MAINT_SERVICE. Once that was done, I was able to write up some code in VS Code and activate immediately in the system.
Yep, I dropped into SAP GUI without a hitch, and the system performed as well as you'd expect any regular SAP dev system to: multiple sessions, debug windows galore.
Yep, Fiori Launchpad is there, with a few apps turned on ready to poke around with.
Yep, OData services work. Huge plus there. I think ABAP folks should generally be proficient RESTers - and this could be a great way to polish up that skillset without breaking your team's dev environment.
As I was working through, I ran into one moment of "huh?" - and use of the support contact form got me a Zendesk ticket and an answer at light speed.
A quick note to readers: I was testing the “business” plan, distinct from the “personal” plans. Nestor says “The main difference on the personal plan is that instances will automatically delete after 3 hours.”
Jelena and I are going to be speaking about how to navigate the SAP SKILLPOCALYPSE at ASUG Tech Connect in November. If you are looking for ways to level up your skills in ABAP and/or SAPUI5 development, I would seriously consider grabbing yourself a personal subscription to Nuve Platform when they fling the doors open. PM
Save Space For a Slice of Excel PY!
Like peanut butter and jelly, like chocolate and raspberries, like <insert culturally appropriate flavor combination>, Excel and Python seem to have been made for each other. And now (rejoice, folks!), finally they have been synergized and synthesized into essence of pure nerd flavor. (Rumors have it, even Paul and mine bosses are excited about it.)
There is just one small caveat: Python in Excel is currently in “preview” (a fancy word for “beta”?) and is available only for the elite members of Microsoft 365 Insider program. Outsiders will have to wait for it to hit general availability. In the meantime, enjoy the preview of glory to come here. JP
SAP Labs India: Gimme More AI
SAP just announced "Joule", their new digital assistant, or "generative AI copilot". This is a semantically unfortunate choice of words, since their last copilot, SAP CoPilot, is also positioned as a digital assistant. OG CoPilot is in "maintenance mode" now, but it's still one of those things that I think will cause a bit of confusion at first. But just like the old Build and the new Build can coexist and eventually overcome naming confusion, I think CoPilot and Joule (branded as a "generative AI copilot") will overcome that same confusion.
Some dots connect to another announcement: SAP Labs in India plans to double their AI team by 2024. According to CIO.com, this adds up to 3,000 jobs per year. This is, of course, a generative AI reaction, as Sindhu Gangadharan plainly states "Generative AI will fundamentally change the way businesses run". I have two reactions.
My first nerd reaction is…well, yeah. Most techie folks I talk to have this same expectation. Even if all generative AI development stopped and the current state of the art stayed the same as it now stands, we'd have years of fruitful additions to current software that incorporated the things that GPT-4 and its cousins can do.
My other reaction is: maybe this SAP focus can help close the gap between drool-inducing bleeding-edge tech and enterprise implementation. I feel like I'm always looking outside the enterprise to learn and try the newest stuff, and then I sit on my hands and wait until enterprises are ready to go after it. I know, I know, there are good reasons for this. Businesses can't just chase the shiny new thing every time a new one appears. But I feel in my bones that deeply understanding and moving quickly to apply new innovations can be more rewarding than currently realized. PM
For the third round of Hot Potatoes, we are joined by diginomica co-founder Jon Reed. Mash ‘em, fry ‘em, roast ‘em - we have plenty of ‘taters for any recipe!
Boring AI Nerdletter issue #4 is out. More Oracle discussion there.
Nerds in the wild:
meet Jelena at Mid-Atlantic ASUG chapter meeting on September, 29;
don’t miss our presentation and roundtable discussion at ASUG Tech Connect November 7-9.
We bring you interesting (we hope) stories about all things enterprise and tech. Why not share yours? It might make it into the next Nerdletter issue! Reach out to us on social media or Substack.
A tall mug of pumpkin-spiced latte goes nicely with the newsletter. Thank you for your support!
Finally javascriptification arrived at SAP in the form of CAP. was working on two projects as PO which used CAP as stack for programming an add-on to S/4 Hana. After reaching a certain level of complexity (speak 1000 mandays of development) on both projects the CAP development became increasingly error prone, instable and difficult to maintain or to extend. Thus based on my personal observation with n=2 in 100% of cases choosing CAP was a failure. Post mortem I was actually not to surprised as I do think that JS (or TS if you prefer that one) is not a useful language for database of business programming. It is not suitable for bigger projects as complexity of the codebase rises overlinear with the problem space and sooner or later everything breaks down like a building without a proper foundation. But go ahead with CAP, find out yourself
RAP has its own set of issues. I would not recommend it either.