tag:blogger.com,1999:blog-22587889.post6185794315412664736..comments2024-02-11T13:21:47.930+05:30Comments on Ruminations of a Programmer: Towards better refactoring support in IDEs for functional programmingAnonymoushttp://www.blogger.com/profile/01613713587074301135noreply@blogger.comBlogger6125tag:blogger.com,1999:blog-22587889.post-15687339015304215722012-10-05T19:37:39.509+05:302012-10-05T19:37:39.509+05:30I am surprised by the amount of these types of sug...I am surprised by the amount of these types of suggestions (and thus refactoring) that the Jetbrains Resharper plugin for Visual Studio does make. Obviously the c# laguage and type system are no where near as rich as Scala, forget Haskell, but it does have limited local inference, lambda syntax and linq expressions. These suggestions can get annoying once you have leveled up to a certain point because they do not <b>always</b> result in better code. They definitely helped me to pick up the new language features when they were first added though.Dave Stevenshttps://www.blogger.com/profile/17803616197134963368noreply@blogger.comtag:blogger.com,1999:blog-22587889.post-82214966573930178852012-10-02T00:53:35.068+05:302012-10-02T00:53:35.068+05:30Wouldn't it be better to refactor map.filter t...Wouldn't it be better to refactor map.filter to collect?OlegYchhttps://www.blogger.com/profile/16962595061587595984noreply@blogger.comtag:blogger.com,1999:blog-22587889.post-35285371540171927992012-10-01T19:41:29.577+05:302012-10-01T19:41:29.577+05:30Mirko -
Looking forward to some more of refactori...Mirko -<br /><br />Looking forward to some more of refactoring goodness from Scala / Eclipse IDE. I think with ASTs available now, we can make much semantically richer IDEs and even allow users to add a few ..Anonymoushttps://www.blogger.com/profile/01613713587074301135noreply@blogger.comtag:blogger.com,1999:blog-22587889.post-86365214373159144432012-10-01T19:39:58.455+05:302012-10-01T19:39:58.455+05:30Daniel -
Thanks for the links. I am already havin...Daniel -<br /><br />Thanks for the links. I am already having lots of ideas about refactoring, studying what Simon Thompson is doing with user driven extensible refactoring. Your links will definitely help. Trying to view refactoring as term rewriting, graph transformations backed by DSLs are what I was thinking more about. Will study the ghc rewrite rules more and see into the recent research pointers that u have given.<br />Anonymoushttps://www.blogger.com/profile/01613713587074301135noreply@blogger.comtag:blogger.com,1999:blog-22587889.post-41076885229369382952012-10-01T19:00:38.771+05:302012-10-01T19:00:38.771+05:30Great post!
I think that an IDE could be very he...Great post! <br /><br />I think that an IDE could be very helpful in teaching good/idiomatic style to programmers new to Scala, and this is also a long term goal of my <a href="http://scala-refactoring.org" rel="nofollow">scala-refactoring library</a>.<br /><br />The first step I did (it's not yet available in the IDE but I have it in a branch) is warning and automatically refactoring pattern matching on Option (see <a href="http://misto.ch/eliminating-pattern-matching/" rel="nofollow">my blog post</a> and the <a href="https://www.assembla.com/code/scala-refactoring/git/nodes/master/org.scala-refactoring.library/src/test/scala/scala/tools/refactoring/tests/implementations/EliminateMatchTest.scala#ln87" rel="nofollow">tests for the current implementation</a>).Mirko Stockerhttps://www.blogger.com/profile/05098945281492909878noreply@blogger.comtag:blogger.com,1999:blog-22587889.post-66360729421075905202012-10-01T15:46:46.385+05:302012-10-01T15:46:46.385+05:30Mix something like GHC's rewrite rules [1], ad...Mix something like GHC's rewrite rules [1], add the ideas from Mel Ó Cinnéide's automated refactoring research [2], and the state of art in Refactoring Functional Programs [3]. That's the general gist of what I've been studying in this area.<br /><br />[1] http://www.haskell.org/ghc/docs/6.12.2/html/users_guide/rewrite-rules.html<br />[2] http://www.informatik.uni-trier.de/~ley/db/indices/a-tree/c/Cinn=eacute=ide:Mel_=Oacute=.html<br />[3] http://www.cs.kent.ac.uk/projects/refactor-fp/Daniel Yokomizohttps://www.blogger.com/profile/12528969103424062002noreply@blogger.com