|
![](/i/fill.gif) |
>> Unless, of course, the problem is on a rarely-executed code path.
>> Like, you make the same mistake a few times, and all the commonly-used
>> code paths get fixed, but there's one slightly rare path that you
>> accidentally miss.
>
> So you're writing code that you never tested? That's not something a
> compiler will help with.
I take it you haven't heard the expression "if it compiles, it usually
works correctly" then?
Obviously no compiler is ever going to eliminate the need for testing
completely. But it can drastically reduce the amount of time you have to
spend hunting for silly typos.
>> The other thing, of course, is that you can't *change* part of the
>> code and then just follow the type errors to find all the parts that
>> need updating. You have to manually do several million test runs and
>> hope you hit everything.
>
> This is true. But not what you were talking about.
Isn't it?
> I'm not saying dynamic languages are superior. I'm simply saying that
> when you're used to using dynamic languages, the "you got the wrong
> type" is really a rare problem.
I've always preferred statically-typed languages. They catch so much
more of the type of bugs I tend to write. With an inflexible type system
like Java, I can understand people being exasperated by it and wanting
to use a dynamically-typed language instead. But really, the benefits of
static typing vastly outweigh the drawbacks.
>> You're aware that C# and Java are interpretted languages, right?
>
> No they're not. No more than the ability to load a DLL means that C is
> an interpreted language.
Right. And the fact that it runs on top of a VM doesn't count because...?
>> the case of C#, it's not even possible to install the runtime without
>> installing the compiler too...)
>
> Nor is that true. What are you smoking over there? Can I have some?
Uhuh. And so when you install the .NET "runtime", and it spends 45
minutes running "ngen.exe", "native code generator", that doesn't count
as "running the compiler" because...?
Post a reply to this message
|
![](/i/fill.gif) |