If it is not dynamic vs. static - what is it?

I am looking for a term to describe languages like C# or Java vs. languages like Boo and Ruby. At first I thought about using the usual static and dynamic descriptions, until I remembered that Boo is a static language.

I am thinking about rigid vs. flexible languages, in terms of syntax and expressiveness.

Any comments?

Print | posted on Tuesday, December 04, 2007 3:17 AM

Feedback


Gravatar

# re: If it is not dynamic vs. static - what is it? 12/4/2007 3:44 AM Tim Wilde

Extensible? It seems to me that would work quite well for Ruby and Boo, where you can "simply extend the language".

I'm not sure what the antonym for C# and Java would be though, as "inextensible" feels a little harsh.


Gravatar

# re: If it is not dynamic vs. static - what is it? 12/4/2007 3:53 AM Keith Nicholas

Strong Typing rules or Loose Typing rules


Gravatar

# re: If it is not dynamic vs. static - what is it? 12/4/2007 3:54 AM John "Z-Bo" Zabroski

If I recall correctly, there is actually a rant about this in one of Benjamin Pierce's books on programming languages and types. One word is generally not enough.

I'm also not sure it is productive to find just one word that compares Boo vs. C#. If Boo is anything like Groovy is to Java, then only one word comes to mind: "Complementary". Of course, that masks the real reason I write scripts in Groovy: built-in support for basic design patterns like Builder via the BuilderSupport which can be used to create expression trees.


Gravatar

# re: If it is not dynamic vs. static - what is it? 12/4/2007 4:26 AM Marcus Griep

How about noting the distinction between static and dynamic compilation versus static and dynamic dispatch.

C# is static compilation and dispatch
Boo is static compilation and optionally dynamic dispatch
Rython is dynamic compilation and dynamic dispatch


Gravatar

# re: If it is not dynamic vs. static - what is it? 12/4/2007 4:32 AM Ayende Rahien

Marcus, that isn't right.
The DSL that I posted earlier had zero dynamic dispatch.


Gravatar

# re: If it is not dynamic vs. static - what is it? 12/4/2007 4:45 AM Marcus Griep

True. However, note that I said optionally dynamic dispatch for boo. That's where the difference of using duck-types comes in.

And excuse my earlier typo: Rython => Python


Gravatar

# re: If it is not dynamic vs. static - what is it? 12/4/2007 4:55 AM Jimmy Bogard

I think you're going to come up short on this one, definitions have been abused and thinned over time.

Static/dymanic
Strong/weak typing
Early/late bound

You need matrices to categorize now.


Gravatar

# re: If it is not dynamic vs. static - what is it? 12/4/2007 5:56 AM Jeremy

Languages that your company forces you to use and that pay the bills

vs.

The mistress langugages that you'd like to be using?


Gravatar

# re: If it is not dynamic vs. static - what is it? 12/4/2007 6:21 AM Arne Claassen

Not being familiar with Boo, what does it have over C# in terms of typing now that we have var? Or are its difference at this point syntax flexibility rather than compile or type related?


Gravatar

# re: If it is not dynamic vs. static - what is it? 12/4/2007 7:18 AM Eric Hauser

Damn, Jeremy beat me to it. I was going to go with paycheck vs. unemployment check.


Gravatar

# re: If it is not dynamic vs. static - what is it? 12/4/2007 8:31 AM Ken Egozi

Yep - Jeremy has nailed this one ;)

doesn't sound too good though, nailing the mistress ...

anyway, my comment became too long so I've just upgraded it to a post, at

http://www.kenegozi.com/Blog/2007/12/04/cool-vs-uncool-in-programming-languages.aspx


Gravatar

# re: If it is not dynamic vs. static - what is it? 12/4/2007 11:15 AM Niki

How about explicit typing vs. implicit typing vs. dynamic typing?
C# supports explicit typing and (a little) implicit typing.
Boo supports implicit typing, explicit typing (although rarely neccessary) and dynamic typing.
Ruby only supports dynamic typing.

I think any categorization that throws Ruby and Boo in the same category only because their superficial similarity ("I can't see any type declarations") misses the point.


Gravatar

# re: If it is not dynamic vs. static - what is it? 12/4/2007 11:40 AM Ayende Rahien

Niki,
I am talking about the syntax of those languages, not the type system


Gravatar

# re: If it is not dynamic vs. static - what is it? 12/4/2007 3:54 PM Luke Breuer

Compile-time extensible? Syntax-extensible? Symbolic preprocessor? (The last probably isn't technically true, because you're interacting _with_ the compiler and its AST (if I understand Boo correctly), but it might prompt "correct enough" images in people's heads, at least those familiar with the very textual C/C++ preprocessors.)


Gravatar

# re: If it is not dynamic vs. static - what is it? 12/4/2007 5:02 PM Jay R. Wren

dynamicly typed languages are not necessarily dynamic languages.

there are three similar word combinations which mean 3 very different things:

"Dynamic typing", "dynamic language", "dynamic programming". Wikipedia has all three defined very well as I recall from my computer science education.

I do call boo a staticly-typed dynamic language". Now, with 3.0 I call C# a staticly-typed dynamic language. I would just say that boo is more dynamic than C#.




Gravatar

# re: If it is not dynamic vs. static - what is it? 12/4/2007 5:46 PM John Radke

What about the syntax are you trying to categorize? The first thing I thought of was braces versus non-braces, or C-like versus non-C-like.


Gravatar

# re: If it is not dynamic vs. static - what is it? 12/4/2007 6:11 PM Ayende Rahien

Yes, absolutely, that is critical issue when talking about rigid vs. malleable languages


Gravatar

# re: If it is not dynamic vs. static - what is it? 12/4/2007 9:04 PM Nis Wilson Nissen

Hi,

Perhaps you have already seen it, but there is a video devoted to this subject on channel9 with Bob Martin (Uncle Bob) and Chad Fowler:

http://channel9.msdn.com/Showpost.aspx?postid=350187

The video was recorded during this years JAOO conference.

Cheers,
Nis

Comments have been closed on this topic.