[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: dual-language systems increase modularity
> Are you saying you didn't understand it? I'm happy to explain it if
> it wasn't clear.
No, I didn't say that. I was just trying to parse your arguments and
did not have the time to express my questions in the concise and clear
language of Ken Shan, who already brought up some of the points that
occurred to me. If you don't mind me sounding a little repetitious,
here's what I got out of your arguments. (If I missed anything, then
the fault is partially mine and partially yours.)
1. Your broad claim seems to be that dynamically typed languages
(DTLs) are _more_expressive_ than statically typed languages (STL).
2. By STL, you seem to mean the Java/C++ family of languages and
precious little else.
3. One of the possible definitions of "more expressive" that can be
inferred from your arguments is, "expressive" means "short and easy
to understand".
4. In the English language, adjectives have three forms: the simple
form like "short" (don't know the right name for this), comparative
form like "shorter", and superlative like "shortest". Deep in the
guts of the Chomskian LAD hardwired in your brain, there is only
one form: comparative. When something is said to be "short", what
it really means is, "shorter than something else". By the process
of "deletion", this deep structure is transformed into the surface
structure "short".
In order for me to understand you correctly, I have to reverse the
transformation and reconstruct the deleted part. In your argument,
"short" seems to mean "shorter than an equivalent _Java_or_C++_
implementation of the same idea". Which may very well be true (for
some measure of "true") but has no bearing on your initial broad
claim (see #1 above).
5. "Easy to understand" really means "easier to understand than M or L
given the prior knowledge of X, Y, and Z." I get the impression
that your presupposed X, Y, and Z include such things as "OOP" and
"prototype inheritance" but not "polymorphic types" or
"Hindley-Milner type inference", for example.
6. You could make the argument that Io is better than Java and C++ and
is much easier to switch to than Haskell or Ocaml for the millions
of Java/C++ programmers. Since programming languages are a social
phenomenon, this consideration must be factored in into the current
debate.
That would kinda make sense to me, but I don't think that that's
the argument you're trying to make, or is it?