LibGDX is Java, not C++.
Like all programming languages or libraries, Processing and libGDX are both tools that are designed for different tasks. So it’s not really a matter of which one is better in general- it’s a matter of what you’d use each one for.
Processing is designed to be simple and to avoid boilerplate, but libGDX is designed for performance, portability, and comes with a bunch of tools related specifically to game development. Processing is more open-ended, whereas libGDX is more specific to game development.
Processing is good for simple games and visualizations, but it’s hard to make advanced games using Processing. LibGDX is better for more advanced games, but it’s not simple and does require a good amount of boilerplate.
So it’s a tradeoff, and which one you use really depends on what you’re trying to do.
I will say that the biggest benefit of libGDX is how easy it is to deploy to various platforms. I can write my game once, and then deploy it to the web, as an executable, and on Android and even iOS. This by itself is a huge selling point, but then libGDX also comes with a bunch of libraries specific to advanced game development.
The begin and end calls are actually from OpenGL, not specifically libGDX. OpenGL allows you to write very fast rendering code, which is crucial for games, and libGDX exposes that to you without you needing to get into the low-level details. Processing can also use OpenGL, but it simplifies everything which comes at the cost of performance.
Processing is indeed simpler, but that comes at a cost of performance and portability, and there’s a realistic limit to what Processing can do. LibGDX picks up from there and lets you do more advanced stuff.
I hope that clears it up, but let me know if you have other questions. I’m still putting together the libGDX tutorials, so I’ll be curious to hear what’s confusing about them.