Using something other than a Windows computer for ABAP development: It’s possible, but is it practical?
Spoiler: Yes, it is. Now more than ever.
I’d wager that most ABAP Developers and Architects use Windows computers. It’s simply the default option. But can our everyday tasks be carried out with the same ease using a Mac, a Linux, or some other desktop? Let’s find out.
A Linux computer
Every year is supposed to be the “Year of Linux”. “This is the year when Linux will break into the mainstream” – pundits, annually. Well, it hasn’t happened yet, and the command line is to blame. You see, in Linux you cannot yet fully avoid using the Terminal to type in some rather cryptic commands in order to achieve stuff. Show an average user a black screen with a blinking cursor, and they’ll freak out. We are programmers, though, and such things don’t scare us. We shall learn to use the Terminal in no time. To install (some of the) programs, to change config files, or for troubleshooting.
Here is the good news: For nearly all Linux commands you will ever need to write you will find dozens of web resources. A quick Google search will yield web pages from which you will be able to copy-paste the commands, often with all the necessary parameters. You won’t even have to type. Just remember to add SHIFT to your copy-pasting action in the Terminal. And that you can cycle through the last commands using the UP / DOWN keys.
I have yet to find a Linux task for which there wouldn’t exist at least 5 web pages containing the correct solution, that I couldn’t find in less than 10 minutes. Such is the power and commitment of the open-source community.
So don’t be afraid, and if you feel like trying something new, take the plunge.
But why would you? Why would you bother learning Linux, when for 400 Euros you can buy a laptop with Windows preinstalled, and call it a day?
Well, I could try telling you about how you can bring back to life an old laptop that can no longer run a supported Windows or Mac OS by installing (the most recent) Linux desktop on it. But then you would just say: 400 Euros for a new PC, remember? I might counter that we should repair and reuse instead of throwing away, but… in the end it will come down to your degree of geekiness and / or anti-establishment-iness. I am not particularly anti-establishment, but yes a 100% geek. I find it cool using Linux and learning it. I also find it a good idea to support the open-source development community by using their products and making a donation from time to time.
So what is the availability of apps that we need for our daily work on Ubuntu Linux?
- The obvious:
SAP Gui? Yes! The shiny new 7.70 for Java. Is it 100% the same as its Windows counterpart? Sadly, no. First of all, there is no Excel in-place in ALVs, as there is no Excel. By the same token, there is no editing of long texts in Word. But more importantly for the developers, there is no code highlighting in SE80. We mostly use Eclipse nowadays for coding, but I still find myself working in SE80 quite a lot.
Setting up the connection to the Server is also different. Instead of filling out a form, you have to go to the “Advanced” tab, select “Expert mode” and introduce a connection string, something like “conn=/H/<IP Address>/S/3200&systemName=<System Name>”. Weird.
Eclipse? Yes. Always the latest version, 100% compatible with other OSs. (Duh! It runs in a Java VM).
VS Code? Similar to Eclipse.
Adobe LiveCycle Designer? Some versions on some enterprise-oriented distributions, but in general terms this is rather a no. Forms developers must look elsewhere.
I use Draw.io which runs in a browser, but I bet there’ll be other options. Haven’t explored, as Draw.io has so far been sufficient for my UML diagrams.
- Office suite:
Microsoft Office? No, but there is an equivalent: LibreOffice. It is compatible to a large extent – it can open the files created in MS Office and save them in that format, although some formatting may be lost and advanced features may not be supported. LibreOffice comes pre-installed by default on Ubuntu.
Or, you can always use Microsoft Office web apps in a pinch, limited as they are.
An e-mail client? No Outlook, but about 20 alternatives, for sure. The default on Ubuntu is Thunderbird, I have come to like and use Mailspring.
A web browser? Take your pick. I use the good old Chrome.
Microsoft Teams? Yes. For some reason it is labeled “Preview”, but it works perfectly well. I have used it in a production environment no problem.
Zoom? Yes. Installed, logged in, haven’t used except for the odd test meeting.
Dropbox? Yes. 100% of the functionality that I use.
Skype for Business? This one is a no. The application is well on its way into oblivion. It has never been ported to Linux, and it won’t be.
- Remote access:
Citrix Workspace? Yes, 100%.
Microsoft Remote Desktop? No, but each Linux distribution has its own equivalent, which is compatible to an extent. In the case of Ubuntu the application is called Remmina. Comes pre-installed as a default. You will be able to access “classic” Remote Desktop computers, but you won’t be able to connect to Azure Desktop. For that, you’ll have to use the web interface. That works quite well too, but is more resource-intensive. It goes through my laptop battery rather quickly.
Docker. You kidding me? Yes, 100%.
I have installed Ubuntu Linux on an ancient 2012 MacBook Air. That computer has been through a lot, having survived 8 years with my wife. She doesn’t treat gadgets gently, let’s put it that way. Yet, this machine somehow survived, testimony to the robustness of Apple-designed hardware. It wasn’t supported by the current versions of Mac OS or Windows anymore.
Ubuntu Linux 20.10 Groovy Gorilla was supported, and then some. Installed without a flaw, all hardware recognised and correctly set up. WiFi module, trackpad, SD card reader – you name it. It runs external 4k screens on full resolution via its mini-DisplayPort. 4k screens didn’t even exist in 2012. Intel’s game was strong back then.
I later upgraded to the current 21.04 Hirsute Hippo, which I’ve been using to date. I have only been using it to connect to my own SAP system. With the right VPN setup it could be used for work. Or if the customer lets you connect your computer to their network directly, which is increasingly rare.
An Apple Mac
Personally, I do not like Mac OS for productivity. I love it for personal use / entertainment, but not for work. I find the windows management, for example, seriously retarded compared to MS Windows.
Until recently, Mac OS used to run on computers with Intel chips. Which meant that Mac computers could also run the “traditional” x86 Microsoft Windows. I would buy a MacBook every few years, put the Parallels virtualization software on it, obtain a Windows license inexpensively, and install Microsoft’s latest and greatest. I would then use the Windows virtual machine for work, and Mac OS for home / entertainment. The best of both worlds. The VMs could be easily backed up using snapshots, or simply by copying the gargantuan folder representing the virtual machine onto a fast external disk.
Even the smallest, least powerful MacBooks were capable of this. To this day I use a 2017 12” MacBook with a puny mobile processor. (Yes, the ridiculous one with a single USB-C port. Yes, I bought a dongle. Dongles don’t bother me none.) It runs Windows 10 in a Parallels VM quite satisfactorily, while driving a second 4k monitor from which it also draws power via the same USB-C cable that transmits the video signal. And all this without breaking a sweat.
I would work on SAP projects for months with this little machine, plugging it into external monitors at clients’ sites. It weighs less than a kilo. You wouldn’t know you had it in your backpack. I wouldn’t even haul the charger for it, the thing will charge from the little 18W charger that came with the iPhone. All chargers are tiny now that we have GaN technology, but back then laptop chargers were bricks.
Alas, things have changed. Macs use Apple’s own processors now, and it isn’t possible to run Windows in a VM anymore (at the time of writing you can run some kind of a Windows for ARM Insider Preview, but that’s supposed to be temporary). If you buy a Mac, you are mostly left with the Mac OS (Linux in a VM is still possible, albeit fewer Distributions are supported).
Does all the requisite software for ABAP development, office tasks and collaboration exist in the Mac OS world, then? Why yes it does, thank you for asking.
- SAP Gui, check.
- Eclipse, check.
- VS Code, check.
- Docker, check.
- Full and up-to-date Microsoft Office suite, check.
- Microsoft Teams, check.
- Microsoft Remote Desktop, check. 100% functionality, like in Windows.
- Zoom, check.
- Citrix Workspace, check.
- Dropbox, check.
- Even Skype and Skype for Business, check.
Most of the applications have a version built specifically for the new Apple chips. If not, the version for Intel chips will run courtesy of Apple’s Rosetta translation layer as well as makes no difference.
When it comes to SAP Gui, it is again the 7.70 for Java, and the same limitation applies: No code highlighting in SE80. I don’t think we’ll ever get it.
It is therefore perfectly possible to use any Mac (even an Apple-silicon Mac) as your primary and only development machine. I know because I’ve tried. Haven’t actually bought an M1 Mac, as I try to stay away from first-generation products. But I did rent one from Scaleway for a few weeks and installed all necessary software on it.
The only scenario I could imagine where Mac OS failed would be if the customer used a VPN constellation that would only support Windows. Or if you are an Adobe Forms developer – I’m not sure whether the LiveCycle Designer for Mac exists. It seems like it does not. Me, I try to stay clear of Adobe Forms as much as I can.
Another drawback of a Mac might be the keyboard, but only if you use an Apple layout, such as the built-in keyboard in a MacBook. Annoyingly, the CTRL key isn’t located bottommost and leftmost, but rather it is the second key from the left. That is travesty, everyone knows CTRL must be the first key your left little finger finds as it brushes against the keyboard. It’s basic courtesy.
Fortunately, this is easily remedied by an external keyboard. I use Logitech products, namely the K375s and the MX Keys. They are pricey, but they feature other essentials, notably a two-storey ENTER key.
Thin client + Desktop as a Service
The world is moving to the Cloud. Our e-mail was the first to make the jump back in the 1990’s. Then our books, our music, our files, the films and TV shows we watch… the list goes on.
Desktops have moved to the Cloud, too. I am currently renting a modest Desktop-as-a-Service virtual computer from UK-based ubiDesktop for some 18 Euros per month + tax. I use it for self-training and study, as a development machine for the ABAP Platform 1909 Developer Edition that I also run in the Cloud. How do I access it? From a thin client. A thin client is a device used to access web-based or cloud-based services. The device itself can have little computing power, it is sufficient if it can connect to the internet, then to the service you want to access, transmit keyboard and mouse input to it, and show you the results on-screen. All the heavy lifting is done by the service on the other side, in my case by the virtual computer I am accessing.
A thin client can be most any working computer, a tablet, or some smartphones. Samsung DeX devices in particular are bound to be excellent thin clients, transforming as they do into full-fledged desktops when you connect them to external monitors. I have yet to try that – might spring for the next Galaxy Tab S when it comes out, to replace my aging 2018 iPad Pro. Even a Raspberry Pi 4B is almost usable as a thin client. I suspect it would be fully usable with some tuning – a bit of overclocking, running the 64-bit version of the operating system from an NVMe disk instead of the 32-bit version from an SD card, that kind of thing.
Apple’s iOS products are a missed opportunity for now. The new iPad Pro, crazy powerful as it is, pathetically doesn’t support external monitors in any 21st-century-worthy way. It does not resize the image when connected to an external screen, leaving you with the 4:3 screen ratio and wide black bands on both sides. Unless your screen is already 4:3, in which case you wouldn’t care. But even then it only mirrors – doesn’t extend. Sure, you can use its own screen, but… iPad OS is really holding back that amazingly powerful hardware. Shame. And the less said about iPhones, the better.
I access the ubiDesktop DaaS via Microsoft Remote Desktop. I have experimented with a number of remote access solutions, and found the MS RD to be the best, closely followed by Citrix. VNC performed by far the worst in my tests. TeamViewer was nothing to write home about either, albeit it wasn’t as dismal as VNC.
UbiDesktop’s service gives me access to a virtual Windows computer from anywhere, anytime. So far I have been using it only for personal purposes. It would be possible to use it for work, but advanced knowledge of network stuff might be required. We connect to clients’ systems usually via VPN. On a virtual PC this VPN would need to be linked to a second (virtual) network interface card. Otherwise the VPN would break the RD connection to the thin client. Right now I wouldn’t know how to set that up, but again, an interesting topic to learn about and try out someday. If you are a geek, like yours truly.
Time is then upon us when we shall be able to walk into the office with nothing but a Samsung DeX device in our pocket. A Galaxy S smartphone, for example. We shall plug it into a USB-C monitor, unleashing its desktop mode. We shall connect a wireless keyboard and mouse. Then we shall use the Remote Desktop app of choice to connect to our Desktop-as-a-Service Virtual PC, and off we go.
In fact, such time has already been here for a while. I had a colleague in a project in Budapest who worked exactly like that already back in early 2019.
I am now in a stage where I can pick up any of my 3 computers randomly – The Windows PC, the Mac, or the Linux PC, and work with it seamlessly. That’s why I can claim that any of the 3 platforms is, indeed, practical.
So what’s next? For me, next would be to get rid of the two large and ugly black holes which currently occupy my desktop: The two 27” screens. I would love to replace them with some lightweight VR glasses. Such glasses would tether to my PC and project a couple of virtual screens into my line of sight. 27” equivalent, 2k resolution @75 Hz per screen would be sufficient. Leaving a transparent band in the bottom part, so that I could see the keyboard. With a slot to insert my prescription lenses. A microphone and speakers for teleconferencing.
Am I describing an existing product? You bet I am: Lenovo ThinkReality A3 Smart Glasses. Except for the 2k resolution – they currently go up to Full HD only.
Over to you. What do you use?