God help us
Link
Have you read my recent comment there?
Anyway, back to the question: why did Autodesk choose to reinvent the wheel by creating another programming language? This question was clearly asked a lot when we first started developing it, but the ultimate answer is that it’s unlike anything we have today – in AutoCAD or even elsewhere, I suspect.
The primary reason it’s so different is its associative nature.
I gotta say, I'm not impressed by what amounts to a very badly-done
hype-job that Kean seems to be doing with his talk about DesignScript, based on a patently-false claim that this new scripting language is, in some way, distinct and unlike anything that currently existed before it (e.g., it is 'associative'). LMAO Apparently, Mr. Walmsley hasn't had much experience with the use of formulas in the computational definition of numerical models in Excel worksheets.
One might call that ridiculous claim of originality regarding "associativity" an insult to the computer science community collectively, and in partular, to people like the late John McCarthy, Alonzo Church, Alan Turing, John Von Neumann, et,al., as well as the designers of almost every programming and scripting language in existence today, having roots in the work done by those distinguished individuals. But we can't say that, because Kean doesn't posses anywhere near the technical qualifications needed to insult people like that.
It's not uncommon to see misguided neophytes invent new terms to describe things that have existed for ages, and then in a somewhat sleazy fashion, mis-use them as a pretext in some sort of claim of originality - that they've invented (or 're-invented' perhaps?) something that already exists. That's precisely what's going on here, in case you didn't know.
I posted a simple snippet of LISP to make that very point, which is that every programming and scripting language known to man, starting with the formulas entered into VisiCalc, Lotus123 and Excel spreadsheet cells, up to and including every major programming language in widespread use today,
is no less 'associative' than DesignScript is.
This opportunistic hyping with false claims of originality seem to be mostly rooted in a misunderstanding of some very simple concepts, like the one that underlies the
implementation of properties in .NET/CLR (e.g.,
syntactic sugar that serves as a facade for what are in reality,
functions or methods), and the simple fact that DesignScript 'variables' are really not
variables at all, or at least not according to the conventional definition.
DesignScript 'variables' are in-reality,
functions dressed up to look like variables (but still act like functions nonetheless), and those functions are what have been mislabeled as '
associative variables'. As I'm sure most understand, variables are traditionally thought of as memory storage locations that hold static values. That is not the case with DesignScript's variables.
To debunk the mythical claim about 'associativity', you can think of it this way: Given the DesignScript source:
What is actually happening is that the compiler is defining a function rather than assigning a static value to a storage location. DesignScript takes what you write on the right side of the assignment operator (=), and defines a function whose body contains that expression. And, when the 'variable' is referenced within another expression, the result of calling that function is returned. Whether the result of the function is cached in cases where there can be no side effects that would change the value, is an implementation detail that is not even worth mentioning, but this is basically what's going on in this new, breakthrough scripting language that sends tremors down the very pillars of computer science.
And, to provide equivalence to other languages:
public static class Variables
{
public static int x = 0;
public static int y {get{ return x + 1;}}
}
The fact that Kean has taken what amounts to DesignScript's use of syntactic sugar, to make user-defined functions look and act like program 'variables', in both how the functions are defined and called, and has somehow confused that with what he has coined ('associativity'), or the false claim that DesignScript is the first and to-date only programming language that exhibits that characteristic 'associativity', is something that might get him a few laughs in computer science departments, but is otherwise little more than a very badly-done hype-job, that insults the reader's intelligence.
I find the hype job being done by Autodesk on this new technology as being far more offensive than anything written above. And by the way, this is not a slam of DesignScript, which I'm sure is in its own right, and without the unnecessary, opportunistic co-opting and hype, a well-designed and useful tool.