Personal Insights
My Learning Bucket List for Cloud Development in 2020
For me, 2019 has been a great year, professionally as well as personally. I had the chance to work from six SAP offices all over Europe and the US, attended all three TechEd events and traveled to eight different countries for speaking sessions. During these travels, l met many SAP-developers and SAP-consultants which (I believe) helps me to understand their needs and expectations regarding SAP technology better.
Last year, I also got to know about many new technologies. I heard about new technologies, frameworks, products – for which I have not had the time to study them more. I’m sure most of you also have such a list (written-down or in your mind) as well. I recently went through mine and in this post, I want to share this list with you. I’ll also explain why I think these technologies have a high potential to become more relevant for business developers in 2020.
TLDR: My bet for 2020 is on Monorepo projects and TypeScript.
Open Source:
TypeScript – TypeScript is not exactly new. I’ve already touched this topic in a #CloudFoundryFun post but I believe it’ll be even more relevant in the coming years. Don’t get me wrong, I love JavaScript and Node.js. I think the simplicity of writing code than can be run/interpreted right away is fantastic. But I also know, from the feedback I received in our CAP Node.js Codejams, that about half of all attendees never used Node.js before that day. Almost all of them come from the Java and/or ABAP world where they got used to type-safety, inheritance, interfaces, etc. And this is what they miss in languages like JavaScript. I believe that TypeScript lives in the sweet spot right between both worlds and combines the advantages of JavaScript and Java. Over 50% of the developers that completed the most recent State of JavaScript survey already use (and recommend) TypeScript.
Yarn – Yarn is an alternative package manager for Node.js packages. Compared to the default manager, npm, it promises several advantages in the area of performance and security. As the project has been initiated by Facebook, it is the established package manager for React.js web apps. But yarn is used well beyond this circle. Among others, it comes with an offline mode. This means that you can install packages without internet connectivity if you have installed them before. Apparently, it is mostly compatible with npm, so there’s no need to define all the configurations like SAP’s registry again (I haven’t used it too often yet). But this doesn’t mean that you should use multiple package managers per project. The recommendation is to stick with one per project!
Alternative Backend Frameworks – Express.js is the de-facto standard framework for Node.js webservers. It encapsulates the native HTTP module is a very smart and unopinionated way. According to the latest State of JS Survey, Express by far the most popular backend framework. But the survey also shows that there are multiple challengers gaining popularity. I don’t think any of them is pushing Express.js of its throne any time soon, but I still think there are projects worth checking out such as Nest.js (which btw is TypeScript-native).
Husky – In my previous team, we made use of Git Hooks to ensure that only linted code can be committed and checked-in. And this worked quite well with the pre-commit hook. Unfortunately, all team members had to add these hooks manually to each repo which was somewhat annoying. Especially when new members joined the team or when you had to switch hardware. Husky is the solution to this problem. It allows you to easily integrate these hooks into your Node.js-based projects. Plus, it works nicely together with Lerna and Monorepos. A possible use-case of Git Hooks in the CAP world could be synchronization of the version string in the package.json and the mta.yaml project descriptor.
Lerna – Lerna is a tool from the inventors of Babel and promises to make the management of Monorepo significantly easier. The project is already very popular and has over 20k GitHub stars, but I have to confess I didn’t use it so far. So I leave the intro to the official project statement:
“Splitting up large codebases into separate independently versioned packages is extremely useful for code sharing. However, making changes across many repositories is messy and difficult to track, and testing across repositories gets complicated really fast.
To solve these (and many other) problems, some projects will organize their codebases into multi-package repositories. Projects like Babel, React.js, Angular, Ember, Meteor, Jest, and many others develop all of their packages within a single repository.
Lerna is a tool that optimizes the workflow around managing multi-package repositories with git and npm.”
From SAP:
SAP will also release a great number of new products in 2020. Here, I am planning to put my emphasis on the following ones:
SAP Business Application Studio – I personally think this is going to be one of the most interesting GA releases in 2020! The App Studio is going to be SAP’s next-generation web-based IDE that is built on top of Open Source projects such as Eclipse Theia and Kubernetes and tailored for all sorts of development on SAP Cloud Platform (including SAPUI5 development, Workflow, CAP). Check out this #CloudFoundryFun post if you would like to learn more about the App Studio.
Cloud Application Programming Model – I think it’s safe to say that my main focus in 2019 has been CAP – given that my colleagues DJ Adams, and Maximilian Streifeneder and I delivered 14 (!) Codejams about this new programming model. But this doesn’t mean that we will forget about CAP in 2020. On the contrary, I know that there will be much more news to come this year.
SAP Graph – This project will provide one single API that you can use to access your “SAP data” from any source system. And the best thing is, you don’t even have to know which source system it is and how it is configured. You will be able to send a simple HTTP request (like https://api.graph.sap/v1/Products) to retrieve a list of all your products.
Integration with SAP systems has never been easier!
What do you think about these technologies? Are they on your radar as well or do you miss a hot technology in there?
Let me know in the comments!
Good choice of learning bucket list Marius :). I think adding up below ones would be an added bonus too.
Cloud - AWS/Azure/GCP
RPA technologies from UI path, Automation Anywhere
SAP CAI- https://cai.tools.sap/
Best Regards
Himayatullah
You are absolutely right Himayatullah. RPA and CAI are both very aspiring technologies as well. I need to learn more about them too!
And I think it could fill the learning bucket lists for the entire decade with all the technologies that come with AWS/Azure/GCP ?
Nice collection, Marius.
Will also have a look at the nest framework I think. Thank you for the hint.
And of course I will use Typescript as I did in 2019 and the years before because I really love it.
Additionally I would like to enhance my functional programming skills. I think I will give the https://gigobyte.github.io/purify/ library a try. It's developed in and for Typescript.
I'm not convinced that functional programming can completely replace the other established programming paradigms but it can at least make parts of our code more stable.
Wish you a fantastic year 2020
Helmut
I couldn't agree more, Helmut! Functional Programming has the potential to make code easier to read and maintain in many cases.
I'll have to check out Purify, thanks for the tip.
1/ It seems like your focus is primarily on the back-end. Any plans for the front-end for your learning in 2020? Or do you plan a separate post with the bucket list for UI?
2/ Knowing your Blockchain background I'd like to ask as well where do you see (if at all) DApps are going?
Thanks and Happy learning!
Good observation Witalij, I didn’t even notice this so far. I think my goals regarding UI technology would be to broaden my knowledge about React and SAPUI5, written in TypeScript.
Regarding 2, I noticed that blockchain and DLT was a way less prominent topic in 2019 and seems to be “forgotten”. I still think that this technology has an incredibly high potential (especially in the B2B area) but the lack of production use-cases makes it hard to assess which blockchain technology/DLT will lead here. Therefore, I couldn’t say what is important to learn.