Tool support vs. simplicity

Posted by Jonathan

Even I do not really want to program in Java anymore after discovering the beauty of Ruby over a year ago, I am a regular listener of the Java Posse.

Python, Ruby and especially Ruby on Rails are common guests on this show as they unsettled the view of many Java Programmers. Every time the guys talk about dynamic scripting languages the story goes:

A: “I really like the features, the productivity gain and the dynamic capabilities. It is amazing what you can do with 10 lines of code.”
B: “Yeah, but Ruby still lacks good tool support and IDEs like Eclipse or IDEA.”
C: “Yes, that’s true.”
A: “Yeah with Java you do not have all these features but you have fabulous tools like Creator, they are just amazing. I can’t imaging working without such an IDE.”
B: “So let’s forget about these until they got an Eclipse.”

And every time I hear this I could just scream that the whole point of having such dynamic and expressive languages is that you can actually do some coding without having to rely on an IDE.

David Heinemeier Hansson gave a similar quote in an recent interiew at uk.builder.com:

Ruby attacks the productivity problem by making the core elements as expressive as possible, so the programmer doesn’t have to rely on IDEs and other tools on top of the language to get stuff done. Few programmers today would even consider doing Java without Eclipse/IDEA or C# without Visual Studio, but lots of programmers happily write Ruby code in good text editors that aren’t born with specialization for one particular language, like TextMate for OS X, which is the big hit in Ruby/Rails circles.

AMEN

Another common one goes like this:

A: “We often read about the so called complexity of Java programming, especially with J2EE.”
B: “I think this comes from people who are used to write their code with Vim.”
A: “Yes, you do not write deployment descriptors or Hibernate configuration files with Vim, you have to use a modern IDE like Eclipse or IDEA, they will generate the code and configuration for you.”
B: “We definitely recommend to use NetBeans, Eclipse, IDEA or Creator, this will ease a lot.”

Dynamic languages like Python and Ruby make programming much simpler as opposed to an IDE which only takes over control and hides the complexity.

Hiding is not the same as removing.

The IDEs bring their own complexity and learning curve. There are whole books published about how to use Eclipse!

How often do you see a novice despairing while just trying to edit a bunch of files in IDEs like Eclipse without creating a workspace or a project. Compare this with Textmate, just drop a folder or a file on its symbol in the Dock and boom, you get a tree view of all the files and you can just start the edit them and get productive.

Comments

Leave a response

  1. MDKFebruary 14, 2006 @ 01:04 AM
    Dude, that's so true. If you need an IDE to understand/handle your code, it means the code is simply broken (badly designed). And that applies to ANY language. 99% of open-source for *nix is written in plain (doesn't mean "simple"!) text editors. And supposingly a lot of this code is more advanced than all the stuff these guys will ever put a hand on. This is not to say that IDE's are generally bad. Hell, they surely help mediocre programmers to earn their living!
  2. Metin AmiroffFebruary 14, 2006 @ 07:18 AM
    but lots of programmers happily write Ruby code in good text editors that aren't born with specialization for one particular language, like TextMate for OS X, which is the big hit in Ruby/Rails circles.
    So true, except that there is no single "good" editor for windows. Currently Arachno seems to be the best option but it's still far behind textmate from usability point of view. So, in my opinion the better phrase would be, "You need a good editor to do Rails development" instead of "You need an IDE to do Rails development"
  3. John BledsoeFebruary 14, 2006 @ 08:46 PM
    I agree somewhat. My Ruby code needs a lot less hand holding. However, there are many features of Java editors that would make Ruby even more productive if it had a better editor. My IntelliJ IDE catches many errors/shortcuts/optimizations before I compile/run my applications. These little gotchas happen to even the best programmers. It also has the side effect of helping the programmer become better. Over the years IDEA corrects me less and less often. Don't get me wrong, I like TextMate, but it's no IDEA.
  4. DeviousFebruary 21, 2006 @ 06:09 PM
    I'm just learning (programming in general), so my opinion may not count for much. I've done some .NET, some C++ but not much of either. Ruby is pretty much my first language, besides basic HTML. I use RadRails, an Eclipse plugin. It's got some annoying bugs but they are always fixed by restarting the app. I don't think much more of an IDE is necessary, unless you impliment decent autocomplete.... http://www.radrails.org/
  5. http://blog.rubycorner.com/March 13, 2006 @ 09:40 PM
    As a long time Java/J2EE developer I must confess I have never been able to use an IDE, and all the people at the office do so. With Ruby and Rails this hasn't changed ;-) We all are "text editor" programmers. And thanks for registering your blog at RubyCorner!
  6. EdgarMarch 13, 2006 @ 10:06 PM
    100% agree
  7. MarkMarch 14, 2006 @ 10:26 PM
    Can I say http://www.radrails.org/ ?