I think that you've hit upon two of the important factors here: - familiarity - discoverability To which I would also add - refactorability (is that a word? :-)
Those familiar with a project might not see the value in strong typing simply because it doesn't add much to their personal experience. They have less need to explore types, usage locations, etc., because they're already familiar with them. However, strong typing does add an additional level of confidence when re-factoring, which can even benefit those who are intimately familiar with a code base. Anecdotally, you hear about this from people who have had to re-factor Python... things like "You really come to appreciate your test suite when refactoring", etc. The reliance on test suites arising because many compile-time checks are impossible with dynamically-typed languages. Jonathan Merritt. On Sun, Jun 30, 2013 at 1:13 PM, David Jeske <[email protected]> wrote: > When I fix bugs in unfamiliar projects, I spend 90% of my time getting it > to build and playing sherlock holmes tracking down weak-linkages like > dynamic-typed variables and weak-linkages (like strings used as enums in C) > -- and 10% of my time actually trying to understand or fix code. > > In strong typed code (C, C++, C#, TypeScript, etc) and a modern IDE (Visual > Studio or one of its many clones), that 90% shrinks dramatically, as I can > see, understand, and explore the types of variables immediately. I > hover-over a variable in the IDE it shows the type. I hit "goto > declaration" it takes me to the type-declaration. No project wide grep or > guessing at the type of that dynamic-typed "a" paramater. > > > How about Python Traits? Note I have no idea how difficult it would be to > > > use Traits as a wrapper for Blender's API, although Enthought does > provide a > > Traits based wrapper for VTK so I'm sure it would be possible. > > I'm not very familiar with Traits, but from a quick look it appears to be a > run-time assignment validation and format coercion package. It does not > appear to contain any compiled time variable type information, or the > ability to do type-aware code-navigation or completion. > _______________________________________________ > Bf-committers mailing list > [email protected] > http://lists.blender.org/mailman/listinfo/bf-committers > _______________________________________________ Bf-committers mailing list [email protected] http://lists.blender.org/mailman/listinfo/bf-committers
