26 comments

[ 2.9 ms ] story [ 68.5 ms ] thread
This is cool and probably useful. I remember myself being a Java noob trying to find out how I was supposed to add an image to a Java swing app only to find that it wasn't graphics2d or anything but label.
Very interested to see how accurate this is in practice. Could really help cut down the google -> stack overflow -> copy -> paste round trip time.
It tickles me that reducing this roundtrip time is the solution rather than having a more, I don't know the right word here, intuitive (?) language and/or API to begin with.
I still think there is a lot of value in both the 'this is how this API is typically used' and the 'see other examples'. Even if the authors of the code provide some sort of documentation and examples for how things are used, there is lot of data about how consumers actually use their API's.

I think it would be really cool to be able to see how others (publicly or privately) use certain APIs. I think it would help with faster adoption and "crowdsourcing" documentation. I can't tell you how many times I have had to Google/Stack Overflow Spring (and other library) specific things because I just wasn't sure if it could be used in a certain context based on the documentation present in an IDE or the project's documentation.

Can you name a language which doesn't have large numbers of code snippets in stack overflow answers for performing common tasks?
Most academic languages don't have large numbers of stack overflow answers. Look at Standard ML or most dependently typed languages (Agda, Coq, Twelf, etc.). Though, Agda produces snippets for you with hole based programming and there are entire books written about generating snippets with tactics in Coq; as far as Twelf and others are concerned, well, you're on your own.
It tickles me that there are people who don't have the burden of, I don't know the right word here, reality (?) to deal with when they code.

Sometimes people need to maintain systems that have generated millions in revenue even if they use APIs that suck, or languages that you might not find intuitive.

How intuitive a language or API is is somewhat subjective. I get the feeling there are diminishing productivity returns from the latest 're-organisation' of a language or API structure. Is this work simply pandering to peoples ever changing preferences?

Tickling aside, anything that removes humans from the process looks good to me.

Isn't this active by default in Eclipse? It's rather accurate and useful. But also remember to filter imports you don't want in Eclipse settings. For example the dreaded java.util.List vs java.awt.List etc.
i think the unique thing here is feedback gathered from other devs. note the percent markers. eg, here's all the auto-complete possibilities, 80% of devs chose java.util.List, only 3% chose java.awt.List.
Sounds cool. Might try it in work
Dear Eclipse,

Please make a more usable IDE.

Sincerely,

Anyone that has used other IDEs besides Eclipse.

Dear Eclipse Detractor,

Please make a more reasonable and detailed critique.

Sincerely,

Someone who prefers Eclipse over IntelliJ (strongly, I cannot STAND IntelliJ), Textmate, Atom, Sublime Text 3, Vim, Emacs, and NetBeans.

(EDIT: davnicwil, your reply to me disappeared. Was it deleted? I appreciated the discussion and had written a reply.)

(comment deleted)
I feel the opposite way about the IntelliJ/Eclipse (strongly prefer IntelliJ over Eclipse). I stopped using Eclipse at, I believe, Juno or Kepler (4.2/4.3) and switched to IntelliJ 13. I found that Eclipse very frequently just plain froze while doing an operation, was laggy, and crashed frequently. There was also very long startup times.

I haven't used Eclipse in a few versions, but when I made the switch I was extremely thankful that I did. What makes you prefer Eclipse? Or, rather, what makes you dislike IntelliJ?

My exact feeling, I have left eclipse a long time ago, recently (around a year ago) I tried luna and it was still incredibly slow, crashed a lot, for no reason my classes wouldn't hot-swap making me restart the entire webapp (with a heavy startup time) and had to rebuild the workspace because for unknown reasons since everything just stopped working. Not to mention that the eclipse auto-complete is just useless when compared with intellij.
> Please make a more reasonable and detailed critique.

and then

> I cannot STAND IntelliJ

with no reasonable or detailed critique.

Someone else replied but deleted their reply, I had mine written up but they deleted their post before I could post. Here it is:

> You're right in that a large degree of my preference owes itself to familiarity bordering on second nature – I gave IntelliJ another shot recently, and I didn't feel right adapting to it. Autocomplete was typically the very first keystroke I changed - to escape - so it was never frustrating to me. I'm also fond of an old plugin that generates class builders, which made creating immutable POJOs with autogenerated constructors/hash/equals/toString super fast and easy.

> Thanks for your reply!

IntelliJ can auto generate all that, although not through a. Single keystroke.
IntelliJ can auto generate all that, although not through a. Single keystroke.
(comment deleted)
Eclipse's usability depends a lot on what it use it for. It supports lots of languages, build tools and environments. All that is supported through plugins and the quality of those plugins determines your user experience. Without naming your use case your comment doesn't really help anyone.

I like IntelliJ but do prefer Eclipse and am quite happy with it's core functionality. It's when you install all kinds of extra plug-ins is when it's starts to become less usable. But I've heard similar things about Sublime and Atom.

I think you make a good point -- the "mod-ability" of Eclipse simultaneously makes it attractive to people who like to customize their dev environment to the max and is a big weakness. Some people just want an out-of-box experience that just works.

As an example, I barely remember (since it was a while back) having to find and configure Maven support. Search for the plugin (think it was called m2eclipse). Then add the plugin repository to a list inside the update dialog. Then select the appropriate bundle. Then figure out where the new menu options are (right-click on the POM? on the project?) I also remember not fully grokking the workspace concept (Why can't I work with the checked-out project directly?) This was two/three years back so I'm sure Eclipse may have improved a lot in the meantime.

Take it for what you will -- the point is not to get into Eclipse vs. other IDE discussion, but that having a lot of stuff ready to go and discoverable matters a lot to Joe Developer (and to the person trying to onboard him).

Dear Every Other IDE That Costs Money, Whether Costs Are Implicit (os license bundling, for example) Or Explicit (not naming names),

Please be free and open source.

Sincerely,

Anyone that has ever paid money for anything ever.

Dear someone who has never paid money for anything, you would be surprised that in some cases the performance boost you get ends up compensating (mine with IntelliJ did)
This is potentially very dangerous unless it includes information about WHY the proposal was used.

Best practices are useless unless people understand exactly why they're doing what they do - that's not programming, it's simply copying.

We need ways to decrease technical debt, not make it easier to generate.