One argument script pimps use frequently is that it doesn’t matter what tools a contractor uses to build a house as long as the finished product is the same.
The problem with this argument is that the premise and the analogy are flawed. Comparing the language to the tools is not quite accurate. The language is more aptly compared to the building materials used instead of the tools. The tools would instead include things like the IDE. With the analogy corrected we now see that the choice of building material is very important. Using 2x4's instead 2x6's will have a big impact on insulation properties (thicker wall cavities) and cost.
Is this important? Absolutely! Unfortunately, too many scripting language fans (script pimps) make the same flawed analogy in order to justify the use of their pet language instead of a higher performance language like C++ (or C#, Java, etc). Scripting languages like Ruby are slower then compiled languages. Also their nature precludes them from having good IDE support. This is because much of the meaning (context) can’t be derived until runtime so things like IntelliSense become difficult if not impossible to implement.
Following the scripter’s analysis we are supposed to assume that scripting languages allow faster construction which I would say is another falsehood. Yes, some contractors might be able to cut wood just as fast with a handsaw but most want to use as much automation as possible. Hence, table saws, compound miter saws with laser guides, etc. These automation tools are closer to Visual Studio than VIM.
In my experience with Ruby (among other languages) I found that the resulting programs were usually slower, which a scripting language will be by its nature. I also found that the emperor wears no clothes! Shockingly, developing in a scripting language is slower because of the lack of automation tools. Example, try to find all references to variable in a Ruby on Rails project. Now try the same thing in a C# project using Visual Studio. In Visual Studio it’s a right click and “Find All References”. In VIM you could search for the references but you don’t have any support for context. You don’t know that is the only reference to that variable. You are using a handsaw instead of the best tools available. I'm sorry but reality demands that 1 = 1 and slower is slower and speed is important.
Remember Me