Pair program with me! profile for carousel at Stack Overflow, Q&A for professional and enthusiast programmers

2/23/2014

My toolset

Developers have some special relationships with the tools  they use for everyday work.  I am not exception.

From the beginning of my carrier, I really spent lot of time trying different editors, terminals, operating systems... I was very passionate about that . Sometimes I didn't do anything, but just tuning new terminal or editor, which I quickly replaced with new one. I was aware that it could lead me to insoncistency,  so I was trying to learn as much as I can about new tools. By learning , I was sticking my  nose everywhere - from the Linux kernel to the most highest abstractions.

I didn't mentioned that Windows very quickly become boring, there was nothing interesting there for me. So I become dedicated Linux/Ubuntu user.  And Linux is perfect platform for any kind of programming (well not for C# but you know what I mean ). No developer can convince me that his favourite OS is Microsoft Windows, if  he is not their employee.

I was very fascinated (and still I am) with different (mostly open source) project. It is incredible how such masterpieces like Apache or Vim are totaly free, and you have support for any kind of problems - and it is still free.

These days I am not changing my tools so often - due to fact that I found my (almost) perfect  setup and that I don't have so much time.

So here is a quick overview what I use in my daily practice:

Main OS:
Linux/Ubuntu
I know, I know real hackers are using Gentoo and Slack but Ubuntu, which is based on Debian unstable is really up to date with bleeding edge packages - which are necessery due to fast changing web environment. Ubuntu 14.04. is going to be LTS (long term supported) so after upgrading, I wont be moving further for years.

Main editor:
Vim
What to say about Vim ? If you havent tried it, then no words can express what can Vim mean to productivity. Vim is iconic software and represents more then just text based editor. If you can't find something in the form of Vim extension, then you didn't look carefully. From Vim (with the help of terminal) I can code, debug, test, git, fetch...

Terminal emulators:
I am doing most of my work moving between browser and terminal.
I was using Terminator for long. Terminator has one great feature - you can split windows vertically and horizontally quickly. It is fully supported with all kind of character-sets and just works. One thing that I missed in Terminator was lack of line spacing. Only one Linux terminal that has that feature is Urxvt. Line spacing for me was so important, so I decided to migrate to Urxvt. It more geeky terminal, that needs some advanced configuration, but when you tune it by your needs - there is no turning back. But, nothing is perfect. On Ubuntu you can't set Urxvt transparent background  because Compiz has some weird issues with it. If you help me solve this, I'll buy you a beer , no matter in which part of the world you are :) Along with Urxvt comes Tmux, terminal multiplexer for managing multiple sessions.

Browsers:
Since I am primary a web developer, browser for me are just clients, with additional features. Chrome/Chromium team has produced awesome software. Chrome/Chromium developer tools is very powerful and if used correctly it can increase productivity, not just on client side. Chromium/Chrome is very opened toward developers and by just entering chrome://chrome-urls in the address bar, you can enjoy all different setting and statistics...

And that is it. There is so much power in everything above, that trying something else at this point would be just a waste of time.

At the end, I have to mention IDE-s. Only one that I was using for some time was KomodoEdit. It has good Linux support and some more good things  but that was all. I just don't know how to work in such environment. My fingers are in love with Vim keyboard bindings :)

Thanks for reading.








No comments:

Post a Comment