Stephen Kellett wrote: > In message <[EMAIL PROTECTED]>, Simon > Brunning <[EMAIL PROTECTED]> writes > >> Eclipse's refactorings are a great boon, I find. Refectoring is never >> *fully* automatic, of course, but the ability to, for example, select >> a chunk of code and have it extracted into a separate method with all >> needed arguments and the return value worked out for you is very >> helpful. All you have to do is give the new method a name. And this >> sort of thing can certainly improve readability. > > This is not an attach on you Simon, but if people are relying on that > type of thing for increases in software productivity they are hiring the > wrong people.
I think that the right people to hire are the ones that can make the best use of whatever tools are available so they can get their job done well and in a reasonable amount of time. I'm not a big fan of Java programming, but sometimes I have to do it, and when I do, I must say that the refactoring capabilities of IDEs like IntelliJ IDEA are very helpful. Being able to rename classes, variables and functions across multiple files, extract methods with automatic naming and typing of parameters and throws-clauses, and move methods from one class to another makes it so much easier to reorganize and improve large amounts of code. And due to Java's verbosity, there usually is a lot of code to manage even for simple changes. In Python, there's still a need to do these sorts of things. Typically, we use "search and replace" and "cut and paste" instead. You could make a similar statement about those tools - if you rely on "cut and paste" to increase your productivity... gah, it makes me cringe just writing that! Nonetheless, I would hate to program without "cut and paste" as a tool. In any language. The need for automatic refactoring tools in Python is smaller; Python gives you the opportunity to program at a higher level of abstraction, so there is less code to deal with. In addition, since Python doesn't have checked exceptions or require type annotation, design changes tend to "splatter" less across your code base. Still, Python's dynamic nature limits the sort of automatic changes you can make reliably, and we ought to recognize that. By using Python, we are making a tradeoff: in communicating less information, we are forcing IDEs to do more guesswork. Java requires less guesswork for the IDE, but requires significantly more communication on behalf of the programmer. I don't think it's a cut-and-dry win for either language. Dave -- http://mail.python.org/mailman/listinfo/python-list