Feedback: Excellent plugin, speed is main issue

Hi Everybody,

I just wanted to share my perceptions of the current state of the plugin:
I think it's an excellent piece of work that is moving along quite quickly... thanks a lot to the team for making such a hugely important contribution to the Scala world!!!

Being a long-term IDEA user and switching many times a day between Java and Scala sources I am actually satisfied (for the time being) with the Scala plugins current feature-set. Of course there is still a long way to go to match the Java side of things in terms of feature-breadth, however, IMHO, all the basics are present and further investment in additional features should come after addressing the main three issues, that I currently see:

1. General Speed
2. Stabilizing the Compilation Server
3. Improving error highlighting

The main issue for me is speed. Being on a modern i5 machine with tons of RAM I am used to IDEA responding without noticeable delay to most of my actions on the Java side. On the Scala side I find myself waiting for IDEA many times a days for an considerable amount of time. General editor speed is quite a bit slower, things like highlighting or auto completion sometimes even take too long to be useful at all.

One thing I find quite annoying is the compilation server dying on me several times a day (either with exit code 1 or 143). Basically I have to go through the process of hitting a "scalac internal error", changing to the running pane of the compilation server, restarting it, and then triggering a project rebuild at least 5 times a day. In 3 out of these 5 times I even have do this twice because for some reason the compilation server did not properly initialize the first time. This really breaks ones workflow and probably should be a first priority fix.

When these two main issues are addressed I think the next thing should be to further improve the basic features (like proper inline error detection) before focusing on more inspections etc....

Generally however, IDEAs Scala plugin already makes development in Scala a pleasure.

Thanks again for all your important work!!

Cheers,
Frank

9 comments

my wish list:
1. speed (includes an always working compilation server with auto-start)
2. port to intellij 10 - i prefer to use the newest builds, and using different idea builds per module really isn't fun :(
3. fix the remaining highlighting errors. it's not much that's false red in my code, but in the end, it should be 100% working,

and then, finally: the debugger. almost forgot that one. 10% of my code is made of log calls to make up for the missing integration

not sure about the order of 2 and 3

0

Hello.

The most important thing to me when I'm developing is the edit, compile and then run sequence.

With this in mind, the biggest improvement by far that jetbrains could make to the scala plugin is to reduce this time for me (and all other people on my team!). This trumps everything else including all the error highlighting, parsing and refactoring.

I understand that the plugin can't compile faster than the actual scala compiler but there are a couple of things that idea can do to help.

First, as other people have said, keep the compile server going. I'm guessing it's not idea's fault that it's crashing all the time but I bet idea could help out by restarting it when required.

Second and most importantly:

Everytime I do a make, it seems to build more files than it needs to. The most obvious case of this problem is that I do a make, and then without changing anything else, do another make. The second make takes 10 seconds! That is no joke (and I've got a fast computer). Idea has decided that certain files have changed even though I've not touched the editor. The project is quite large and has lots of modules and dependencies between them but they are all scala and idea should be able to see that no files have been updated. I'm guessing again that when I do a compile after I do actually change a file, more files are compiled than are required.

Thanks, Nick.

0

1. It's always problem,
2. Just did it. I'll check that it's possible to use it, and I hope you'll get it tomorrow.
3. It's also still a problem. But we are working on it as for first thing.

Best regards,
Alexander Podkhalyuzin.

0

Thank you for your feedback.
We'll try to make it better.

Best regards,
Alexander Podkhalyuzin.

0

Yes, Make is problem now. I hope we'll fix it soon (plugin sources have same problem, so we have example for debug this problem).

Best regards,
Alexander Podkhalyuzin.

0

alefas wrote:

Thank you for your feedback.
We'll try to make it better.

Best regards,
Alexander Podkhalyuzin.

that's supposed to be:
wel'll make it even better ;)

0

My experience in the last couple of weeks is a dramatic improvement in the speed to make and launch classes from our mixed Java and Scala code base.

It used to take a significant amount of time to make and launch a Scala-based unit test with a simple change.  It is still noticeably slower than re-running a Java-based JUnit test with a simple change on a pure Java code based, but this is awesome progress.

It appears that the cost of recompiling a trivial unit test change gets significantly higher with a larger code base.  A much smaller project I have has no visible problem with this.

0

I just upgraded to Scala plugin 0.3.2093 and it appears that the now regular compiler does not recompile files which have not changed, but the fsc compiler does recompile them. So depending on the project size, right now the regular compiler might be faster than fsc.

An interesting observation is, that if I first compile with the regular compiler and then change to the fsc compiler, then fsc does not do needless recompiling. But after I change some files after switching away from the regular compiler, then fsc appears to recompile all files which have changed since the last regular compile.

I'm guessing that there is a bug which causes a fsc-compile not to reset the modified-since-last-compile status of files. Only a regular-compile resets correctly the modified-since-last-compile status.

0

Just for everyone's information, I'm not seeing an improvement in my project.

If I compile with fsc and then compile again in fsc without any changes, it takes 10 seconds.

If I compile normally and then compile again normally without any changes, it takes 35 seconds!

Thanks, Nick.

0

Please sign in to leave a comment.