But unless you’re doing typelevel programming on a library engineer level, I think IntelliJ’s analyzer will have you covered in 99.5% of the time. ENSIME might do a better job in those cases. You could still use it, but it would probably give you some false negatives (“good code red”) which can be annoying. I think the reason you see people in presentations using text editors instead of IDEs (that is, IntelliJ Eclipse is no competition tbh), is because they’re usually showing off some pretty hardcore category theory / typelevel programming and IntelliJ might not benefit you that much when you’re pushing the type system to its limits. On the flipside, IntelliJ can do a lot of tricks that pure text editors can’t do - such as refactoring, assigning thing to values with the correct type annotation, look up stuff very easily, click to see implementations, and I can keep going for another 20 minutes :P I honestly think you’ll be missing out if you go back to a text editor. I have never seen anyone do anything in Vim or Emacs that I can’t easily do just as fast or faster with a IntelliJ & multiple cursors. It does a ton of heavy analysis - of course it needs to think. Sure it needs to think once in a while, but so does the Scala compiler. I’ve been using IntelliJ for Scala for almost 5 years now, and I’m extremely happy with it. Whatever the reason, it’s far less snappy, to the point where I sometimes have to wait for syntax highlighting (and I’m running a top of the line macbook). False positives on error reporting (misses some, invents others), apparent inability to interpret macros, terrible type inference in complex cases (scalaz confuses the hell out of it)… If you’re used to IntelliJ for Java development, you’ll also notice that things are noticeably slower - one common explanation is that one line of Scala corresponds to a couple to a couple dozen lines of Java. My understanding is that, as far as full fledged IDEs are concerned, IntelliJ is the current best - but it’s not without its share of issues. 8GB is a bit on the thin side especially with a bigger project. IntelliJ but it’s better to have 16 GB of RAM on your machine if possible. This is the case even for type parameters, which is the whole point of the code I wrote (the type A is "hidden" - if you have a FunctionAndArgument you know that the argument is the same type as the function takes, but you don't know what type that is - and then when we pattern match it as a we get access to that type). If something in a pattern starts with a capital letter it’s a constant you’re matching against, if it starts with a lower case level it’s a value you’re extracting. …it works in scalac, and in Eclipse/Scala-IDE. Sealed trait FunctionAndArgument case class FunctionAndArgumentImpl(function: A => String, argument: A) extends FunctionAndArgument def callFunction(faa: FunctionAndArgument) = faa match Something I was doing yesterday: if you use a lower case type parameter, like you have to in a match expression, then intellij won’t treat that as a proper type. However, it does choke on some of the functional libraries like cats (false highlighting). In fact even the guys who developed the „ScalaIDE“ used Intellij when i met them during a conference □ Intellij is the de facto standard IDE for Scala developers. Just look at this humorous anecdote by /u/griningcat on Reddit: Very versatile IDE for multiple languages beyond ScalaĪfter my research for this article, IntelliJ IDEA seems to be hands-down the favorite from a pure numbers standpoint for Scala development.Ultimate edition is free for 30 days, but beyond that it’s $149/year for the 1st year $119 for the 2nd year $89 for the 3rd year.With the Ultimate edition you get access to profiling tools Spring, Java EE, Micronaut, Quarkus, Helidon, and other support Swagger, Open API Specifications JavaScript, TypeScript and Database Tools, SQL ( source). Some developers may wish to go for the Ultimate edition. Scala debugger, worksheets and Ammonite scripts.Testing frameworks support (ScalaTest, Specs2, uTest). Integration with sbt and other build tools.Navigation, search, information about types and implicits.Coding assistance (highlighting, completion, formatting, refactorings, etc.).With Community edition you get the following:
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |