Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [wtp-dev] Draft JSDT plan is now on Wiki



On 14 Oct 2015, at 10:38, Doug Schaefer wrote:

On 2015-10-14, 5:03 AM, "wtp-dev-bounces@xxxxxxxxxxx on behalf of Max
Rydahl Andersen" <wtp-dev-bounces@xxxxxxxxxxx on behalf of
manderse@xxxxxxxxxx> wrote:

Thanks Gorkem, that's what I suspected.

For your information, it's possible to execute tern.java with J2V8,
but it's not official because:

* I'm waiting for J2V8 supports OSGi
https://github.com/eclipsesource/J2V8/issues/37
* it's a little slower than node.js but I have implemented tern client
with J2V8 very quick. See

https://github.com/angelozerr/tern.java/tree/master/core/tern.server.j2v8
* there are little limitation because some tern plugin like node.js
uses require function to supppirt completion for required modules.

Cool. I was hoping that but. Ian’s done some great work with J2V8
and we should make sure we can use it from Eclipse projects. If there are performance issues, we should try and fix them. At the end of it,
it’s the same engine that node uses.

Yes, so using j2v8 and/or node.js probably end up having the same issues
(if any) around getting licensed cleared.

Yeah, approving V8 would be interesting. But I can see j2v8 being
important for a variety of use cases (React pre-rendering for example). Unless Oracle improves the performance of Nashorn that is, but I’m not
counting not that at the moment.


I guess the other side of that question, why couldn't we do the same
as what tern does in JSDT?

Many people have tried (original JSDT team, vjet, red hat, and a few
others) and the conclusion is the same - keeping up with javascript
language with a parser written in java is a *massive* undertaking.

Hence why using existing tools being done in the javascript world is
being considered instead.

I think that’s what we’ve concluded as well.


IMHO, I think it's a very hard and long task. tern.js supports ES6 and
provides the capability to implement tern plugins like requirejs,
nodejs, angular, dojo, YUI, etc
I hope it will support ES7 decorator (used by Angular2 if I have well
understood).

As it can be used in any context, there are a lot of editors like
Emacs, Vim, Sublime, Atom, Bracket which uses ternjs. So there are a
big community around ternjs.
When you write a tern plugin, other editors can use it (write once,
run anywhere). I see this benefit with
https://github.com/angelozerr/tern-tabris or
https://github.com/angelozerr/tern-phaser where there are CodeMirror,
Atom, Sublime users who improve thoses plugins, that I use inside
tern.java.

I think it should be very shame to give up ternjs just for a license
term.

But that is unfortunate the reality of OpenSource - if the tern
community does not clearly put a license on their various projects and
keep track of who contributed to their project their project is
unfortunately seen as a liability to use.

If we can ensure/encourge that what we include in tern js has a clear
license from start this is not a problem.

Orion has tern.js approved. We’ve been assuming that wasn’t the issue.

Has anyone tried to approve node? I thought Cordova gave that a go but
failed. Or was that specific to Cordova?


Thym has not tried node.js. It was for Cordova's mobile platform's. I have
today filed a new CQ for Cordova CLI which is a node.js based tool.

node.js actually has an exempt-prerequisite CQ [2]. I am not sure if anyone tried to file one for redistribution so far.

Tern.js is probably a workable case because it has a very small dependency tree (see below) and Orion is not using things like glob and minimatch and hence they have not CQed those.

 tern@0.15.0
   ├─ acorn@2.4.0
   ├─ minimatch@0.2.14
   │  ├─ sigmund@1.0.1
   │  └─ lru-cache@2.7.0
   ├─ glob@3.2.11
   │  ├─ inherits@2.0.1
   │  └─ minimatch@0.3.0
   │     ├─ sigmund@1.0.1
   │     └─ lru-cache@2.7.0
   └─ typescript@1.0.1


However the root issue is the ability to utilize full strength of node.js. As a comparison Grunt or Bower has a
dependency tree that is 3 screens long.

[1] https://dev.eclipse.org/ipzilla/show_bug.cgi?id=10264
[2] https://dev.eclipse.org/ipzilla/show_bug.cgi?id=9479



Yes, it would be a shame, but it’s the reality we face at Eclipse.
We really need modern web development tooling to be one of the core
pieces of the Eclipse IDE. And being able to add support for new
frameworks quickly is very important. Angular 2 and React are critical there IMHO, Angular 1 and Ember are probably in the mix there too. And
as we all know there’s a new one every day :).

We need to do what we need to do, though. Hopefully we can work this
out with tern. If it doesn’t, we need to consider alternatives.

got anything in mind ?

The main alternative we’ve considered is writing our own from scratch. But as you suggest, that’s a huge amount of work and we really have better
things we should be doing to improve the Eclipse IDE.

The other alternative is to do what Xtext has done and download node after
asking the user if it’s OK.

I also think that the Eclipse Marketplace offers solutions. We could
provide packages that mix Eclipse and non-Eclipse things. I also hope we
can extend the Eclipse installer to add 3rd party things from the
Marketplace, just as Visual Studio has done.

That’s likely the path I’ll pursue for Qt. Seems like most ISV lawyers
have more lenient rules that Eclipse lawyers so I can still build a
product based on tern.js/java even if Eclipse doesn’t allow it. As long as
I have some way to easily get this feature to Eclipse users and my QNX
customers, I’m happy.

Doug


/max


Regard's Angelo


2015-10-11 0:02 GMT+02:00 Dawid Pakuła
<zulus@xxxxxxxxx<mailto:zulus@xxxxxxxxx>>:
Hi,

currently it’s not possible to do many things in JSDT by design (JDT
history). JSDT build thirth semi model (something between AST and
language model) during it’s inference process. This model have a lot
of limitations like:
1. Unable to change return type based on arguments
2. Unable to register method/field without AST
3. Unable to drop fields wrongly detected by default inferencer

So a lot of context based completions and semantic analysis aren’t
possible without second index and additional (external) processing.

Via bug 466589 [1] I requested porting DLTK inference engine as fully
pluggable, simple and fast alternative to current.

[1] - https://bugs.eclipse.org/bugs/show_bug.cgi?id=466589
--
Dawid Pakuła
+48 795 996 064<tel:%2B48%20795%20996%20064>


On 10 October 2015 at 23:12:37, Doug Schaefer
(dschaefer@xxxxxxx<mailto:dschaefer@xxxxxxx>) wrote:

Thanks Gorkem, that's what I suspected.

I guess the other side of that question, why couldn't we do the same
as what tern does in JSDT? For QML we have been working on an ANTLR 4
grammars for JavaScript and still need to make sure it's correct and
then do the hard part, the semantic analysis. But it could be a path
to success as well.

Sent from my BlackBerry 10 smartphone on the Rogers network.
Original Message
From: Gorkem Ercan
Sent: Saturday, October 10, 2015 12:06 PM
To: General discussion of project-wide or architectural issues.
Reply To: General discussion of project-wide or architectural issues.
Subject: Re: [wtp-dev] Draft JSDT plan is now on Wiki


On 9 Oct 2015, at 21:43, Doug Schaefer wrote:

Quick question on the tern.java integration. If I¹m correct, it
looks
like
it¹s optional depending on whether tern.java is installed on the
user¹s
system. What are the arguments against making a tighter integration
if
tern is so much better than JSDT could ever do.

It is legal. tern.java uses tern.js which uses node.js. Our current
CQs
for node.js, and npm are
for prerequisite exempt only and it is not enough for tighter
integration.
Also tern.js and all its npm dependencies needs to go through legal
process.

Until eclipse makes its peace with node.js and npm, we will continue
to
have restrictions on
utilizing tools that are based on node.js.

I don¹t think I need to state this but we do want the best user
experience
possible so the user doesn¹t have to concern themselves about
installing
stuff they probably don¹t know about.

Doug.

On 2015-10-09, 11:37 AM,
"wtp-dev-bounces@xxxxxxxxxxx<mailto:wtp-dev-bounces@xxxxxxxxxxx> on
behalf of
Gorkem
Ercan"
<wtp-dev-bounces@xxxxxxxxxxx<mailto:wtp-dev-bounces@xxxxxxxxxxx> on
behalf of
gorkem.ercan@xxxxxxxxx<mailto:gorkem.ercan@xxxxxxxxx>>
wrote:


I have moved the draft JSDT plan to wiki [1] and cleaned up the
bugzilla
references.
I think it is still missing a few bugzillas but feel free to
add/remove,
contribute.

Once we are happy with it we can move it to eclipse project
management
portal.

[1] https://wiki.eclipse.org/JSDT/JSDT_Neon_Plan
--
Gorkem
_______________________________________________
wtp-dev mailing list
wtp-dev@xxxxxxxxxxx<mailto:wtp-dev@xxxxxxxxxxx>
To change your delivery options, retrieve your password, or
unsubscribe
from this list, visit
https://dev.eclipse.org/mailman/listinfo/wtp-dev

_______________________________________________
wtp-dev mailing list
wtp-dev@xxxxxxxxxxx<mailto:wtp-dev@xxxxxxxxxxx>
To change your delivery options, retrieve your password, or
unsubscribe from this list, visit
https://dev.eclipse.org/mailman/listinfo/wtp-dev
_______________________________________________
wtp-dev mailing list
wtp-dev@xxxxxxxxxxx<mailto:wtp-dev@xxxxxxxxxxx>
To change your delivery options, retrieve your password, or
unsubscribe from this list, visit
https://dev.eclipse.org/mailman/listinfo/wtp-dev
_______________________________________________
wtp-dev mailing list
wtp-dev@xxxxxxxxxxx<mailto:wtp-dev@xxxxxxxxxxx>
To change your delivery options, retrieve your password, or
unsubscribe from this list, visit
https://dev.eclipse.org/mailman/listinfo/wtp-dev

_______________________________________________
wtp-dev mailing list
wtp-dev@xxxxxxxxxxx<mailto:wtp-dev@xxxxxxxxxxx>
To change your delivery options, retrieve your password, or
unsubscribe from this list, visit
https://dev.eclipse.org/mailman/listinfo/wtp-dev

_______________________________________________
wtp-dev mailing list
wtp-dev@xxxxxxxxxxx
To change your delivery options, retrieve your password, or
unsubscribe from this list, visit
https://dev.eclipse.org/mailman/listinfo/wtp-dev


/max
http://about.me/maxandersen
_______________________________________________
wtp-dev mailing list
wtp-dev@xxxxxxxxxxx
To change your delivery options, retrieve your password, or unsubscribe
from this list, visit
https://dev.eclipse.org/mailman/listinfo/wtp-dev

_______________________________________________
wtp-dev mailing list
wtp-dev@xxxxxxxxxxx
To change your delivery options, retrieve your password, or unsubscribe from this list, visit
https://dev.eclipse.org/mailman/listinfo/wtp-dev


Back to the top