This post originated from an RSS feed registered with Ruby Buzz
by Jonathan Weiss.
Original Post: Tool support vs. simplicity
Feed Title: BlogFish
Feed URL: http://blog.innerewut.de/feed/atom.xml
Feed Description: Weblog by Jonathan Weiss about Unix, BSD, security, Programming in Ruby, Ruby on Rails and Agile Development.
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.
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.