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?
Comments
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.
Strong Typing rules or Loose Typing rules
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.
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
Marcus, that isn't right.
The DSL that I posted earlier had zero dynamic dispatch.
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
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.
Languages that your company forces you to use and that pay the bills
vs.
The mistress langugages that you'd like to be using?
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?
Damn, Jeremy beat me to it. I was going to go with paycheck vs. unemployment check.
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
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.
Niki,
I am talking about the syntax of those languages, not the type system
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.)
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#.
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.
Yes, absolutely, that is critical issue when talking about rigid vs. malleable languages
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
Comment preview