Interview at Lang.NEXT
Sebastiaan Koppe via Digitalmars-d-announce
digitalmars-d-announce at puremagic.com
Tue Jul 1 09:28:57 PDT 2014
On Thursday, 5 June 2014 at 09:43:13 UTC, Jonathan M Davis via
Digitalmars-d-announce wrote:
>
> Though I confess what horrifies me the most about dynamic
> languages is code
> like this
>
> if(cond)
> var = "hello world";
> else
> var = 42;
>
> The fact that an if statement could change the type of a
> variable is just
> atrocious IMHO. Maybe I've just spent too much of my time in
> statically typed
> languages, but I just do not understand the draw that
> dynamically typed
> languages have for some people. They seem to think that
> avoiding a few simple
> things that you have to do in your typical statically typed
> language is
> somehow a huge improvement when it causes them so many serious
> problems that
> static languages just don't have.
>
> - Jonathan M Davis
Wouldn't static-if accomplish much of the same?
```
static if (cond)
auto var = "hello world";
else
auto var = 42;
```
I understand it is horrible, and unexperienced programmers often
make the mistaken of forgetting the definition of var in the
*else* condition, while painstakingly try to use it *after* it.
Now the first time I saw `auto`, in D or C++, I was horrified.
But in essence it is a move towards not having to think about the
type, or in other cases having to actually type it out, but just
have the compiler infer it auto-matically. A dynamic language is
just having auto everywhere without having to type even that, and
giving up compile time type checking in turn.
On the other hand, some dynamic languages allow you to restict a
variable entering a function by its type. In essence, I see both
static and dynamic languages trying to meet in the middle.
The middle ground is the idea that data has a type and a variable
is just a reference to some data; a way for use humans to express
data flow. In other words, relying more on compile-time type
inference.
That is the direction I see in general; programmers more and more
relying on tools and analysers to do their work.
More information about the Digitalmars-d-announce
mailing list