The Artima Developer Community
Sponsored Link

Java Community News
Bill Burke on Dynamic Language Myths and Rationalizations

19 replies on 2 pages. Most recent reply: Feb 28, 2008 9:00 PM by Diego Fernandez

Welcome Guest
  Sign In

Go back to the topic listing  Back to Topic List Click to reply to this topic  Reply to this Topic Click to search messages in this forum  Search Forum Click for a threaded view of the topic  Threaded View   
Previous Topic   Next Topic
Flat View: This topic has 19 replies on 2 pages [ « | 1 2 ]
Merriodoc Brandybuck

Posts: 225
Nickname: brandybuck
Registered: Mar, 2003

Re: Bill Burke on Dynamic Language Myths and Rationalizations Posted: Feb 19, 2008 3:08 PM
Reply to this message Reply
Advertisement
> The main thing he's looking for (from what I can tell) is
> static analysis for refactoring support. I'm not sure the
> above would provide this.
>

If that is what he is looking for, then you are right. If the need is simply to reduce the amount of keys I have to punch in at the keyboard, then it does. Hard to say, but given the bent of the article I would tend to agree you are right.

> Personally, I think that it would be pretty difficult to
> make a language statically typed without eliminating some
> of the most useful features of dynamic languages.
>

Such as? I know I have my rather short laundry list, I'm just wondering what yours are.

> I also see the value in static typing but I think it's
> possible that static languages create some of the
> refactoring needs that they make possible. It's kind of
> like the arguments for WS* over REST that I read and hear:
> WSDL allows for code generation. But the thing is that
> the main reason for needing the code generation is to deal
> with the complexities of the standards supported by it.
>

I agree. Steve Yegge wrote a looooong piece on this very phenomena.

> This isn't to say that there isn't a value. I think there
> is but I think it's easy to get stuck in a static view
> when judging dynamic languages and vice versa.

Yeah. I think we all call that 'getting stuck' experience. I'm usually in the vice versa camp. Proud of it too. I'm not going to go on record as trying to be unbiased in that regard. :-) I am more often missing dynamic features when working in static environments than missing static features when working in dynamic environments. The occasions do arise, but they are very rare.

Michael Hobbs

Posts: 51
Nickname: hobb0001
Registered: Dec, 2004

Re: Bill Burke on Dynamic Language Myths and Rationalizations Posted: Feb 19, 2008 6:13 PM
Reply to this message Reply
> > He lost me when he said "I do wish that a statically
> typed
> > dynamic language would come of age.."
>
> Seriously, though, what does that mean (if anything)?

I just figured he was referring to Visual Basic or PL/SQL. ;-)

Steve Donovan

Posts: 24
Nickname: stevedonov
Registered: May, 2005

Re: Bill Burke on Dynamic Language Myths and Rationalizations Posted: Feb 20, 2008 3:10 AM
Reply to this message Reply
> Personally, I think that it would be pretty difficult to
> make a language statically typed without eliminating some
> of the most useful features of dynamic languages.

Most interesting...certainly a statically typed language can use type inference so that there are very few explicit type annotations, except in method declarations, where they are most useful. That reduces the clutter.

The compile/interpret thing isn't hard-and-fast. I did a C++ interpreter some years ago (still bear the scars) and it was very satisfying for C++ programs to run just like that. Mind you, it was slower, but the edit/continue cycle was marvelous. With all we know about JIT, fat compile times aren't technically necessary any more, even if you wanted fast runtimes.

steve d.

James Watson

Posts: 2024
Nickname: watson
Registered: Sep, 2005

Re: Bill Burke on Dynamic Language Myths and Rationalizations Posted: Feb 20, 2008 6:24 AM
Reply to this message Reply
> > Personally, I think that it would be pretty difficult
> to
> > make a language statically typed without eliminating
> some
> > of the most useful features of dynamic languages.
> >
>
> Such as? I know I have my rather short laundry list, I'm
> just wondering what yours are.

One that I am a big fan of when I write Python is that ability to 'create' methods at runtime. The other is the ability to call any method on any object. Combined these features allow for approaches that don't really make sense from the static perspective.

Diego Fernandez

Posts: 1
Nickname: diegof79
Registered: Feb, 2008

Re: Bill Burke on Dynamic Language Myths and Rationalizations Posted: Feb 28, 2008 9:00 PM
Reply to this message Reply
I think that Burke is really disinformed about dynamic languages:

- "I do wish that a statically typed dynamic language would come of age".
The first version of Smalltalk was created in 1972, and the first public release was around 1980. Smalltalk is a dynamic language, and is older than Java. (I don't too much about LISP, but I think that enters in the same category).

- "Lack of type safety doesn’t scale well to large teams"
Did he has some study to back that claim? In fact if you don't have tests or a good modular design, even static typed languages don't scale well on large teams.
For example the "Web" is not static typed, and is the best example on scalability that I can think.

- "Dynamic Language XXXX didn’t do well against Java in XXXX benchmark"
Well Burke you should read more about the history of the JVM. Before Java, most of the JVM team at Sun worked in two dynamic languages: Strongtalk (an Smalltalk with optional type annotations) and Self (a really dynamic prototype based language).
Is true that static typing allows some heavy optimizations, but if you read the research papers on Strongtalk you will be surprised that they found that with some techniques the difference between having static information or not is really low. In fact, Strongtalk can do static type check, but at the VM level the type information is not used at all.

- "One of Burke's main points is that modern IDEs for statically typed languages support reliable refactorings"
I worked a lot with Eclipse, and also with Smalltalk. (by the way the concept of refactoring comes from an Smalltalk tool called Refactoring Browser)
Is true that the static information allows some refactorings that are difficult in dynamic languages, but in big systems even if you have static typing you can broke things specially if you have distributed components. So in the end, no matter how well the IDE checks all the static preconditions, if you don't have unit test is difficult to gain some level of confidence after a big refactoring.

Flat View: This topic has 19 replies on 2 pages [ « | 1  2 ]
Topic: Phil Costa on Adobe's Integrated Runtime 1.0 Previous Topic   Next Topic Topic: Yahoo Releases YUI 2.5

Sponsored Links



Google
  Web Artima.com   

Copyright © 1996-2019 Artima, Inc. All Rights Reserved. - Privacy Policy - Terms of Use