Stories
Slash Boxes
Comments

News for nerds, stuff that matters

Slashdot Log In

Log In

Create Account  |  Retrieve Password

IronPython Moving Forward Again

Posted by timothy on Wed Mar 30, 2005 04:42 PM
from the interesting-times dept.
immytay writes " Jim Hugunin (Jython, Numeric, and other projects) has issued the first release of IronPython since joining Microsoft in August of last year. IronPython runs on .NET and Mono and is supposedly faster than the C version of Python. This new version is 0.7, while 0.6 was released last summer and covered here. According to the IronPython mailing list, Jim has help from a Microsoft co-worker, and he plans to work toward IronPython 1.0."
+ -
story
This discussion has been archived. No new comments can be posted.
The Fine Print: The following comments are owned by whoever posted them. We are not responsible for them in any way.
 Full
 Abbreviated
 Hidden
More
Loading... please wait.
  • by sporty (27564) on Wednesday March 30 2005, @04:48PM (#12093710) Homepage
    To quote Dilbert, "Is it ok if we do things really fast and really wrong?" I'll be amused if they reach the same speed at 1.0 release.
    • by Anonymous Coward
      Once the code is converted to IL code, the CLR is responsible for the speed. Since the CLR doesn't change much, I would say that if they get working code now, it will have the same performance in 1.0
    • Re:Except for Mono (Score:5, Informative)

      by nightski (860922) on Wednesday March 30 2005, @05:09PM (#12094016)
      What you will find is that this is a bunch of BS. They took advantage of the new features in the .NET Framework 2.0 - which will be standardized in the CLI. .NET 2.0 isn't even out by Microsoft yet - so of course Mono isn't going to support it. But Mono is planning on eventually having full support for .NET 2.0. So it will work. Wait till 1.0 - everything will be working then.
        • Someobody expand on that: I believe ironPython is not compatible with .Net 1.0 because of python itself, something to do with dynamic allocation in python. It's something that is supposed to work in 2.0

        • by Keeper (56691) on Wednesday March 30 2005, @05:35PM (#12094366)
          If you could demonstrate that the changes were superflous in nature, perhaps you'd have a point. But given that you have no idea what was changed or the reasons for it, you're just being paranoid (and/or trolling, given the nature of your post).

          v1.1 of .Net lacked certain features necessary for running a dynamic language (ie: perf would blow). These features were added in v2.0 (ie: perf no longer blows).
          • you're just being paranoid [...]
            v1.1 of .Net lacked certain features necessary [..]

            Without looking into the matter, it might be needed extensions. As you write.

            But... I'm not even going to Google for info on protocols, file formats, etc, etc.

            Microsoft has a long history of using the standard monopolist tactics of restricting interoperability.

            They will hardly stop doing it even if ordered to do so by a court (see recent EU problems). You certainly know that, too, so you are being disingenious.

            • So that makes it's ok to react in a knee jerk fashion and point fingers without knowing the actual facts involved? How does that add anything useful to the conversation?
              • It is not finger pointing if it is well documented facts.

                You could of course be right -- Microsoft might be innocent in this particular case .... for now.

                But I wouldn't bet money on it. They aren't so stupid they don't try to hide it when they can.

                • Don't be stupid, and it *is* finger pointing. .NET 2.0 has many improvements over 1.1. That's why it's 2.0 and not 1.1. Not taking advantage of them would be stupid.
                  • I wrote:
                    You could of course be right -- Microsoft might be innocent in this particular case .... for now.
                    Multiple people have pointed out that this is typical behaviour of monopolists and the number of examples regarding Microsoft are numerous. They don't even follow court orders.

                    Noone has argued against that.

                    So your comment was not relevant. Your insult says more about ... why am I arguing with you? Good bye.

              • Mr. Softy has a historical addiction to ugliness.
                They "need" to pile up a lot of "sobriety" to reduce the tarnish on the image. The philanthropy of the Bill and Melinda Gates Foundation amounts to little in the technical community.
                One little binge of historical practices will knock them off the wagon.
                Mr. Softy wasn't addicted to coca^H^H^H^Hmonopolistic practices; he just liked the way they smelled.
        • Paolo Molaro (one of the mono guys) said on the Ironpython mailing list:

          "IronPython 0.7 compiles with the current mono from svn (not with the released 1.1.5, though the patch is minimal)."

          And Jim Hugunin has said in the same place that if Ironpython does not compile because it deviates from the spec. then it is a bug and should be entered as such.

          Try and avoid knee jerk reactions. You'll just annoy your high horse.
    • Re:Except for Mono (Score:2, Insightful)

      by tigersha (151319)
      Ok, this is it. Now I stop reading /.

      This place has now changed into a cesspool of religious people who make their own dicks grow by out-hating Microsoft. Not any better than Osama bin Laden, only a different Great Satan. And just as senseless.

      2 Things.

      a) Why SHOULD Microsoft give a fuck about whatever works on a copy of a project of theirs? So goddamn what if it does not work? Its THEIR project and THEIR right to make work whatever on it. Open Source is not the friggin Messiah demanding absolute subserv
      • by Anonymous Coward
        Hello, hello, kneejerk hatred puts YOU on the bad side. Idiot.


        This place should be labelled a hate speech site.


        And thank you for contributing your own stone to the hate edifice.
  • Vs Psyco? (Score:2, Insightful)

    by Anonymous Coward
    I'd be interested in seeing how this compares to Psyco [sourceforge.net], the runtime compiler for regular Python.

    Psyco is also rather easy to use. For basic usage, put these two lines at the beginning of your program:

    import psyco
    psyco.full()

    ..and your program is magically faster! You can also combine with the Py2Exe utility to convert your project to an executable program (although it will still only be compiled at runtime).

    • I second this. Psyco is *great*. Unfourtantely its only for the x86 platform, although, so is the MS CLR :)
      • Re:Vs Psyco? (Score:2, Informative)

        Mono runs IronPython just fine on linux/ppc, OSX, amd64 etc.
        • would you mind telling us how well does it run on this platforms? IIRC iron python on .net is 1.8 times faster than CPython, and 1.3 times faster than CPython with mono on x86. How good is the performance on ppc wrt to CPython ? (I'm not sure if PyStone runs on ironpython, but that would be a simple number to read)
          • The ppc mono port has not been optimized as well as the mainstream x86 port, The pystones numbers are about 20% lower using IronPityhon on ppc vs CPython. Part of the issue is that the ppc systems I use still don't support the __thread C keyword which allows a faster runtime and GC implementation so my systems will benchmark a little slower.
            We expect to improve the port speed though, of course.
  • ...write a really really fast app in it to convert mounds of Perl code over within my lifetime. And then maybe they can make Windows more stable. And then...

    Screw it. I'll settle for the first thing if it ever happens.
  • by fm6 (162816) on Wednesday March 30 2005, @06:03PM (#12094677) Homepage Journal
    There seem to be a lot of Java and .NET scripting languages that are just ports of Python or Perl. I suppose these have their uses, but the disconnect between the language and the concepts of the underlying runtime strike me as a problem.

    Lately, I've become interested in Groovy [codehaus.org], a JVM-based scripting language that combines concepts from Java (syntax, access to the class libraries) with concepts from Perl (dynamic typing, native syntax for collections and regular expressions). It would be interesting to see something similar for .NET.

      • Yes you are. You have to look at the language is like rather than making a snap judgement based on a rough analogy about one small aspect of the language.

        If you want the skinny, Groovy gives you the power of Java with fewer LOC.
    • I'm not familiar with Groovy, but I find that Python and Java together in Jython is a good combo. I'm not sure what you mean by saying that Python is disconnected from the concepts of the JVM. At least at the language level, what I like about Jython is that Python and Java *are* different languages.

      Two great tastes...

      YMMV. Void where prohibited.
      • first of jpython is just too slow. with groovy you can compile the groovy script in to a .class and get the same performace (or the lack of ) as a regular java class.

        Well almost, as groovy uses reflection for method invocation, it is slower than regular java method call, but this is being worked on.

        The great thing about groovy is it supports junit from within, I have cut down my unit testing time drastically ever since I started using groovy.

        Plus forget about writing complex build.xmls for your ANT . You

      • By "disconnected" I mean that Python has its own unique approach to objects. It's been a while since I worked with Python, but as I recall, it has some very un-Javaish notions about creating ad hoc object types. I assume Jython implements some kind of compatibility layer to handle this difference in object semantics. Groovy, by contrast, deals with objects in precisely the same way as Java does.

        I'm curious to know what benefits you see from runing Python code on a JVM instead a native runtime.

        • Ok, I see what you mean about the different models of object. So far that hasn't been a problem for me.

          As to the benefits of Jython vs. CPython: Sometimes I like to use some of the Java libraries in a Python program, such as Swing. (Although most of the time, if I'm writing the whole thing in Python, its large library base is sufficient.) Often I use Jython because I have a program that's partly in Java and I'm using Jython to debug it, or write a test wrapper, or do something else using my Java code from
    • Groovy is a bad port or ruby without the amazing syntax beauty ( one of rubys main virtues )
    • by the quick brown fox (681969) on Thursday March 31 2005, @12:30AM (#12097412)
      Check out Boo [codehaus.org]. It's really a phenomenal language, and much more mature and stable than the version number (0.5) would lead you to believe.

      Groovy has been taking a lot [pyrasun.com] of heat [manageability.org] lately. Boo seems not to suffer from the management/community problems Groovy has. In fact, Boo is just plain more exciting; Groovy is just Ruby disguised in Java syntax, as far as I can tell, whereas Boo takes what's best about Ruby (heavy emphasis on closures/blocks), Python (indent-based scoping, first class functions), and C# (static typing, properties, annotations, "using", p/invoke, .NET native), and one-ups them with type inference. It really does provide the best of both static and dynamic typing; there is NO compromise here as far as I can tell.

      As a bonus, the tool support is already very good. As with any self-respecting scripting language, it includes an interactive interpreter. (Boo scripts can be interpreted or compiled.) The Visual Studio .NET debugger already works with Boo, and if you write your Boo code in SharpDevelop (a free IDE for .NET platform) you can get code completion, syntax highlighting, code folding, etc. And since it's all statically typed, there is hope for IntelliJ-like refactoring tools, although I don't think any exist yet.

      Bottom line, I think any Python, Ruby, or Groovy fan should take a long, hard look at Boo. You will find a whole lot to like.

      • by Anonymous Coward
        Based on this post I went and downloaded Boo, SharpDevelop and the BooBinding for SharpDevelop.

        I must say that I'm thoroughly impressed!

        I started off exploring some features of the CLI and Boo was able to handle all of it with grace. Delegates are a joy to use since Functions are objects. The Type and reflection systems all work as expected. The Type Inference system is really innovative. It saves you typing through inference, but maintains strong type functionality with compile time error checking. Much
  • by mike_sucks (55259) on Wednesday March 30 2005, @09:59PM (#12096611) Homepage
    As Edd Dumbil pointed out, there's a number of questions that need to be answered before it is worth getting behind IronPython, such as:

    - Is it actually Free Software?
    - Why do I need a passport account Passport to participate?
    - Why are you bothering to release source code if you're not willing to
    accept patches?
    - Why don't you want to get it working with Mono?

    And so on.
    • Err, here is Edd's post [usefulinc.com]. Whoops.
    • from www.ironpython.com

      IronPython-0.6 is now available as Open Source Software under the Common Public License version 1.0 [eclipse.org]. A single zip file containing both the source code and the binary executables can be downloaded below.

      • That's a start. It is Free Software, but too bad it isn't GPL compatible.
        • That's a very good start, and I think it should about stop there myself. The CPL has additional patent restrictions the GPL does not. In fact, it seems to be an all-around better license, except it is not GPL v2 compatible. Then again, the FSF doesn't think either Apache license, or a number of other licenses are compatible either. Just because they are not compatible with the GPL, doesn't necessarily make them a bad license. I think the FSF even had a statement on the CPL going something like (to paraphras
    • Why do you say he doesn't want Ironpython to work in Mono?
      • The first sentence on www.ironpython.com is IronPython is a new Python implementation targeting the .NET and Mono platforms.
      • Lupus@ximian said on the mailing list that ironpython 0.7 compiles with current SVN Mono code.

      So... what's the problem?

      This is what Hugunin said about accepting patches:

      Given the company that I work for, I would have to spend a LOT of time with lawyers working out the right contribution policy in order to accept even sm

      • Have a read of this message [dreamhost.com]. If some of these issues have been cleared up, then great!

        If Hugunin has issues accepting patches because of who he works for, then that's a shame. I'm glad he thinks that that may change post 1.0, but why will these issues suddently be easier to work around just because the code has reached a stable version? If they can be worked around, why not do so now?

        How long will it take for 1.0 to be released? Are people prepared to wait that long rather than forking, starting from scra
        • If Hugunin has issues accepting patches because of who he works for, then that's a shame.

          Of course it's a shame, but Hugunin might not be working on IronPython at all if MS didn't pay him -- which is better? You know, most employers put some restrictions on how their employees use their time.

          I'm glad he thinks that that may change post 1.0, but why will these issues suddently be easier to work around just because the code has reached a stable version?

          Hugunin thinks there are pros and cons to accepting

          • > Later, when the codebase is more mature, outside patches make more sense
            > (patches generally touch less code, there are less conflicts , easier to
            > review).

            Patches for FLOSS projects usually come in two forms: uber patches from major contributors and 2-line bug fixes from knowledgeable users.

            By rejecting the former, you're discouraging people from becoming intimately familiar with the codebase early on - when it is usually easier to understand, so you're less likely to get such patches later on
  • I suppose the main benefit I saw was a more palatable way to tap into the winforms api. Of course, as another poster mentioned, it still needs a lot of work to be usable.
    • by Keith Russell (4440) <[keith.russell] [at] [gmail.com]> on Wednesday March 30 2005, @05:59PM (#12094635) Homepage Journal
      nt

      No, I think we need t.

      Every platform that has a .NET implementation already has a native Python implementation, which makes Hugunin's work, while interesting, ultimately redundant. I would love to hear how this little side project reinforces Microsoft's monopoly power in operating systems.

      • by damiangerous (218679) <1ndt7174ekq80001@sneakemail.com> on Wednesday March 30 2005, @06:13PM (#12094770)
        Not redundant at all. It's faster than CPython, and it can use both CLR and Python classes as well as extend CLR classes with Python.
        • It can *hypothetically* use Python classes - if you look at the release, there's not actually much there that you can use. As the compiler gets more stable and modern, you'll be able to use more of the python library (hopefully).
      • I don't see it as being redundant at all. For Python developers on almost anything except Windows, you'll most probably have some native Python interpreter installed. You can do all your development, making a great application which targets the .NET CLR, and then deploy it to the world (which by that time will have probably upgraded to the version 2 .NET Framework/CLR). All these Windows users won't have to worry about downloading and installing a native interpreter to run your application, since they'll