Are all editors equal?
As a contractor, I feel I that one of my key responsibilities is the ability to work within any given environment, part of that is the ability to successfully write code on most (if not all) editors. This is a goal that I feel all developers should be able to achieve.
Towards this end, I use a GUI editor, either Rubymine or Sublime Text (though I have previously used Textmate), to write my code. All of these editors provide a fairly simple workflow, with a relatively standard set of commands and (in most cases) fairly standard shortcuts to access those commands.
This provides a simple starting point when I join other users, allow me assist or pair on their machines.
However, this does not always work, as within the ruby developer community “vim” seems to be an editor of choice for an increasing proportion of users. The main issue here is that it is not possible to group vim under a single “banner” in the same way that you can other editors.
User customisation of vim to meet individual idiosyncrasies, installation of add-ons and just general difference in user preferences. This seems to be the way with vim and while it is possible to do the same on GUI editors, the level of customisation available is far smaller.
I have seen this result in companies where two vim users could not work effectively on each other computer, or spending the first hour of a pairing session taking about and change each others settings. < sarcasm>Changing the leader key and disabling the arrow keys being my two favourite vim customisations.</sarcasm>
While I have heard the arguments about how vim is a wonderful tool, that you can use it to program in any language and that it will help improve your output. I would suggest that people have made a living building tool specific programming tool for each given language for a reason.
As a final note; and the main driver behind this post. I recently worked with a junior developer who had done an internship at a respected ruby house. They were a 100% vim shop, but had solved the customisation issue by enforcing the use of a shared vim configuration - so a least it was the some from user to user.
This is a good practise and one I could potential buy into, however this practise did not extend beyond the company and didn’t set him up to be confident working on with a customised vim installations once he got out into the workplace.
< rant> For this reason can I ask that regardless of your person preference of ruby editor, it is important that as a community we encourage juniors by making the barrier to entry as low as possible - and by this I mean vim is probably not the tool for them. At least not initially, let them get up to speed using a simple editor such as sublime while enable them to focus of the core concern of coding. </rant>