O’Reilly has just published an interview with The Pragmatic Programmers.
They chat about a variety of topics, from publishing to making the software world a better place.
ORN: Ward Cunningham once told me “With better IDEs, static languages such as Java are almost as easy to program in as dynamic languages.” You’re both fans of the Ruby language, especially when compared to more static languages. Do you think that the potential shift to writing business applications in slightly more dynamic languages such as Java and C# (slightly in the sense that they’re still rather static, dynamic in the sense that they handle memory management for you and have improved reflection and introspection) is good for programmer productivity and ease, or do those languages not go far enough? If not, how much further should they go?
Andy: I don’t think they go far enough. Memory management, for instance, is a great convenience; it wasn’t that long ago when we had to use program overlays by hand in order to fit a large program into 64K of RAM or so. So while we’ve made some good advances, many popular languages and environments still inadvertently encourage tight coupling and rigid code, and we need to get beyond that.
Dave: Let me take that further. Java and C# are not really dynamic in any meaningful way. Memory management is a small part of the picture, but the real gains in these more dynamic languages come from different areas, particularly from a flexible type model and from the ability to metaprogram.
Ultimately, it comes down to ease of expression. If I can express myself in code at a level closer to the problem domain, then I’m going to be more effective, and my code is likely to be easier to maintain and extend. Paul Graham makes a big deal out of the way Lisp helped him while building the software that became Yahoo Stores, and he’s right. These languages, applied properly, are a strategic advantage. I know some companies are using them with great success. And you know — they’re keeping quiet about it.
I always love hearing their practical, frank, tone :)