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 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?

>
>> 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


Back to the top