Dmitry Jemerov on the future of Java and the NBL: "Honestly, I don't know any language today that would become the next big thing. Groovy is interesting, but it's a dynamic language and has all the problems of dynamic languages. It's OK for small pieces of code. But building something the size of IntelliJ IDEA [in a dynamic language] would be a complete nightmare.
A dynamic language works great when you have a clearly-defined structure of an application, where you know where everything lives, where everything is, and what everything is around you. For example, with a Rails application, you have a very strict structure: You have controllers and views and models, and so on. It's all very uniform. You can easily jump into any place of the application and understand what's around you: Here comes the model, and here's the data from the Web request, and so on. That's easy to figure out.
With a product like IntelliJ, there is no such uniform structure. It's very big and very diverse. In my day job, I have to make changes in many places of the code. Static types are the only thing that lets me jump into any place in the code base and understand what everything is around me. I need to know what things are, what I can do with various things around the code that I need to change. With static types, I see that immediately. With a dynamically-typed language, I would need to spend half an hour investigating what goes where and what is what before being able to make a single change."
Ward Cunningham on IDEs "They're complicated, and you have to learn how to work them -- but boy, when you do, they make those languages start to feel like scripting languages. [... ] Why should we need heroics in the IDE to correct for misguidedness in the language design? If the purpose is to continuously evolve programs for business, then what's suitable is to have clean object models that are easy to read."
Benjamin C. Pierce: "Types – especially very precise ones – are a mixed blessing in practice."
4 Comments
My money is on Ward.
In a prior article to the one about 'Ward Cunningham on IDEs' (http://www.infoworld.com/article/03/0...) Udell uses Zope as an example as a use of scripting/python revolutionizing us.
A few months ago (don't remember exactly when) I wanted to check out Python. I grabbed the latest Python release from the ubuntu repos. I ran through the Django tutorial (which is really well done). Then I grabbed Zope. But it couldn't run on the latest Python. What's up with that? Did it get too big and unweildy for a scripting language? (for all I know it works with latest version now...)
wow, not one comment to discredit what I wrote?
I don't know what you are expecting Bill to do (I don't think he provides Zope support). But this is from the release notes for the latest (2008-05-10) version from zope.org (http://www.zope.org/Products/Zope/2.1...
"Supported Python versions:
Zope 2.10 requires Python 2.4.5 or higher (Python 2.4.4 is still acceptable). Older Python versions are no longer supported. Python 2.5 is not supported at this time."
As the release notes say, the latest version of Zope 2.x does not run on the latest version of Python.
I don't think this means that the sky is falling. It probably means that some core components in Zope 2.10 are dependent on something that has been re-designed in Python 2.5, and Zope will not work on Python 2.5 until those parts of Zope are re-designed (I'm saying this as someone who has not used Zope or Python for years). Python 2.5 has a new AST-based compiler, and my guess is that it would be something pretty fundamental like that. Complex software often has dependencies.
Since Python 2.4 is readily available I don't see why you think this is such a huge issue, or why it might have any implications for dynamic vs static languages. Zope itself has worked pretty flawlessly for me in the past no matter which version of Zope I've used and no matter which OS (windows, osx and linux). Getting various add-ons to work is another matter...