logo

 

     
 
Home
Site Map
Search
 
:: Bitwise Courses ::
 
Bitwise Dusty Archives
 
 
 

rss

 
 

ruby in steel

learn aikido in north devon

Learn Aikido in North Devon

 


Section :: Rants and Raves

- Format For Printing...

Ruby and Visual Studio - The Great Divide

When Worlds Collide...
Monday 22 October 2007.
 

Exhaustion is a word that is barely adequate to describe the way I feel. If you are a software developer by profession, you may know this feeling. We’ve been labouring over a huge update to our software for longer than I care to remember. There have been months of 12 hour days and 7 day weeks with nothing in the way of relaxation. Finally the software is out and, instead of feeling elation, I just want to crawl into a quiet corner and doze off.

When developing a great IDE, you need a great IDE - a text editor simply doesn’t cut the mustard...

Except I can’t, of course. Because as soon as one release is finished, work on the next release begins. However, by way of celebration, I decided to give myself this one afternoon off to sit back, listen to some music, read a book and try to prevent the cat from climbing the curtains.

It also gave me time to muse upon The Great Divide.

Ruby and Visual Studio -The Odd Couple?

This great gulf between the way I program and the way other people tell me they program has been borne down upon me many times over the past couple of years. It is almost two years now since we first began work on the project that has since taken over my life: Ruby In Steel. This is a Ruby on Rails IDE for Visual Studio - and that fact alone strikes many people as a contradiction.

Visual Studio, you see, is a huge and powerful IDE. In my view, it is probably the biggest and most powerful IDE the world has thusfar seen. People who use Visual Studio expect state of the art debugging, fast and accurate IntelliSense, visual form designers and a whole load of useful integrated development tools. Whereas people who program in Ruby tend to prefer simple text editors.

Well, not all Ruby programmers. There are exceptions to the rule or we’d be out of business. But a great many Ruby programmers make no secret of the fact that they believe IDEs are ‘bloated’ and bad whereas simple text editors are ‘agile’ and good.

I can see that, for some applications, a simple text editor may be sufficient. But I can also tell you that we could never have undertaken a project of the size and complexity of Ruby in Steel without a great IDE to assist us. The IDE which we’ve used (this may not surprise you!) happens to be Visual Studio. Ruby In Steel has a codebase comprising over 100 individual files (mostly in C# with a few in C++ and, naturally, some in Ruby) organized in the form of twenty separate projects. The whole shebang is gathered together into the Visual Studio Solution Explorer and we make full use of all the integrated editing and (especially!) debugging capabilities which VS provides. I would challenge anybody who argues that an IDE is unnecessary to undertake a project of this scale - and make it work!

Debugging is not a luxury - it is an essential!

In my view, debugging - fast, integrated debugging with breakpoints, step-into/over and ‘drill-down’ expansion - is an absolute requirement. I’ve heard people say that testing is all you need. Write your programs, write some tests then run your tests at the end to check everything works. Yes, automated testing is fine as a last resort. But it is not a substitute for debugging. The debugger is your best friend in this business. Working without it is like doing a hire-wire act over the Niagara Falls without a safety net - possible, yes, but not something you would wish to do on a daily basis.

Even so, I know for a fact that there will be those ardent Ruby programmers who will be reading this shaking their heads sadly in the sure and certain knowledge that I am invincibly ignorant, that I have misunderstood the austere beauty of coding without a safety net and that, in any case, Visual Studio is the work of the devil.

All I can say in reply is that I won’t be happy until the day arrives when I feel I could reasonably undertake a programming project of the size and scale of Ruby In Steel but written in Ruby rather than in C#. All my efforts currently are going towards bringing that day closer...

And no, I won’t be doing it in a simple text editor ;-)

http://www.sapphiresteel.com

AddThis Social Bookmark Button


Home