Archive for September 25, 2014

Moving to Linux, why and how – Part 1

September 25, 2014 1 comment

Linux. You either love it or hate it. And if you are like me, with a background on either Amiga or Mac, only to “grow up” and get a Windows PC for college or work – then chances are you have already tried several Linux variations over the years, but always ended up going back to Microsoft Windows.

My reason to use Windows is twofold: Working as a programmer for many years I have gotten to know Windows from the inside out. My primary programming language, Object Pascal, is strongly represented on Windows in the form of Embarcadero Delphi (previously Borland) – so simply dropping Windows over night was never an option. Dropping Windows would in effect mean putting myself out of work. So that’s not gonna happen.

Also, I don’t carry any ill will towards Windows. It has put food on my table all my adult life, so why should I hate that? I use Windows on a daily basis – but in my line of work it happens primarily through VMWare, not on an actual Windows machine. Hence I don’t want to throw huge amounts of cash out the window (pun intended) for an installation I quite frankly don’t use or need. As long as VMWare or any other virtualization tool is at hand, I can do my work.

Secondly, learning a new operative system takes time. It depends of course; on how much you need to know about something before you are comfortable using it. If you know every inch of Windows, and rate yourself an expert in all things Microsoft – then odds are you will resist going back to “newbie” or “lamer” status. People tend to stick with what they know, precisely to avoid feeling like a beginner.

If that seems about right, then keep on reading.

Elegant, easy to use and powerful

Elegant, easy to use and powerful

Mac’s are doing it

If you ask the average Mac user where the preferences files for a service is stored on his system, I doubt you will get an intelligent answer. The emphasis being “user”, not programmer in this context. The world of Apple is a purely consumer oriented enterprise. Users pay more money for a Mac exactly to avoid having to be an expert (!) In fact that’s one of the major selling points Apple got, that you can be a complete novice and still operate highly advanced technology.

A lot of very productive Apple users have absolutely no idea how Unix works. And Apple is doing their best to obscure the fact that they are selling Unix to the masses; Hiding the underlying filesystem, renaming important system files depending on the locale (localization of common system names) and much, much more. A Mac was never designed purely for technicians, hackers (in the original, kind sense), and under no circumstance for people who “think different”.

VGScene, before it became Firemonkey, on OSX

VGScene, before it became Firemonkey, on OSX

Be that as it may — the point of mentioning Mac’s was to demonstrate that you don’t have to be an expert in all things Linux in order to enjoy it. So what if you don’t know how to invoke some low-level kernel function (because calling kernel32.dll under Windows is what you do daily right?). If Linux has a program you enjoy using, which is helpful and makes you productive – why not make use of it? Why should we pay Microsoft $250-$400 for a system which, to be frank, you can’t trust. Windows Vista was a complete waste of money, only saved in the 11’th hour by Windows 7 (which made PC’s usable again). But as the smoke settled Microsoft went ahead and screwed up Windows 8 with “tiles”, trying to be something they are not. Leave iOS to Apple and stick to what Windows does best: the Windows desktop and Start button.+

Linux in 2014

If you had asked me some 10 years ago about Linux, I would probably have urged you to stick with Windows. My own experience was rather dim: always missing drivers. No games, only freeware crap. No Delphi, no Visual Studio – and you had to be an expert to uninstall a simple program. And should your disk get read/write errors — you were helpless unless you knew a Linux expert. That’s not a pretty picture. No wonder people have avoided Linux and stuck to Microsoft.

Play thousands of titles, nintendo, arcade, sega, psx on MAME

Play thousands of titles, nintendo, arcade, sega, psx on MAME

Today however, Linux is a very different system than it was back in 2004. Ubuntu specifically has financial backing, and the owner of the company have spent millions paying developers to write drivers and “fix” the package system. Installing a program under Linux has always been easy – but getting rid of it later (especially if something goes wrong) was a nightmare. For Ubuntu at least that is a tale from the past, and what you face now is — in lack of a better phrase, is a polished experience very close to Apple’s OS X. With one crucial difference: The majority of applications on “app store” are free – and installing them is done with a single click.


For the past 8 years most of my development has been done in VMWare, even on Windows. I own several Delphi version and have isolated each development environment in its own virtual-machine, complete with various versions of Windows. That way, I can create and test my programs on all versions of Windows from XP through Windows 8, using Delphi 7 through XE5. This setup, although time-consuming to make, have saved my bacon more than once. Especially when it comes to testing and bug-fixing (!) It also means that I can bring my machines with me on an external disk – no matter where I work. Many of my clients insist that I work “in office”, and spending days setting up their PC to match my development needs is no longer a problem. I just install VMWare player – and I’m ready to code.

VMWare on Ubuntu

VMWare on Ubuntu

The benefit of all this is that the underlying operative system doesn’t matter as much as it once did. As long as I can install VMWare – I can use Windows, OS X, Linux and even Spark Solaris for that matter (!). For me personally it means I save quite a bit of cash, because I don’t need to pay for more Windows Licensenses. I own the licenses for my Virtual Machines — and that’s it.

As a “Delphi” programmer I can also enjoy FPC/Lazarus natively on Linux, and generate binaries for Windows, OS X and Linux from the same IDE. Perhaps one day Embarcadero will offer Delphi for Linux and Mac, but until then I don’t have to pay thousands just to do my job (!).

When it comes to everyday tasks Linux also suits my needs. There are a ton of Open Office forks out there (libreOffice is very polished), email clients, browsers, music players, dvd/movie players to choose from. And should I feel the urge to play games then I can just fire up Steam – or Windows in VMWare and play whatever I love.  I’m more of a retro gamer so I enjoy MAME, Scumm VM and Amiga Emulator’s more than I do modern games (I own an XBox and PSX1-3 so I don’t suffer in that department).

 Getting started on Linux

If you fancy getting started with Linux as a Delphi programmer then this article series will be for you. I will go through everything: getting your Delphi installation into VMWare, installing Ubuntu on your machine – and installing VMWare on your Ubuntu installation. We are also going to dig into Lazarus and various other development tools, not to mention getting Smart Mobile Studio to run under Linux so you can continue to write cutting edge HTML5/JS applications.

Suck on that Bill Gates :)

Suck on that Bill Gates 🙂

In the meantime, download the latest Ubuntu distro and burn it to a DVD/CD Rom. Spend a few minutes making sure you have backed up everything on an external drive (Fat32 or NTFS formated) so you are absolutely sure nothing can be damaged if you do something wrong. Dropbox is a neat place to store your source files 🙂