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?
Great blog, Kamil! Thank you for sharing!
At IBM, newly hired developers were offered a choice between Mac and PC when joining. I've lived in the corporate PC + Microsoft world for all my life, so the choice was obvious. But it turned out that our manager and many other team members used Macs. The setup of my new PC was so excruciatingly painful that the manager disabled the choice for all new hires and forced everyone to use a Mac.
Sadly, it turned out that Mac is absolutely terrible when it comes to the classic ABAP development in SAP GUI. New editor does not exist there and working with dynpro screens is incredibly painful because there is no layout designer available at all. So, if there is even a remote possibility that you might ever do that, definitely go with PC.
I'm a happy iOS user on all mobile devices but there is no way I'm ever getting a full-blown Mac.
Thank you for your comment, Jelena. I missed the point about the classic dynpro editor, as I haven’t had to change any screens lately. That is a true dealbreaker if you have to modify or create even a single dynpro. Unless you are willing to go back to the 1970’s with the non-graphical dynpro editor.
Using Linux at home and mostly Eclipse for programming, I ran into a weird issue with abapGit because of a JavaGUI bug. Bottom line: when in doubt, I recheck with the Windows GUI 🙂
Thank you, Andrea. JavaGUI 7.70, I see. I’m on patch level 1, don’t even know how many patches are out. Hopefully a future one will solve the bug you mention.
I enjoyed your blog very much Karnil.
Unlike you I love my MacBook Pro - albeit with a 3rd party windows manager. But I can't live without SAPGUI for Windows for ABAP development. I also find many customers who don't support OSX VPN clients as much as Windows ones.
Therefore I use Parallels to run a Windows VM where I run my VPN client, SAPGUI and test my SAPUI5 code. I develop my SAPUI5 apps locally using VSCode running on OSX then right-swipe across to the Windows VM to test using the Chrome browser. I use the nginx HTTP server on the Windows VM with a reverse proxy config for when I call SAP web services.
FYI - Parallels nows supports the Apple M1 hardware. https://www.parallels.com/blogs/parallels-desktop-m1/
Thank you very much, Graham. You are a far more advanced user than I am.
Yes, Mac + Parallels was a winning combination. I hope the time comes back when we shall again be able to rely on this solution. Last I heard, Microsoft did not have plans to license its Windows for ARM for use in a Parallels VM. Hopefully, that'll change someday.
Thank you very much!
1) You are talking so much about software substitution between OS. But is there any interest which OS target users are running?))) It is not user-oriented to develop and test on other from target OS 🙂
2) 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
As for all-Linux - it is correct. But you talking only about Ubuntu. Ubuntu requires more system recourses than windows.
Fedora gives such opportunity, but Ubuntu - not.
3) if you want to go OS-independent ABAP-development you should UI5+OData with the possibility to install additional software on Linux-application server.
It is my opinion.
All other options are headache and nothing more than trying to play geek.
Thank you for your comment, Oleg.
Fully agree that customer's target OS is the most important. After all, that's where the programs have to run.
I only know Ubuntu (and OpenSUSE a little), but you are right - I've also read it is quite resource-intensive as Linux distributions go. There are more lightweight distributions, more suitable for reviving old hardware. Lubuntu often comes top of the list, as does Linux Light, or Puppy Linux.
I wonder if anyone uses Linux desktop in a production environment. Otherwise it's just "playing geek", like you said 🙂
"conn=/H/<IP Address>/S/3200&systemName=<System Name>"
Perfectly recognisable to anyone who's ever had to set up a pre 31H Sapgui. 😀
I've installed various flavours of linux several times for several people whose OS's are out of date and I/they don't want to buy a new one. It's a good solution for older hardware.
Whenever I've had to use a mac for anything, I find them so awkward that I'm tempted to reprogram them with an axe.
Eddie : I'm waiting. I can wait all day if necessary.
Zaphod Beeblebrox : Computer, if you don't open that exit hatch pretty damn pronto, I shall go straight to your major data banks with a very large axe and give you a reprogramming you will never forget. Capisco?
Zaphod Beeblebrox : Okay. Get the axe.
[SFX hatch opens]
Thank you, Matthew. Funny you should mention 3.1H - that's when I started But then I didn't know my nose from my elbow; surely someone would have set the connection up for me.
At first I read your sentence about the Mac incomplete - only as far as the word "reprogram". I though you were tempted to literally reprogram the Mac! :-))
Oh quite literally. With an axe!
Thanks for geeky post Kamil..I have learn if not all but few important points to know between Linux and Mac. I wonder when we could we completely avoid the terminal screen so as to make it more user friendly.
Also I enjoyed gping thru all comments..haha yes https://people.sap.com/matthew.billingham is interesting person.
Great Post Kamil Kovac !
I've been trying to see if the M1 macs would allow a particular use, but you didn't cover it here.
Do you know if the following is possible?
The above use is the one that I like the most as a freelance SAP consultant, on my current intel Macbook Pro.
And before moving to the M1 silicon I wanted to make sure that SAPGUI windows 32bits would be compatible with Windows ARM on M1 Macs.
Perhaps you saw already SAPGUI windows on Windows ARM in some PC. That should give a hint already.
Thank you, Luciano.
I am grateful for your question, because I've been meaning to try out this scenario. You have prompted me to finally do so. Let's go!:
As I am not in a possession of an M1 Mac, I rent one in a DaaS mode from my favourite cloud provider Scaleway. The process takes just a few minutes. Cost? EUR 2.40 + tax for the first 24h (obligatory minimum period), EUR 0.10 + tax per hour after that.
Next, I install Parallels. When Parallels first starts, it offers you to install Windows 11 for ARM Insider Preview, and guides you through the steps.
First you need to register for the Windows Insider Program:
Next you download a virtual disk with the Windows image already pre-installed:
Scaleway has some bonkers download speeds on their virtual computers, 112 MB/s. That would have been a decent internal HDD transfer rate when I was young.
Next you open the downloaded virtual disk in Parallels:
After some automatic configuration and "We are getting things ready - Do not turn off your PC", the Windows installation is complete:
Next I install Windows updates. This is what takes the most time, actually.
After that, it is time for the SAP Gui installation:
If you observe the timestamps in the pictures, you'll see that the whole process took me less than 40 minutes. Maybe 45 if we include renting the M1 from Scaleway.
É molto facile e divertente.
I'll use it a little and write here whether it is usable, OK?
WOW Kamil !!!
Thanks a lot for trying it out! I really appreciate it. It's good to know sapgui 32bits starts on Windows 11 ARM for insider preview. I had lost all hopes until I learned that Windows ARM was "fully compatible" with 32 bits apps, like Sapgui (Thanks for confirming it works).
And of course, if you want to test it out more, like connecting the sapgui to some server via a vpn. Some typical workstreams like, interaction between SAPGUI and ARM's Excel, debug, some functional transaction, etc.
And now I see that you've been renting the M1s as a DaaS. I thought you'd get them physically, hahaha. I will also try it out and share my findings as well here.
I'd like to know if it works with my use cases before pulling the trigger on one of the expensive new M1 Pros or Maxes (I'll do some Machine/Deep learning besides being a Finance techno-functional consultant, so having one of the new M1s widens my use possibilities).
Thanks again for taking the time. You've been the first one trying this out in the internet. Thanks!!
You’re welcome. I wanted to do it anyway, and it didn’t take long.
The M1 is rented as Desktop-as-a-Service, yes. But it is a physical machine. There is a sustainably-powered real M1 Mini humming away in a former bomb shelter near Paris, and I am accessing it via VNC. Therefore, the results I am describing are identical to what you would get from a machine sitting on your desktop (sans any VNC lag).
A few considerations:
The performance is snappy. If I didn’t tell you what computer it was, you might think that you were working with a regular midrange-to-high-end Windows laptop. Like one of them new-ish i5 EVOs, or some such. Which is actually amazing, given that double-virtualisation is taking place. We are running virtual Windows on ARM, and within that we are emulating a different processor architecture (x86) to run an application written for that architecture.
And we are talking about a basic M1 Mini from a year ago, with 8 GB RAM. The second least powerful M1 configuration there is. I cannot imagine how a beast like an M1 Pro or Max would perform. The cheapest MacBook M1 Pro is down to EUR 2049 now in Black Friday here in Spain. While still a lot, this is no longer within the realm of insanity. I have bought more expensive laptops than that.
OK, that was the good news. Now to the bad news:
This setup is experimental. Unless money is no object, or you can really justify that price tag by other applications (such as the ML you mention, or video editing and whatnot), this setup is not reasonable right now. The Windows is a Preview version. It’s like a beta. It might stop working anytime, there is just no guarantee.
It was in the news a few months ago that for Microsoft, ARM Windows on M1 Macs is “not a supported scenario”. Then a few weeks later, speculations transpired that this was because of a deal with Qualcomm. Qualcomm allegedly helped Microsoft develop Windows on ARM, and therefore their chips have exclusivity to run it. However, the deal is supposed to expire soon, which would open a way for a proper ARM Windows on M1 Macs.
Rumors, speculations. For now, this whole setup is a beta version with no guarantees.
I have upgraded to Monterey. Now I am installing MS Office. I'll use it a little, and write about that.
Installed MS Office. Integration with SAP Gui is good. Download to Excel works well and is speedy, so is editing of long texts in Word.
I didn't manage to make Excel in-place work in ALVs. The Excel file had all the expected tabs, but no data. This, however, is probably because I don't know how to use it properly.
I have made a YouTube video showcasing the performance of M1 Mac + ARM Windows + SAP Gui Windows x86. Unfortunately, it turns out I don't know how to update videos in 4k quality on YouTube, and haven't really got the time now to investigate. Anyways, here is the video in potato quality. Barely usable, except perhaps to gain a general impression of how fast things move on screen.
OK, so that's all I have time for right now. Just to mention that if you want to get even more experimental, there is a thing called Crossover. It tries to make x86 applications executable on Mac OS, including on M1 Macs. I think it is based on Wine. Their database quotes SAP Gui compatibility as "Runs well", whatever that might mean. Geek level 110. Not for the faint-hearted.
I bought a new Apple notebook m1pro notebook, installed sap for gui but encountered a problem, sap for gui is very unfriendly to development, the place where the file is found during the uploading excel process, the file is obviously on the desktop but when opened it is It shows nothing, I hope it can be solved, and please tell me the solution, because after reading your article, I found that you seem to know something about this.
Nice read and worth to return to the comments section in the future 🙂 As a happy and overly convinced Mac user in the SAP context, one statement I cannot forget: "Personally, I do not like Mac OS for productivity. [...] I find the windows management [...] seriously retarded compared to MS Windows."
Why is that? What exactly causes pain?
I feel super productive and happy, that's why I am asking.
In case anyone who has read the above and is curious on recent developments - SAPGUI 800 Patch 1 32 bit seems to run fine on Windows 11 ARM using Parallels 18.2 on my MacBook M2 Pro. The 64 bit version of SAPGUI 800 did not run and I didn't investigate further due to time constraints.
Thanks. Good to know. I've always used SAP on Mac (on Windows under Parallels, since 2010). I got tired of the fan noises of the Macbook Pros, so I'm trying it with a M2 Macbook air with 24GB of RAM.
So far, amazing.
I'm also using the 32bits version of SAP Logon 770 nowadays.