Programming & Barriers to Entry

A fellow learner has posted “Programming & Barriers to Entry”. Cori has much to say in this article concentrated around command line tools, vim and Ruby. I’d like to comment on some of the perceptions and share my own opinions.

Command Line

I picked up on some discord with regard to this type of interaction.

…Intellisense (or lack thereof).  Ctrl-spacebar is my friend. It’s what I’ve grown to love. Typing /?—>enter—>up-arrow—>space—>command-I-really-need is a bit of a PITA. It feels like a clunky waste of time.

Aren’t these the same type of interaction? CTL+Space pops up a list of available commands, arrow up/down to select and hit enter to paste that text into the window. Granted Intellisense is more polished and will show all of the overloads, but I honestly have a difficult time understanding the difference.

Git Immersion was very helpful for ramping up quickly with Git. Git is just a plate full of awesome. I can get tons done with four basic commands after I can Alt+Tab to  my bash shell:

git checkout -b working_branch #separates my code from the herd.

git status #to see all of the files that I've modified since my last checkin. 

git add . #readies them to be committed to the local repository.

git commit -m ‘checkin comment’ #stores them away. 

I don’t have to right-click anything! Since I’m working locally, I’m not at the mercy of a flaky connection to a central server. When I want to diff files, that happens locally too.

I’ve got BeyondCompare set up so in the bach shell I can use

git difftool

and then roll through all of the files that I’ve changed and it’s pretty snappy.

gitk all

Shows the entire history of the repository

gitk filename

Will do the same for a single file.

There is a git gui as well as Tortoise Git to go along with Caleb’s favorite.

VIM

It is a very powerful text editor. It really is language agnostic and enables development in a huge variety of languages. Visual Studio, not so much. I started fooling with VIM when I started doing the Ruby Koans. I stumbled through the help tutorial a few times over several months and got the hang of using VIM for navigating documents with the home row keys and pattern matching searches. I try to use it when I’m not doing .net development, but I’m still staying in the shallow end of the pool. I’m still much more comfortable navigating a C# project with Resharper/CodeRush inside VS than I think I’ll ever be with VIM, but VS has a 10 year head start.

Ruby and Macs

There seems to be a strong correlation between Macs and Ruby developers among Hack Club attendees. Many of the folks who attend do own Macs. Improving Enterprises, my employer and sponsor of many wonderful user groups, has an amazing employee purchase plan for computers and many of the consultants take full advantage of that benefit. Several of the Macs at Hack Club are running Windows 7 in native mode and many more are running Windows 7 via VMWare Fusion of Parallels.

I’d hazard a guess that Greg Vaughn is in the minority and using Ruby in OSX. Amir boots to Windows natively via BootCamp and I believe does all of his Ruby development under Windows. I’ve installed Ruby 1.9 in my VMWare instance and use Growl For Windows and a ruby command prompt for SpecWatchr when I’m deliberately practicing BDD through the beauty of NSpec. Ruby in this group is more about learning something new since most of the crew work in .net for paychecks.