Friday, January 30. 2009IntelliJ a huge dissapointment for Scala developmentTrackbacks
Trackback specific URI for this entry
No Trackbacks
Comments
Display comments as
(Linear | Threaded)
I've never tried IntelliJ's Scala support, but I have absolutely nothing kind to say about NetBeans Scala or Eclipse SDT. Well, maybe not *nothing*, but close to it. They're both very nice pieces of alpha software, but they don't come anywhere close to being usable for serious stuff. Counter to most people, I've had teh most success with SDT.
NetBeans just freaks out when I try to use it with a non-trivial Scala project. Also, it seems to think that auto-indentation should always be double tabbed and should happen any time I have two newlines in a row. Granted, NetBeans does freak a bit more gracefully than SDT, which has a complete meltdown when I point it at a project with 100+ case classes. It also seems to have these random lapses of memory brought on by files longer than 50 lines... All in all, I'm very much of the persuasion that "dumb editors" are the way to go for Scala, at least until the IDE world catches up. jEdit + Buildr is quite sufficient for my needs. Even better, I've never had it crash on me when I rename a file.
Daniel,
Interesting. I'm coding on Lift in NetBeans (Lift's about 40K lines all in) and have not had any material complaints about it. Both NetBeans and Eclipse got better with Scala since 2.7.2 was released. Thanks, David
I use Intelli-J for professional Java development (Windows), and personally for Scala (was Linux, now Mac), and I've not had the problems you have experienced (apart from the JAVA_HOME thing on Linux, that was a bit odd).
Memory: Perhaps the plugins are the problem? I've not had Intelli-J freeze up much at all apart from some really huge refactorings involving 200+ classes. Not used it with pom files though. Scala plugin is alpha-ware. It does have its glitches, but the team behind it (not part of Jetbrains) are pretty quick at fixing problems found as they develop it, and it has some great features. File-based browsing. Yes there is With so many problems, I'm not surprised you don't want to use it I've not used the Scala plugin for a couple of weeks though, so maybe there are some problems at the moment I haven't seen...
Kieron,
Thanks for responding. The installation problems had nothing to do with Scala or any plugins. If JetBrains is doing something with a nominally all-Java application that breaks on a 64 bit platform, that's a huge issue. That colored the rest of my experience. If they can't get the basics of their app right, why should I cut them any slack. There are half a dozen other minor UI complaints. For example, it always opens the file browser in the root directory of the machine. I mean, come on... that's a no-brainer to do right. So, I've got a really bad taste in my mouth about IntelliJ as a whole. Can you tell me three things IntelliJ does better than NetBeans or Eclipse. It doesn't have to be Scala-specific. I just want to learn why somebody would pay anything for software that in my initial experience is very poor. Thanks, David
Your installation "problems" was just one, the handling of JDK_HOME versus JAVA_HOME, and I'm sorry, a JDK truly is different from a JRE, and IDEA can't realistically "guess" that the former is the latter. By the way, this only happens on Linux, there's full platform friendly installers on the Mac and Windows. Maybe they ought to produce an Ubuntu package... maybe someone should ask them to.
Your other problem is because you weren't using Metacity, you were using Compiz, and any Swing app would have the same issue. It's Sun's fault, and is well documented. As for what it does better than NetBrains or Eclipse? 1. Refactoring 2. Code analysis 3. Basic editor functions If you actually used it for a while you'd see how much deeper all these aspects are. Quantity and quality of refactorings is greater. The code analysis, code tips, etc. are also just better and there's more of them. And the editor itself is bottomless in terms of functions -- the big challenge is finding and remembering them all. There really is no contest; they have 3, 4 year headstart on Eclipse, and a crack team of great developers. It's a geek's tool, extremely powerful. If you don't want it, don't want to pay for it, that's fine (it's free for open source projects, btw) but ... I do
Ryan,
My installation problems were: - the fact that IntelliJ can't find the default JDK installation. - IntelliJ doesn't work on Ubuntu 8.04 with a 64 bit or 32 bit JVM. And yes, I've been around and around with the JetBrains sales engineer on this issue. So, if I was limited to only using Ubuntu 8.04 64 bit, I'd be out of luck with IntelliJ. Luckily for me, I've got a bunch of machines to try stuff on. David
Odd, I use IDEA on the same version of Ubuntu.
Did you turn off compiz and all the fancy graphics?
Failure on the 32bit JVM has nothing to do with the blank windows. On the 32bit JVM, IntelliJ isn't able to see the Plugin server.
If I install using the 32 bit JVM, then switch to the 64 bit JVM to run IntelliJ, then I get access to the plugin server and am able to add Scala, Git, Maven, etc. But, when I try to open a Lift project, IntelliJ runs out of memory, even with 4GB allocated to IntelliJ. None of these things has anything to do with Compiz or graphics settings. Also, I'm not going to disable Compiz because then a bunch of settings go away and it's 30 minutes to get my desktop looking like I want it to look.
David, a few things about your comment.
1. The "turds" it left behind in your directory are just IntelliJ project files. Big deal. The Maven support in IntelliJ is relatively recent, but very very handy, but a bit quirky. I believe the core of it was contributed by Jason Van Zyl of Maven fame, but it needs some further polishing. 2. The Scala support is still early and AFAIK unreleased and far more aggressive than what the NetBeans plugin hopes to provide. They are hoping to bring to Scala the level of static code analysis & refactoring that they provide for Java, which, trust me, is light years behind anything Eclipse or NetBeans users even dream of. In comparison, the plugin for NetBeans is incredibly more conservative. 3. Overall, quality of IntelliJ releases (your "do they have a QA department" thing) is in general far above any other software product I've used, especially given that IDEA is about the most complicated and powerful piece of software I've ever used, and I was an Emacs user for over a decade 4. If you're having problems with window rendering, etc. with IntelliJ & Linux, turn off all your window manager eye candy stuff. It's not JetBrain's fault, it's Sun's, it's a known problem to do with their busted handling of window management in Swing. 5. IDEA is a resource pig. But that's basically because it's basically SkyNet. 6. It's worth complaining to the Scala plugin people that you would prefer to have a file view of the Scala classes in addition to a file view.
Just a note, I said "behind" instead of "beyond" by accident in the above comment. Read what I meant, not what I said
Ryan,
1 - Yeah, the turds issue is small and if I had seen any redeeming value from IntelliJ, it would have been something I could easily live with. 2 - If the Scala support is early, it should be marked as Alpha or Beta. I would have even been happy with the Scala support if the rest of IntelliJ hadn't been so weak. On my Windows machine, the IntelliJ plugin is similar in quality to the Scala Eclipse plugin. However, IntelliJ on its own is so bad, I can't see using it. 3 - I guess you and I are having totally different experiences. I figure that any software that costs more than the machine that it runs on should have a flawless out of the box experience and be generally very, very well polished. 4 - I'm only experiencing problems on Linux with IntelliJ. I use lots of other software that's Java and Swing-based (e.g., NetBeans) without problem. 5 - I'm happy to allocate 4GB or more to a good IDE. If IntelliJ had been able to open a simple Lift project in 4GB, that'd be cool. It couldn't. That's a problem. 6 - I've got everything to gain for there to be more good tools in the Scala space. I'm happy to work with the IntelliJ Scala plugin people.
Hi David,
I have not experienced the same issues (i am on a 32bit mac /w 2gb ram, also i have about 15 modules in 4 different languages). What I like about intellij-scala support: - code navigation (going back and forth btw unit test and class, go to implementation) - show parameter types - find usage (it actually finds references in xml files as well) - rename refactoring (works in xml files as well) - wrap a code block with if/try catch etc. - show javadoc/scala doc of any type - show declaration of any type - debugging - auto completion with auto import (so it's enough if I just know roughly the class name/trait etc. then i can auto import it without going to the API doc (auto import means i do not have to go up and import the type separately)) - maven support is actually quite nice (once you get used to it) - they actually fix problems i report - you might find this useful too: http://www.jetbrains.net/confluence/display/SCA/Scala+Plugin+for+IntelliJ+IDEA as a bonus i get a superb sql/python/ruby/javascript/java dev environment as well. what I definitely suggest is to disable as many default plugins as possible. (also there is a file browser plugin which allows you to browse your project) (please note, I am by no means affiliated with jetbeans)
Wow... if IntelliJ really does all this stuff, I will have to try it again. I'm going to re-install on Windows and see how it is to edit and navigate a complex Lift application.
...forgot to mention, I use the EAP version (instead of the latest GA version):
http://www.jetbrains.net/confluence/display/IDEADEV/Diana+EAP
I'm having a good time with IntelliJ 8 and Scala.
Firstly, I had bad experiences on my Mac at home which had 1gb ram and powerpc, it often locked up for periods of time for the garbage collector and I couldn't get it happy. Now I rent a server which I VNC to which running Centos and I do my IntelliJ development there on the server, strange right, so my mac is for emails and graphics and server for programming, it works great. I HAD problems with one things which was the plugin upgrade, when I installed the plugin a second time - when it upgraded, it really messed up the IDE because of where it installed the plugin. I had to manually remove the plugin, restart intellij and get the new one. I think you just got a bad situation going - try a clean install on a clean machine? I'm in the happy zone with it. Phil
The JDK_HOME is kind of weird. From my Java experience I've only seen JRE_HOME and JAVA_HOME. Everytime I install a new IntelliJ release I'm also wondering where does JDK_HOME come from. I just edit their startup script.
Hello, David.
Being started reading your post I was ready to argue for a lot of your remarks, but almost all of them are already discussed. Unfortunatelly, IntelliJ IDEA is not generally Linux-oriented produc and a problem with JDK_HOME enviroment variable is really weird. But as it was reasonably mentione this just issue is not related directly to Scala plugin. As for me, I use IntelliJ for development of various projects (including IDEA itself, scala plugin and contributing to Scala Language project) under Ubunte since version 7.04. I had problems you've described with Compiz on, but they disappeared as soon as I switched it off. Yes, it's a bit tricky to configure IDEA to not run out of memory. The main configuration file is $IDEA_HOME/bin/idea.vmoptions which contains all important JVM and idea settings, related in particular to memory. In mey case it looks as follows (I run IDEA on 32 bit and 64 bit Ubuntu 8.10 but with 32 bit Java) -d32 -Xms512m -Xmx800m -XX:MaxPermSize=199m -ea -agentlib:yjpagent -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=5006 -Didea.is.internal=true These settings are pretty enough for tasks I've mentioned above. So, it's very pity (but, of course, reasonable), when result of all big work is estimated only by one nasty bug, not related to the subject. Talking about Scala plugin itself, its main problem for now is a lack of good documentation (please, notice, that it's not bundlet to IDEA), describing all its features and possibles pitfalls. But if something goes wrong there are a lot of possibilities to notify us about it: via our bugtracker, Scala plugin forum, or by writing a letter to our support (support@jetbrains.com) or to me immediately. It's true, that for now we're working on a full Scala type system support implementation. Yes, unlike NetBeans or Eclipse we don't use Scala compiler but implement it ourselves, which gives us much more flexibility on code control. It's crusial moment for refactorings and code analysis. Finally, I should say, that I tried to use IntelliJ to work with liftweb project, and it might seem a bit unconvenient to configure it according to lift/maven ideology. But I did it and has no any problems during surfing through your code. That's why I'm going to rewrite our project configuration in the near term future. So, don't hesitate to ask us if something will be unclear with Scala plugin - this is only one way to make it better is to have strong feedback. Thank you. With best regards, Ilya
Ilya,
Thanks for taking the time to post a response. I've installed IntelliJ 8.1EAP on my Windows machine and have spent some time getting the editor to behave the way I expect. I am starting to see some of the benefits in terms of code navigation that pk11 mentioned. On the other hand, I'm finding the overall fit and finish of the UI pretty weak (this has nothing to do with the Scala plugin.) Things like file dialogs always opening in the root directory, the UI freezing without a wait cursor, inability to browse by file (the command-line Maven outputs file names, not class names when it reports errors), etc. do not say to me, "this is a product I'd spend money on." In terms of the Scala plugin itself, I'm pretty disappointed with the code indentation choices (yes, I know I can change these, but the defaults in the NetBeans plugin are a lot closer to what I want), the XML support (lots of freezes), flagging errors on classes in java.lang (e.g., Object is not found unless I explicitly import java.lang._), etc. I plan a follow-up post based on my experiences with 8.1EAP on Windows. It's going to be a lot more positive, but it will not likely answer the "should someone pay money for IntelliJ" question positively. OTOH, someone who already has IntelliJ might be as well served with the Scala plugin as with the Scala plugin on NetBeans. Thanks, David
David,
It seems, that unresolved classses form java.lang.* are related to project JDK, which is set incorrectly. XML support and performance were improved in last versions and and will be available in release in several days (we're trying to publish new rather stable versions at least once in two weeks). Indentation strategy is a good issue to discuss and add appropriate settings to plugin. Oh, yes. There is a known problem with IntelliJ on 64 bit Ubuntu, related to slow Swing and slow rendering. Just add to Device section in your /etc/X11/xorg.conf following lines: Option "AccelMethod" "XAA" Option "XAANoOffscreenPixmaps" "true" This must solve also Compiz problems. Kind regards, Ilya
This is an old thread, but I'm curious if you've had any further luck/unluck with IDEA + Scala? I'm considering embarking on a Scala web project and wonder if IDEA had progressed in Scala support.
My strong suggestion is that if you have trouble with any Intellij product, that you get in touch with them by posting bugs and on their forum. I find their support to be phenomenal. I had serious issues this spring with their Flex support basically not working at all, in two separate instances, and with some minimal reporting effort, had bug fixes in hand in less than a week. I also suggest using the EAPs; I've had to roll back once to an earlier EAP, but this is pretty easy. Their alpha software is better than some release stuff.
right now i'm testing idea (diana) #9920 (on windows) with scal and i dont experience any weird problems, crashes, memory use seems pretty low.
but since i've never used intellij or maven an am just starting to learn scala, i'm not even beginning to "stress it" otoh, netbeans didn't cut it (tried dev version and 6.7.1, neither could manage to show error reports in sensible way - half a mile long lines - even though they managed to navigate to the right pos. when clicked on; and one of them barfed up on nearly anything i forgot which). concerning eclipse its the usual: bloated, slow and even worse than netbeans, just taking a loon on the configuration pages screams pre-aplha pretty loudly ... |
David PollakCalendar
QuicksearchCategoriesBlog Administration |
|||||||||||||||||||||||||||||||||||||||||||||||||