On Tuesday, 4 September 2012 at 19:18:05 UTC, Jacob Carlborg wrote:
On 2012-09-04 15:59, Steven Schveighoffer wrote:

I have on occasion had the benefit of simply adding a member variable to instances of a class when I needed it without having to burden the rest of the code with knowing about that variable. I felt dirty doing it...

But I think you are right -- "fake" static typing does not come close to actual static typing. If I could count all the time I've wasted because I mistyped a member variable name, and it "just worked", blissfully reading null instead of the variable I've set, it would probably add up to days. Thankfully, netbeans 7 is better at telling me that a variable
is previously unset or is never used, but it can't be perfect,
especially with this mess I inherited. The original author thought "modularity" meant importing large pieces of functions from other files,
which the IDE refuses to correctly interpret.

This, of course, all comes from two guys who really like static typing
:)  We *may* have a biased view.

I can tell you this, I've wished many times that I had static typing in Ruby. I've also wished quite many times I had dynamic typing in D. I think optional static typing, like Dart, sounds like a good idea.

I'm currently updating a Rails project to Ruby 1.9 and I really wished I had static typing. Just that fact that it won't load file until it's actually needed is quite annoying. Finding all the corner cases can be quite a lot of work. For example, a partial that is loaded when the rendering is triggered by an Ajax request.

In any case, it is what it is -- the existing code-base is huge, and I have no real desire to rewrite all of it :) The best I can do is add some typing comments and hobble through it (cursing as I go). If I had
a year of spare time, I could rewrite it all in D!

-Steve

The only experience I've had with dynamic typing (in Python), I can say I hated it. I prefer to write Java code, which I think tells a lot about my love for dynamic typing. I probably wouldn't mind writing some Lua code, but not in the large. Unless you are working in an environment which changes all the time, so that you need to adapt your code very quickly, dynamic languages are a waste of time above ~10,000 lines of code in my opinion.

Reply via email to