[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[ide-dev] Improving Eclipse JDT - Ecosystem
- From: Marcel Bruch <marcel.bruch@xxxxxxxxxxxxxx>
- Date: Sat, 12 Oct 2013 12:05:37 +0200
- Delivered-to: firstname.lastname@example.org
- Dkim-signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=codetrails.com; s=google; h=from:content-type:content-transfer-encoding:subject:message-id:date :to:mime-version; bh=EyhAnazAaHf7Hd9Mn6I/xAH44PX6Vg5eB2Uh7fni2Mc=; b=GaSOZkpsVSG/Fcs2F9Mz/PNUT1W/2IgR50MBm+mmqBg7kDagJnnpxe8qLu988sfWwy CnzAkMd+H6AaCcDJpQ89O2UxCuxmhtyYzxd9xbG1iepD4/8m6ZeAnVXJnNmM9dUg4o6o BLbD5UI+Dzw2fBVtlYGKnK3/iY3fqQQ3XJWWE=
after the blog post "Why we dropped Eclipse in favour of IntelliJ", we investigated what key-points developers complain about and looked into which of these we could address with reasonable effort to make JDT more competitive.
Developers in general often complain about performance but also frequently about the lack of some convenience or smartness in the UI. One example often cited is JDT's proposal sorting mechanism that does not cope well with the expectations of those people that complain about it in blogs, Stack Overflow etc.
Quickfixes and other content assists also make the impression to developers to work but being half-baked, i.e., there are a couple of things JDT could do to make the impression of being "really" smart.
One issue quite visible people quite often complain about is the way how *all* IDE's (including IntelliJ and Netbeans) rank their proposals (see "Autocompletion is crap" for an example ). We collected several of these critiques and wrote a prototype that offers fixes to a couple of them. The good news is, that a few can be addressed quickly. The sad news is, that several severe ones we weren't able to solve with a reasonable performance.
Nevertheless, the smarter proposal sorter we wrote on top of JDT and Code Recommenders shows that there is a fairly large potential. The details of the sorter are described here . The doc also contains a few example scenarios that show where significant improvements occur and performance bottlenecks showed up. Benchmarks may follow. If you are curious, you may just install and try it...
But, where is all this going?
The question is, whether these issues are real pains to the Eclipse community, i.e., developers and companies, and that they are willing to invest into such improvements. It's clear that it won't happen by JDT team any time soon. They are busy with Java 8. In addition, these issues developers complain are long-standing issues. I don't expect the arrival of Java 8 to fix these things. There is also no altruism at work.
I did not see any company stepping up saying "yes, we will invest!" That means either (i) current issues are not painful enough, or (ii) companies don't know how to fix these issues and prefer to select a commercial product (read other IDEs) rather than figuring out how to improve the platform/jdt.
Looking at this from a different angle, to me it all looks like a lock-in and a dead-end.
Changing anything in JDT requires a fairly sized invest. Individuals need to earn money. So they either have to be sponsored or they have to sell commercial tools on top of Eclipse. Since individuals or small companies are developing them, these tools can't be BIG. Otherwise a developer would have to invest his time and money upfront without knowing whether he will ever get a revenue. In addition, we all know by looking at our own company environment, that buying commercial addons for Eclipse happens almost never. Plus: when building addons for JDT you never know when JDT will simply offer a similar feature and thus makes you work/invest obsolete and kill your revenue.
To summarize, individuals and small companies have high risk when investing into building small commercial products on top of Eclipse JDT. It's simply unattractive and a too high risk. In addition because of the image of Eclipse (and positioning of the Foundation!) as free and open-source software makes any commercial offering on top of JDT look alien to developers. There is a natural reluctance to buy something. Compare this with Visual Studio and Jetbrains Resharper. There is no such problem because companies are used to pay for these tools from the very beginning and the market for Resharper is still there for years(!).
So what needs to change?
(i) the idea of an IDE working group lifts off and a couple of developers get payed to invest into Eclipse JDT (for years!)
(ii) the image of Eclipse IDE as a trough-and-through open-source IDE is dismounted and Eclipse starts promoting commercial addons
The second part also requires a clear roadmap of JDT to identify which spots exist where commercial and open source projects can co-exist in Eclipse - and requires users/companies to actually BUY commercial addons (for Java). And "Promoting" means to me that on the Eclipse JDT website the commercial tools (e.g., from member companies) have to be well described and announced so that every developer recognizes that there is something else going on.
I'm not sure how much fiction that is. But without any of these changes, Eclipse runs in danger to further loose its momentum (in Java tooling) and people with great ideas won't build them on Eclipse or contribute to the ecosystem as it is today.