Open source has changed a lot of things, notably, abundant tools that are of quality, usability and activeness. Here I will list a number of them which change my life doing development.

Editor

Vim – the ultimate editor

I have tried many editors, which includes, sublime text, ultraedit, notepad++, and those heavy ones like Eclipse, Visual Studio, etc., and I have to admit that the one fits me best is the vim, of course, vim with suitable plugins.

Vim is availble in all platforms including Linux, Windows, with both x86 and x64 versions, thus I can always have the same experience, the hotkeys, and without the mouse.

Eric S. Raymond in his book “The Art of UNIX Programming”, however, insists that emacs be better. Everyone is free to choose, but I believe the word that Andrew Hunt and David Thomas once said in their book “The Pragmatic Programmer”:

Use a Single Editor Well

Diff Tool

Meld – A decent choice

I have tried Beyond Compare, which I think is the best in the field, yes the best. WinMerge, P4Merge, tortoise Diff, vimdiff, they are good but for some reasons I do not like them. But Beyond Compare is not free or open source, and meld, in my point of view, works as a decent alternative to Beyond Compare. I like its visual interface, and its easy integration with SCM like git.

Besides, meld is also cross-platform, which I will always have it, no matter which platform I am working on.

SCM

Git – Believe Linus

When I started development, I used CVS to track my codes, then Subversion, which is way better than that. But it was until Git that I thought a modern version control had come. Thanks to Linus Torvalds, the creator of Linux, contributed to the community the simple yet powerful toolsets. Every developer should start using Git in their daily work, even without a remote repository.

Git also enables never-so-easy collaboration between developers. The pull request, branch, rebase, merge, all act as interesting but socialized things, much much better than the days developers sending patches.

Use it!