David Vallner wrote: > Isaac Gouy wrote: > > Another mechanism - IDE support. > > > > The most basic Smalltalk code exploration builds on tools for browsing > > implementors/senders of methods. We'd browse all implementors of "parse > > data, machine" to see if we were dealing with a massively polymorphic > > method, and then we'd browse all senders of "parse data, machine" and > > keep tracing back to see what sort of things "data.index 0" was being > > initialized with. > > > > Type information being part of the method signatures usually helps > narrow this down. I sort of get where HorkingLongAndObnoxiousName is > coming from - "parse" is a very generic method name and might be found > around the system with even the same arity for wildly varying purposes. > Without as much as receiver type information, the code search could show > a lot of unrelated results. > > Hopefully, you could further narrow them down by making assumptions > based on identifier names, but that's a) error-prone, and b) better not > to have to do by hand. > > Making sophisticated tool support is much easier if the tools have much > more information at their disposal, and statically typed code does > provide more / easier machine-analysable information. Of course the point in mentioning the most basic Smalltalk IDE functionality was that - it doesn't actually require type signatures (hello Ruby) - although basic it's surely a step up from not being able to easily browse project-wide (or hierarchy local) implementors/sendors I imagine the main practical difficulty is that people use many different text editors rather than an IDE. > Dynamic typing is inherently more prone to being hard to maintain. The > problems can be very well mitigated using proper conventions, and common > sense. > > But that's not always the case, and when you get thrown on a project as > a maintainer or to contribute feature XY into revision Z of a codebase > that had random people without a code style guide leading them working > on it for two years, you get very, very happy that you have Ctrl-Shift-G > in Eclipse on your side. In a rainy day scenario, the systems aren't > quite equivalent. > > David Vallner