HackerReposA FIELD GUIDE TO OPEN SOURCE
ProSponsor the shelf♧ 0
← Back to top all-time
ensime
ensime-server
Scala2010–2015
ensime / ensime-server · Archived

ensime-server

ENSIME JVM Process

5Distinct people
7Mentions
0Explicit recommenders
3GitHub stars
REPOSITORY AT A GLANCE

What to know before exploring

What it is

ENSIME JVM Process

GitHub

Where it is used

No documented product use has been verified yet.

What people are saying

No recommendation phrase was found in the indexed comments.

No classified warning is attached to this page. Read the discussions before treating silence as approval.

Also in these discussions

No other repository is repeatedly linked in the same discussions.

This week on Hacker News

Nov 7–Nov 14 UTC · Direct repository links and separately labeled related project stories. Indexed through 11/14/2026, 3:56:07 PM UTC.

No direct repository links were found in the indexed HN discussions over the past seven days. Older discussions are available below.

Mentions over time

HN mentions by year7 dated mentions

Observed mentions: 2010-09-26 18:15:11 UTC to 2015-06-11 10:25:04 UTC.

0122010-01-01 00:00:00 UTC to 2011-01-01 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 comments20102011-01-01 00:00:00 UTC to 2012-01-01 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 comments2012-01-01 00:00:00 UTC to 2013-01-01 00:00:00 UTC (exclusive): 2 mentions; 0 submissions, 2 comments20122013-01-01 00:00:00 UTC to 2014-01-01 00:00:00 UTC (exclusive): 2 mentions; 0 submissions, 2 comments2014-01-01 00:00:00 UTC to 2015-01-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2015-01-01 00:00:00 UTC to 2016-01-01 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 comments2015

Counts come from the repository’s dated source evidence. Index cutoff: 2026-11-02 08:16:59 UTC.

View mention counts and date ranges
UTC ranges include their start and exclude their end. Select a period to filter the source evidence.
PeriodStart (UTC)End (exclusive, UTC)MentionsSubmissionsComments
20102010-01-01 00:00:00 UTC2011-01-01 00:00:00 UTC101
20112011-01-01 00:00:00 UTC2012-01-01 00:00:00 UTC101
20122012-01-01 00:00:00 UTC2013-01-01 00:00:00 UTC202
20132013-01-01 00:00:00 UTC2014-01-01 00:00:00 UTC202
20142014-01-01 00:00:00 UTC2015-01-01 00:00:00 UTC000
20152015-01-01 00:00:00 UTC2016-01-01 00:00:00 UTC101

What Hacker News says

7 sources
I know of two modes for OCaml: TypeRex[1] and Merlin[2]. I've used both, and they both work reasonably well. The problem with TypeRex is that it requires changing your build, so it's not an easy option for companies that have some sort of custom build system in place. Happily, by the time I got around to working at a company like that, somebody had written Merlin which does not need anything like that. It even worked with js_of_ocaml, which was very impressive. I thought it was a very good tool. [1]: http://www.typerex.org/ [2]: http://kiwi.iuwt.fr/~asmanur/blog/merlin/ Emacs also has good support for a few other languages. Haskell has ghc-mod[3] and scion[4], for example. [3]: http://www.mew.org/~kazu/proj/ghc-mod/en/ [4]: https://github.com/nominolo/scion Similarly, there is ENSIME[5] for Scala. [5]: https://github.com/aemoncannon/ensim
Read the rest
e You can also use eclim[6] with Emacs, which integrates with Eclipse to offer rich functionality for Java. [6]: https://github.com/senny/emacs-eclim Of course, Emacs has language-aware editing for Emacs Lisp by default :). You can get similar support for most other popular dynamically typed languages as well. So yes, Emacs does support plenty of languages like that, although almost always through a plugin. Happily, with the new package manager, installing and managing plugins is now trivial.
In Why we're supporting Typed Clojure
For most languages (however, notably not Java), Emacs can have great auto-completion. I personally really like auto-complete mode. It might take a little bit of effort to configure auto-complete mode to work very well with your favorite language, but I've found it well worth doing: it's far, far easier than learning some new editor and lets me keep using the rest of Emacs's great features in any language I happen to be using. EDIT: Reading some other comments, there is Emacs-eclim that gives you Java IDE features inside Emacs. So forget what I said about Java: Emacs can now handle even Java well! For dynamically typed languages, Emacs can essentially be as good as possible fairly easily. I've been using it for JavaScript and Racket lately, and it's been really great for both. For statically typed languages, there are often type-aware tool
Read the rest
s that make it as good as any IDE--for example, I've used TypeRex[1] for OCaml; there is also ENSIME[2] for Scala and similar tools for a bunch of other languages. [1]: http://www.typerex.org/ [2]: https://github.com/aemoncannon/ensime Just because Emacs is a great text editor does not mean it isn't a good IDE. It has some very good support for a whole bunch of languages. I'm under the impression that Java is an exception to this rule, but I really don't know--I haven't used Java in a couple of years and really hope I will never have to use it again. So, all told, I think this oft-repeated advice to use an IDE instead of a text editor like Emacs is misguided: Emacs is much more an IDE than just a text editor. Perhaps it's accurate for Vim, which I've never used (and I wouldn't be surprised if Vim support IDE features well too), but it isn't anywhere near true for Emacs.
In Commanding your text editor
It's a good comparison of the two languages. Regarding type classes, I personally like Haskell's approach more. I haven't used Scala, so I'm assuming that objects there behave the same as modules in OCaml (at least in practice for this particular purpose). Essentially, Haskell makes the right compromise: the most common case (having one instance per type) is easy while the less common case (explicitly specifying the instance) is less easy. The core difference is this: when you want to use a different "instance" in OCaml, you just pass in a different module; in Haskell, you have to create a new type. Happily, creating a new type is easy, especially with newtype deriving which lets you bring instances you don't want to change over to your new type for free. This has some advantages: the instance is now encoded in the type, so that you canno
Read the rest
t mix different ones by accident. This is useful because it's quite easy to have code that depends on, for example, a consistent compare function in different places on the same type. This also lets the choice of implementation be implicit at the call site, so you only have to specify the instance once rather than repeatedly in different places. I think there is also a good case for type classes not being reified as modules or dictionaries or objects or what have you: they essentially exist exclusively at the type level. That is, the instances are a property of each type, not part of a module or anything like that. This also makes the syntax for types clearer: the => acts as implication and the type class acts as a predicate on the type. In summary: type classes are more restrictive than first-class modules, but this is a good compromise. You can get the same effect with newtype, with the added bonus of having the difference reflected in the type system. I'm afraid I have not managed to make my thoughts on type classes too clear. I've been thinking about that particular design trade-off (type classes vs first-class modules) and writing this has probably helped me get my thoughts together far more than it will help any readers :P. Maybe I'll write a blog post about it--I've been meaning to start a blog for a while now... Some other thoughts: I think laziness is a good thing because you trade performance for simplicity and expressiveness. It's easier to add strictness to a lazy language than vice-versa. But I essentially use Haskell where others would use something like Python, so its relative performance is well beyond satisfactory even with plenty of space leaks :P. As far as developer tools go, Scala has Ensime [1] and Haskell has Scion [2] but I've used neither. OCaml has TypeRex [3], which I have used and is pretty cool. Assuming that Ensime and Scion are similar to TypeRex, they're certainly good enough. You never have to leave Emacs :). [1]: https://github.com/aemoncannon/ensime/ [2]: http://code.google.com/p/scion-lib/ [3]: http://typerex.org/ Coincidentally, OCaml has some of the advantages the author found in Scala while being more like Haskell. I would certainly consider at least playing around with it a bit--it's a very nice language. I still prefer Haskell, but not by too large a margin.
In Take on Haskell vs Scala

MAKE YOURSELF AT HOME

A few shortcuts

/
Search the collection
?
Open this guide
Esc
Close dialogs and navigation

Your saved repositories and interests stay in this browser.