Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Is Automatic Refactoring Possible in Dynamic Languages?

Perhaps I am limited by my experience with dynamic languages (Ruby on Netbeans and Groovy on Eclipse), but it seems to me that the nature of dynamic languages makes it impossible to refactor (renaming methods, classes, pushing-up, pulling-down, etc.) automatically.

Is it possible to refactor AUTOMATICALLY in any dynamic language (with any IDE/tool)? I am especially interested in Ruby, Python and Groovy, and how the refactoring compares to the 100% automatic refactoring available in all Java IDEs.

like image 325
Dan Rosenstark Avatar asked Feb 23 '10 11:02

Dan Rosenstark


1 Answers

Given that automatic refactoring was invented in a dynamic language (Smalltalk), I would have to say "Yes".

In particular, John Brant, Don Roberts and Ralph Johnson developed the Refactoring Browser which is one of the core tools in, for instance, Squeak.

My Google-fu is weak today, but you could try find this paper: Don Roberts, John Brant, and Ralph Johnson, A Refactoring Tool for Smalltalk, "The Theory and Practice of Object Systems", (3) 4, 1997.

like image 152
Frank Shearar Avatar answered Oct 15 '22 04:10

Frank Shearar