[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