Today I would like to introduce you to a real life saver for people who are force to work on Windows systems. At my current place of work our whole company IT is based on Microsoft products and we use Windows all across the company. Furthermore, we do a lot of application development focusing on Windows clients.
Hence, Windows is the operating system of choice. No matter if I like it or not. In my spare time, I use a Mac and I really appreciate it. It is just the perfect mix of a solid Unix foundation and an awesome GUI. And it just works!
As I work a lot with Linux servers, too, I really like the shell and automate a lot of tedious tasks as well using plain shell scripts.
Why I do not like Cygwin
The only compromise I was aware of two years ago was Cygwin, which is basically a Bash environment for Windows, where most of the Unix commands work like on a Linux oder Mac machine.
I have used Cygwin during university, whenever we had to compile for Unix targets on a Windows machine. But it always feels „not right“. It was like an invader from outer space and it made problems all the time: Starting from the tedious task of installing new packages and ending with strange DLL errors (Windows, eh!).
Cygwin, by default, has no package manager. You need to execute the installation again, if you want to add some packages, say Python. That is really not what I want.
To cut a long story short, I have used Cygwin when I needed to, but avoided it for the rest of the time.
Babun to the rescue
When starting my Job at Dräger two and a half years ago, I was unsatisfied with the restrictions, the Windows command line enforced on my.
Therefore, I started to look for a Cygwin alternative which better satisfies my needs – and found Babun.
In short, Babun is a preconfigured Cygwin with a lot of goodies. It has Zsh and oh-my-zsh preconfigured and comes with its own package manager pact for the management of Cygwin packages. Furthermore it can be configured to work with HTTP/HTTPS proxies and it has a git-aware prompt.
The default configuration of Babun matches my expectation for at least 95%, maybe more. A good place to start with. For me, it definitely has increased my productivity and reduced the pain of working with Windows.
Things I like most in Babun
Of course, there are lot of nice features in Cygwin and even more in Babun. But the most useful feature for me is definitely the git integration: I can see on which branch I am and oh-my-zsh brings a lot of nice git shortcuts.
Furthermore, I enjoy the open command, which opens a file with its default editor or a directory with the Windows Explorer.
And finally, Babun comes with an auto update mechanism which automatically updates oh-my-zsh to the most recent version. Packages and babun itself can be easily updated as well.
Things I do not like in Babun
Sometimes, it is really slow.
The path autocompletion from Zsh is a nice feature but it is painfully slow. Tabbing a half-written path sometimes takes 10 seconds (or even more) to complete. On my Mac, it just takes milliseconds.
Also git in Babun is not as fast as on real Unix systems. That is, because at the end of the day, it is just Windows.
If you have to work on a Windows machine and are missing an Unix environment, I can recommend Babun.
It makes life much easier, at least for me. But do not expect too much. It is not like a tasty cake but more like the creme topping on a dunghill.