[IronPython] intellisense (Re: Announcing IronPython 2.6 Alpha 1)

Toni Alatalo antont at kyperjokki.fi
Sun Mar 29 22:38:18 PDT 2009


Leighton Haynes kirjoitti:
>
> I have to say – Intellisense is very high on our wishlist – we have 
> many developers unfamiliar with Python, and Intellisense would ease 
> the transition a lot.
>

Has anyone looked at implementing this yet? I haven't looked at what 
IronPy studio or any other ironpy tool does, just a note here based on 
experience elsewhere:

As I guess you all know, 'tab completion' with a fully dynamic language 
is not at all similar to how it is in a static language like c#. A 
simple useless example:

In [1]: def plus(a, b):
...: return a + b

In [2]: plus(1, 2)
Out[2]: 3

In [3]: plus("hip", "hop")
Out[3]: 'hiphop'

So if you are inside the 'plus' function there with intellisense:

def plus(a, b):
a.** #what do you expect intellisense to do here? show int or str 
methods, or something else?

a could be of *any* type. and if you don't benefit from that 
functionality, you might be as well writing c# (or perhaps Boo..)

AFAIK there are two approaches to this problem:

a) some IDEs like Eclipse /parse/ the code in your project and track 
types, so that if they see a = MyClass() somewhere, the 'tab completion' 
there can then show members from that class when a is looked at. this 
seems to be limited, at least when i saw a friend using it it didn't 
reach inside libraries etc - just own classes in the same project - but 
at least is something.

b) other dev envs actually *run* the Python code to have instanciated 
objects when editing the code, so can do introspecting normally. with 
IPython (I for *interactive*, the shell with in-out prompt from where I 
pasted the example earlier) that's easy 'cause it's not an editor but a 
shell so it's natural to have actual live objects at hand, and 
tab-completion etc. work. but ppl have done that for editors too - at 
least Theo de Ridder made his own editor (which uses wx as a base) work 
so that it in fact runs the py code up to your cursor, marks if there is 
a bug somewhere, and iirc has some sort of intellisense like feats via 
introspection. i don't actually know whether that works somehow also 
with the ipython integrations that ppl have recently done to many editors.

perhaps there is some other good solution that i don't know about, but 
it's hard for me to see a simple perfect solution due to the extreme 
dynamicity of the lang. of course the parsing solution a) works easily 
for code like: a = "somestring"; a.** -- i suppose that works ok in 
Eclipse / PyDev already, would be already helpful, and i suppose easy 
enough to implement for Intellisense (i don't know anything about it). 
dunno if the b) approach would be useful within VS somehow too, can be 
quite tricky i imagine.

> Leighton Haynes
>

~Toni, Playsign

> *From:* users-bounces at lists.ironpython.com 
> [mailto:users-bounces at lists.ironpython.com] *On Behalf Of *curtin at acm.org
> *Sent:* Monday, 30 March 2009 6:55 AM
> *To:* Discussion of IronPython
> *Subject:* Re: [IronPython] Announcing IronPython 2.6 Alpha 1
>
> Intellisense is a cosmetic feature at best. It's obviously nice to 
> have, but it can't actually be /that/ important to anyone...it's not 
> like the information isn't available via other means.
>
> 2009/3/29 Howland-Rose, Kyle <Kyle.Howland-Rose at aar.com.au 
> <mailto:Kyle.Howland-Rose at aar.com.au>>
>
> Hi Adam,
>
> About "intellisense is not a major blocker for iron python adoption".
>
> Unfortunately I think it might be. The commercial world is all about 
> productivity. I did a survey at work about replacing a well-known 
> development environment with eclipse and the result was "our only real 
> requirement is intellisense".
>
> Cheers,
>
> Kyle
>
> ------------------------------------------------------------------------
>
> *From:* users-bounces at lists.ironpython.com 
> <mailto:users-bounces at lists.ironpython.com> 
> [mailto:users-bounces at lists.ironpython.com 
> <mailto:users-bounces at lists.ironpython.com>] *On Behalf Of *Dody 
> Gunawinata
>
> *Sent:* Monday, 30 March 2009 6:57 AM
>
>
> *To:* Discussion of IronPython
> *Subject:* Re: [IronPython] Announcing IronPython 2.6 Alpha 1
>
> I think the fact that there are more users for "Assembly for Web 
> Pages" and "AJAX on ALGOL" than IronPython for ASP.Net contributes to 
> the delay in updates. It's too bad for us that got addicted to the 
> elegance of the solution in the first place. I remember a couple of 
> months ago about updated support for intellisense in IP for ASP.Net, 
> etc. Those are nice to have but I think an updated IP would be enough 
> to make everybody involved ecstatic. I got a feeling intellisense is 
> not a major blocker for iron python adoption.
>
> 2009/3/28 Adam Brand <adamb at silverkeytech.com 
> <mailto:adamb at silverkeytech.com>>
>
> Any update on the timeline for getting IronPython for ASP.Net updated? 
> This would make a world of difference for our IronPython-based web app.
>
> Adam
>
> Adam Brand
>
> SilverKey Technologies
>
> *From:* users-bounces at lists.ironpython.com 
> <mailto:users-bounces at lists.ironpython.com> 
> [mailto:users-bounces at lists.ironpython.com 
> <mailto:users-bounces at lists.ironpython.com>] *On Behalf Of *Dody 
> Gunawinata
> *Sent:* Saturday, March 28, 2009 1:09 PM
> *To:* Discussion of IronPython
> *Subject:* Re: [IronPython] Announcing IronPython 2.6 Alpha 1
>
> This is awesome. Web application can benefit from this "adaptive 
> compilation" approach a lot - especially for low trafficked sites.
>
> On Thu, Mar 26, 2009 at 11:08 PM, Giles Thomas 
> <giles.thomas at resolversystems.com 
> <mailto:giles.thomas at resolversystems.com>> wrote:
>
> Dave,
>
> This is great news, congratulations to the IP team on this release! 
> We'll do a test-port of Resolver One early next week and will reply to 
> the list with any issues we find.
>
>
> Cheers,
>
> Giles
>
>
> Dave Fugate wrote:
>
> Hello Python Community,
>
> We’re pleased to announce the release of IronPython 2.6 Alpha 1. As 
> you might imagine, this release is all about supporting new CPython 
> 2.6 features such as the ‘bytes’ and ‘bytearray’ types (PEP 3112), 
> decorators for classes (PEP 3129), advanced string formatting (PEP 
> 3101), etc. The minimum .NET version required for this release is the 
> same as IronPython 2.0; namely .NET 2.0 Service Pack 1. Unlike the 2.0 
> series of IronPython, we plan to release only a couple Alphas and 
> Betas of IronPython 2.6. As such, it’s key that we get your feedback 
> on the release(s) quickly to incorporate requested changes.
>
> Besides CPython 2.6 features, another significant change in this 
> release is that ipy.exe now uses “adaptive compilation” by default. 
> Adaptive compilation is a technique in which IronPython:
>
> 1. Interprets and executes Python method calls up to /N/ times for a 
> given method. If you’re only going to execute a method a few times, 
> it’s typically faster to interpret the method instead of compiling and 
> executing it
>
> 2. Compiles and executes the Python method call on the /N+1/ 
> invocation of the method. Compilation of a Python method is a 
> heavyweight operation, but we can reuse the result for subsequent 
> invocations
>
> 3. Reuses the previously compiled method for new calls to the Python 
> method. This operation is much faster than interpreting the method 
> call as the method was already compiled in the previous step
>
> The reason for this change is that it provides a nice performance gain 
> for Python code containing lots of functions/methods that only get 
> called a few times. All this said, this feature is still undergoing 
> active development and as a consequence some Python scripts may 
> actually run slower with it turned on. For this reason, our old 
> default mode of running Python scripts is still available by passing 
> the –O or -D flags to ipy.exe. Any feedback on how this new feature 
> affects your IronPython applications performance-wise would be greatly 
> appreciated.
>
> There’s also a few minor changes since IronPython 2.0.1 that are worth 
> calling out here:
>
> · IronPython.msi now installs NGEN’ed binaries by default
>
> · IronPython.msi now offers a little more selection with respect to 
> what you’d like to install. For example, Silverlight templates are 
> optional
>
> · The default installation location of IronPython.msi no longer 
> indicates whether the 2.6 release is an Alpha, Beta, or a patched 
> release. Future IronPython 2.6 installations will replace previous 2.6 
> releases which will be uninstalled automatically
>
> · The -X:PreferComInteropAssembly flag has been removed. All COM 
> interop is now done through normal COM dispatch
>
> You can download IronPython 2.6 Alpha 1 at: 
> http://ironpython.codeplex.com/Release/ProjectReleases.aspx?ReleaseId=22982 
>
>
> The IronPython Team
>
> ------------------------------------------------------------------------
>
> _______________________________________________
> Users mailing list
> Users at lists.ironpython.com <mailto:Users at lists.ironpython.com>
> http://lists.ironpython.com/listinfo.cgi/users-ironpython.com
>
> _______________________________________________
> Users mailing list
> Users at lists.ironpython.com <mailto:Users at lists.ironpython.com>
> http://lists.ironpython.com/listinfo.cgi/users-ironpython.com
>
>
>
>
> -- 
> nomadlife.org <http://nomadlife.org>
>
>
> _______________________________________________
> Users mailing list
> Users at lists.ironpython.com <mailto:Users at lists.ironpython.com>
> http://lists.ironpython.com/listinfo.cgi/users-ironpython.com
>
>
>
>
> -- 
> nomadlife.org <http://nomadlife.org>
>
> ************************************************************************
>
> Allens Arthur Robinson online: http://www.aar.com.au
>
> This email is confidential and may be subject to legal or other 
> professional privilege. It is also subject to copyright. If you have 
> received it in error, confidentiality and privilege are not waived and 
> you must not disclose or use the information in it. Please notify the 
> sender by return email and delete it from your system. Any personal 
> information in this email must be handled in accordance with the 
> Privacy Act 1988 (Cth).
>
> *************************************************************************
>
>
> _______________________________________________
> Users mailing list
> Users at lists.ironpython.com <mailto:Users at lists.ironpython.com>
> http://lists.ironpython.com/listinfo.cgi/users-ironpython.com
>
> ------------------------------------------------------------------------
>
> _______________________________________________
> Users mailing list
> Users at lists.ironpython.com
> http://lists.ironpython.com/listinfo.cgi/users-ironpython.com
>   



More information about the Users mailing list