What do Sophisticated Languages Have To Offer?

Oliver Steele has written an interesting article, The IDE Divide, describing two camps in the developer world: language mavens and tool mavens.
If you frequent this blog you should be well aware that I am pretty excited about Code Browser, a simple text editor with some cool folding capabilities. And as I find programming languages to be one of the most interesting subjects in the field of computer science, I think that I would intuitively put myself in the language camp. I would like to claim that language design will provide programmers with the required tools to improve their efficiency in the years to come. I am starting to doubt that this is the case, though.
I wonder if this divide is related to static versus dynamic typing. It seems to me that for an IDE to be any good, your language has to be somewhat towards the static end of the scale. The more binding that takes place at run-time, the less can be inferred by the IDE when editing. Bruce Eckel argues that a Python IDE is not quite as necessary as Java IDEs are. In Python, he claims, productivity is inherent in the language whereas in Java, you get the boost from the IDE.
Now I know that dynamic typing people hate the insulting “scripting language” argument but I am going to take it up anyway: what about large systems? I am not claiming that you cannot make or maintain large systems with dynamically typed languages. In fact, I think they might work very well for such systems. But with large systems, I find that the IDE really comes to the rescue. Intellisense provides me with the documentation that I need 90% of the time, right at my fingertips. The live parsing and syntax error highlighting is something that I could easily do without. But knowing which methods a class has, which parameters a function takes and what their types and names are is invaluable. I am reminded of the GMail slogan: Search, don’t sort. I think this resembles the main difference between the language camp and the IDE camp. Language people like to sort, IDE people like to search. When a system grows, the complexity will grow with it. Introducing layers and abstractions help - they’re indispensable, but they can’t remove complexity completely. Even if you have perfectly refactored code forming a tree of abstractions, you will have to trace through it vertically as well as horizontally. There will be many functions, files and lines of code. And in this case, I think that the IDE and the search “paradigm” work better.
As I said, I would really hate to claim that language research is unimportant, and I would love to be convinced that I am wrong here. Maybe I should do some work on Chandler or some other large, dynamically typed project, just to see what it is like..



3 Responses to “What do Sophisticated Languages Have To Offer?”

  1. Marc Says:

    One of the most interesting IDEs to me is the Emacs/SLIME environment for Lisp. It’s not so much the “Intellisense” aspect - it’s the very interactive, incremental approach that it encourages. It gives you lots of early feedback and it’s fun.

    I always wonder if I should be using a more polished modern IDE like Eclipse for my C++ development. Intuitively, it feels to me like I get 90% of what I need from Emacs and I can run it from any terminal over ssh, so I’ve never ended up using Eclipse for any length of time.

  2. kristian Says:

    I think I’ll have to give Emacs another shot. I wasn’t too fond of it when I used it a couple of years ago, but I have been brought up in a Microsoft world, so I guess I was unfairly biased..
    I think that Eclipse is great for Java development but the last time I tried, the c++ plugin was no way near state-of-the-art c++ IDEs.

  3. Amit Patel Says:

    IDEs tend to be really good for one platform. Even Eclipse, which supports many languages, is largely focused on Java. Emacs is reasonable for a lot of different languages and systems. If you’re going to switch OSes or languages every 5 years, it makes sense to try out vim or Emacs, which will be around for a long time. If you’re mostly using one system, then Emacs won’t be as valuable to you.

Leave a Reply

You must be logged in to post a comment.

-->
  • buy generic viagra
  • buy cialis from canada
  • price of acomplia
  • buy synthroid without prescription
  • synthroid online cheap
  • cialis from india
  • viagra order
  • accutane generic
  • cheapest levitra prices
  • buy clomid online
  • generic cialis cheap
  • buy cialis lowest price
  • buy acomplia
  • buy levitra online
  • cheap cialis pill
  • buy cheapest cialis online
  • discount cialis
  • where to order viagra
  • viagra no prescription
  • order cialis no prescription required
  • soma generic
  • cialis tablet
  • levitra
  • cialis for order
  • order acomplia online
  • cheap generic soma
  • order levitra
  • discount cialis no rx
  • find cialis no prescription required
  • viagra online
  • cialis malaysia
  • viagra uk
  • soma pharmacy
  • buy cheap cialis
  • levitra cheap
  • buy lasix without prescription
  • lasix without prescription
  • order propecia online
  • cheap cialis
  • viagra free delivery
  • viagra overnight
  • cheap clomid online
  • lasix without a prescription
  • viagra online review
  • find viagra online
  • cialis generic
  • purchase viagra
  • propecia pharmacy
  • find cheap cialis
  • cheapest cialis prices
  • buy soma cheap
  • buy lasix cheap
  • cialis overnight
  • sale cialis
  • clomid pills
  • order cialis on internet
  • soma sale
  • cheapest lasix prices
  • viagra no online prescription
  • buy viagra from us
  • buy generic cialis online
  • cheap viagra tablet
  • soma without prescription
  • buy zithromax cheap
  • order propecia
  • buy cheap synthroid
  • find cheap cialis online
  • buy cheap lasix
  • order soma
  • lowest price propecia
  • discount propecia
  • purchase viagra online
  • accutane for sale
  • soma pills