Stories
Slash Boxes
Comments

News for nerds, stuff that matters

IronPython 1.0 is Born

Posted by ScuttleMonkey on Wed Sep 06, 2006 05:34 PM
from the metal-snakes dept.
dougblank writes "IronPython version 1.0 was just released after 3 years of development. Jim Hugunin, the creator of Jython and the lead developer of the Shared Source IronPython, made the birth announcement earlier this week. From the announcement: 'I wanted to understand how Microsoft could have screwed up so badly that the CLR was a worse platform for dynamic languages than the JVM... I found that Python could run extremely well on the CLR — in many cases noticeably faster than the C-based implementation. [...] Shipping IronPython 1.0 isn't the end of the road, but rather the beginning. Not only will we continue to drive IronPython forward but we're also looking at the bigger picture to make all dynamic languages deeply integrated with the .NET platform and with technologies and products built on top of it. I'm excited about how far we've come, but even more excited by what the future holds!'"
This discussion has been archived. No new comments can be posted.
Display Options Threshold:
The Fine Print: The following comments are owned by whoever posted them. We are not responsible for them in any way.
  • Yes, but.... (Score:5, Interesting)

    by gnud (934243) on Wednesday September 06 2006, @05:37PM (#16055898)
    ...does it run on Mono?
    • Re:Yes, but.... by bogaboga (Score:3) Wednesday September 06 2006, @05:40PM
      • Re:Yes, but.... by Ana10g (Score:2) Wednesday September 06 2006, @05:48PM
        • Re:Yes, but.... by Dr_Barnowl (Score:2) Thursday September 07 2006, @03:21AM
      • Re:Yes, but.... (Score:5, Informative)

        by lakeland (218447) <lakeland@acm.org> on Wednesday September 06 2006, @06:49PM (#16056292)
        (http://go.org.nz/~corrin)
        As a .net CLR language, it can integrate with any other .net language including VB.net very easily. This integration is tight enough that you can write each function in your program in a different language, or write the GUI in VB.net and the support code in IronPython.net

        No, it is not as easy for non-programmers.

        Can it be used to create guis...? Yes it can. At some point it could be made as easy as it is in VB.net; if I were on the development team then that would not be high on my priority list. Leave the toy languages for interactive GUI prototyping, and leave IronPython for code-driven development. However, that's just me and other people have different itches they want scratched.

        I see IronPython as a very valuable development and it will make interacting with standard Microsoft-only developers on windows much easier since I will now be able to use a language I like while maintaining 100% compatability and interoperability.
        [ Parent ]
        • Re:Yes, but.... by RAMMS+EIN (Score:2) Thursday September 07 2006, @12:20PM
          • Re:Yes, but.... by supersnail (Score:2) Thursday September 07 2006, @01:03PM
          • Re:Yes, but.... by lakeland (Score:2) Wednesday September 13 2006, @03:39PM
        • Re:Yes, but.... by Lodragandraoidh (Score:2) Thursday September 07 2006, @12:25PM
          • Re:Yes, but.... by lakeland (Score:2) Wednesday September 13 2006, @03:35PM
            • Re:Yes, but.... by Lodragandraoidh (Score:2) Thursday September 14 2006, @11:40AM
        • Re:Yes, but.... by cyber-vandal (Score:3) Friday September 08 2006, @03:44PM
      • Re:Yes, but.... by jma05 (Score:3) Wednesday September 06 2006, @07:52PM
      • Re:Yes, but.... by sgt scrub (Score:3) Thursday September 07 2006, @12:13PM
      • Re:Yes, but.... by Anonymous Coward (Score:2) Wednesday September 06 2006, @06:09PM
        • Re:Yes, but.... by CaymanIslandCarpedie (Score:2) Wednesday September 06 2006, @06:32PM
          • Re:Yes, but.... by lakeland (Score:1) Wednesday September 06 2006, @06:42PM
            • Re:Yes, but.... by Shados (Score:2) Wednesday September 06 2006, @07:08PM
            • Re:Yes, but.... (Score:5, Interesting)

              by JimDaGeek (983925) on Wednesday September 06 2006, @07:32PM (#16056477)
              I actually find the multi-language of of the CLR to be a negative. I work at a fortune 500 and most of us use C# and/or Java. There are a few groups of "programmers" that have always been VB-only/ASP-Only "programmers". They have really no understanding of programming maintainable code. The majority of the junk they churn out is MS-Only/IE-Only crud. The bad part is if one of us programmers ever have to maintain the crappy VB.Net code. C# is a pretty nice language that flows well with .Net and is not overly verbose. VB.Net is the exact opposite, one might as well code in COBOL.Net. It really stinks to have the majority of a code-base in C# and then have some VB.Net assemblies thrown at you that you that you later have to maintain. IMO, it really kills productivity to have to switch to VB.Net from C# for a few bits of a project. To me it seems as if no real design went into VB.Net in contrast to C# which seems like a lot of thought went into how to do things and how not to do things.

              I really wish MS just let VB die with VB 6, it would have been for the best. The VB 6 fans could have continued with VB 6 until they learned a real programming language and real programming techniques.

              I don't see IronPython being adopted by the non-programmers though.
              I agree. I think Python is a good language and most importantly it is cross-platform. Why would someone want to kill Python by making it MS-Only? As far as getting this IronPython on Mono, I don't see it happening. I use Mono and it is pretty nice. Mono has .Net 1.1 complete and .Net 2.0 is pretty much there now too. I just don't see IronPython ever getting enough development behind it to get a port to Mono, especially with a "shared" source license.

              Even though the MS-PR-machine says .Net is cross-platform, it really is not. MS only released a C# compiler for FreeBSD. The compiler is not a big deal. The thing that makes .Net, just like Java, is the extensive framework. MS made an MS-Only framework. It is only because of the hard work of the Mono team that we can enjoy C#/.Net/ASP.Net/ADO.Net/etc on Linux, Mac OS X, Solaris, OpenBSD, FreeBSD, NetBSD and even MS Windows. Mono is cross-platform, Microsoft .Net is not. When Sun did Java, they put the effort in to make the most important part, the framework, cross-platform. I wish MS did the same.
              [ Parent ]
          • 1 reply beneath your current threshold.
      • Re:Yes, but.... (Score:4, Insightful)

        by hey! (33014) on Wednesday September 06 2006, @08:26PM (#16056697)
        (http://kamthaka.blogspot.com/ | Last Journal: Wednesday March 30 2005, @03:18PM)
        Visual Basic? Easy to learn? I don't believe that these two statements belong in the same sentance. IMHO VB is a terrible tool to learn, as when used to teach programming fundamentals (as is often done with information systems students in business departments), it corrupts the student's understanding so grotesquely that often, they can never recover.

        This kind of comparison, it seems to me, invites comparing apples and oranges.

        The Visual Basic language has certain irregularities and peculiarities, but MOSTLY the issue with it is that it is very primitive. As such, you can certainly learn elementary programming concepts with it without suffering permanent brain damage; you just don't get the benefits of learning to think "in the large" the way you do with a more expressive language.

        However the language is only 1/3 of the three distinct items that make up the whole package: the language, the runtime system and the IDE. A lot of stuff you "do" in VB is actually done by libraries written in C++.

        When most people thinking about "learning" a system like VB have in mind is learning how to accomplish specific tasks. For those tasks that are well supported by the runtime system and the IDE, VB is highly productive. We're talking common business tasks that can be supported by bolting together VB controls and some ActiveXs with a few event handlers. The useful scope of such applications is very wide indeed.

        However, if you're trying to do something that doesn't fall into that range of tasks, the primitive nature of the VB language is a dreadful hobble.

        WRT brain damaging effects of VB, I'd say this: very few people in this world are cut out to be programmers. For some people it's almost natural thing. For others it is a latent talent that can be trained. But most people, regardless of their intelligence, dilligence and personal virtue, could only be trained to the level of mediocrity, at least with the ways we know how to teach. Many would not even reach the level of mediocrity.

        VB's runtime system and IDE can mask that. Sit two people down. The first is a reaonably intelligent person who has been trained in VB, the other is a gifted programmer who has to work with vim, the language of your choice, and a GUI toolkit. Give them a common business data entry problem to solve, and they both end up with something that works in a reasonable time. Task them with creating a program which finds economically optimal air travel itineraries using various data sources and meeting certain user defined criteria, and the first guy is out of his depth.

        [ Parent ]
        • I call myself out (Score:5, Insightful)

          by Ana10g (966013) on Wednesday September 06 2006, @10:15PM (#16057089)
          I'm out.
          My apologies for making a trollish post. I was in a pissy mood earlier, firing from the hip, and should have thought my words more carefully. I completely agree with you, actually, regarding your point to the following:

          very few people in this world are cut out to be programmers. For some people it's almost natural thing. For others it is a latent talent that can be trained. But most people, regardless of their intelligence, dilligence and personal virtue, could only be trained to the level of mediocrity, at least with the ways we know how to teach.
          A lot of people I went to school with couldn't get it. It may have been that the people who didn't get it were the ones that I met in the Information Systems classes (which, where I went to school, was a concentration on a Business Major, where they taught VB as the intro language) were those that were not cut out to be programmers in the first place, thus affecting my perception of languages causing dain bramage.

          Anyway, I still don't like VB, but, at least you made me consider my words and thought processes. Apologies to the community at large for being a dick.
          [ Parent ]
        • Re:Yes, but.... by RAMMS+EIN (Score:3) Thursday September 07 2006, @04:55AM
        • Re:Yes, but.... by DangerAwaits (Score:1) Thursday September 07 2006, @09:08AM
      • 1 reply beneath your current threshold.
    • Re:Yes, but.... by Anonymous Coward (Score:1) Wednesday September 06 2006, @05:41PM
    • Re:Yes, but.... (Score:5, Informative)

      by jupo (717073) <steve@jupo.org> on Wednesday September 06 2006, @06:32PM (#16056204)
      (http://jupo.org/)
      Sure does

      IronPython on Mono howto [google.com]

      [ Parent ]
    • Re:Yes, but.... by sgt scrub (Score:2) Thursday September 07 2006, @12:10PM
    • 1 reply beneath your current threshold.
  • About speed. (Score:5, Informative)

    by Poromenos1 (830658) on Wednesday September 06 2006, @05:41PM (#16055930)
    (http://www.poromenos.org/)
    I found that Python could run extremely well on the CLR in many cases noticeably faster than the C-based implementation.

    Actually, that's not really something to be proud about (though I'm not downplaying the huge achievement of running python on the CLR). The C implementation of Python is not very optimised, and that's why projects like PyPy or psyco are trying to speed Python up (and succeeding very well). I've had CPU-intensive scripts (such as SortSize [poromenos.org]) run tens of times faster with psyco, by just adding a line of code to my script.
  • Link is unreadable! Jeez! (Score:5, Informative)

    by Anonymous Coward on Wednesday September 06 2006, @05:42PM (#16055934)
    [IronPython] [ANN] IronPython 1.0 released today!
    Jim Hugunin Jim.Hugunin at microsoft.com
    Tue Sep 5 13:27:12 PDT 2006

    * Previous message: [IronPython] ipy support in msxsl:script blocks
    * Next message: [IronPython] [ANN] IronPython 1.0 released today!
    * Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]

    I'm extremely happy to announce that we have released IronPython 1.0 today!
    http://www.codeplex.com/IronPython [codeplex.com]

    I started work on IronPython almost 3 years ago. My initial motivation for the project was to understand all of the reports that I read on the web claiming that the Common Language Runtime (CLR) was a terrible platform for Python and other dynamic languages. I was surprised to read these reports because I knew that the JVM was an acceptable platform for these languages. About 9 years ago I'd built an implementation of Python that ran on the JVM originally called JPython and later shortened to Jython. This implementation ran a little slower than the native C-based implementation of Python (CPython), but it was easily fast enough and stable enough for production use - testified to by the large number of Java projects that incorporate Jython today.

    I wanted to understand how Microsoft could have screwed up so badly that the CLR was a worse platform for dynamic languages than the JVM. My plan was to take a couple of weeks to build a prototype implementation of Python on the CLR and then to use that work to write a short pithy article called, "Why the CLR is a terrible platform for dynamic languages". My plans quickly changed as I worked on the prototype, because I found that Python could run extremely well on the CLR - in many cases noticeably faster than the C-based implementation. For the standard pystone benchmark, IronPython on the CLR was about 1.7x faster than the C-based implementation.

    The more time I spent working on IronPython and with the CLR, the more excited I became about its potential to finally deliver on the vision of a single common platform for a broad range of languages. At that same time, I was invited to come out to Microsoft to present IronPython and to talk with members of the CLR team about technical issues that I was running into. I had a great time that day working through these issues with a group of really smart people who all had a deep understanding of virtual machines and language implementation. After much reflection, I decided to join the CLR team at Microsoft where I could work with the platform to make it an even better target for dynamic languages and be able to have interesting technical discussions like that every day.

    The first few months at Microsoft were a challenge as I learned what was involved in working at a large company. However, once the initial hurdle was over I started experiencing the things that motivated me to come here in the first place. The team working on dynamic languages in general and IronPython in particular began to grow and I got to have those great technical discussions again about both how to make IronPython as good as it could be and how to make the CLR an even better platform. We began to take advantage of the great new features for dynamic languages already shipping in .NET 2.0 such as DynamicMethods, blindingly fast delegates and a new generics system that was seamlessly integrated with the existing reflection infrastructure.

    We were also able to release IronPython publicly from Microsoft with a BSD-style license. In the agile spirit of the project, we put out a new release of IronPython once every three weeks (on average) over the course of the project. This helped us connect well with our daring early adopters and receive and incorporate their feedback to make IronPython better. We've had countless excellent discussions on the mailing list on everything from supporting value types to calling over
  • Summary is confusing... (Score:5, Funny)

    by creimer (824291) on Wednesday September 06 2006, @05:45PM (#16055946)
    (http://www.creimer.ws/ | Last Journal: Friday January 26 2007, @12:40PM)
    Is Python being used to fix Microsoft's mistakes? Or did a python got run through the Iron Chef competition? Either way, does it taste like chicken?

    Signed, IronConfused
  • Hmmm (Score:2, Interesting)

    by Anonymous Coward on Wednesday September 06 2006, @05:45PM (#16055947)
    "in many cases noticeably faster than the C-based implementation"

    Funny enough, I haven't yet found one of these cases...
    • Re:Hmmm by ThePub2000 (Score:2) Wednesday September 06 2006, @07:42PM
      • 1 reply beneath your current threshold.
    • Re:Hmmm by ultrabot (Score:2) Thursday September 07 2006, @03:10AM
  • OB Black Sabbath (Score:5, Funny)

    by Anonymous Coward on Wednesday September 06 2006, @05:45PM (#16055949)
    <DistortedVoice>I AM IRON PYTHON<\DistortedVoice>

    Duh, duh, duh duh duh.
    • 1 reply beneath your current threshold.
  • Finally! (Score:1, Insightful)

    by Anonymous Coward on Wednesday September 06 2006, @05:45PM (#16055950)
    I can tie all my critical business programs to a platform that Microsoft controls without regard for anything but its own bottom line! Just think, when Microsoft decides one day that the .NET runtime will be a $500 "extra feature", I'll be the first in line to be forced to buy a thousand copies or watch my entire business go down the drain! Wooot! Shared Source is SO much better than that crappy "Open Sores" stuff. Where would the world be without all this Microsoft Innovation(tm).
    • Re:Finally! by Anonymous Coward (Score:1) Wednesday September 06 2006, @05:56PM
    • Re:Finally! (Score:4, Insightful)

      by squiggleslash (241428) * on Wednesday September 06 2006, @06:29PM (#16056191)
      (Last Journal: Friday November 09, @04:36PM)

      Shared source and open source are not mutually exclusive. According to the only document I can find on the subject, the Wikipedia page (IronPython's webpage sucks) the license is the CPL, an IBM-authored license which is incompatible with the GPL but is nonetheless considered a Free Software license by the FSF, and Open Source by the OSI.

      Despite it's incompatibility with their own GPL, the FSF sounds like they actually rather like it:

      This is a free software license but it is incompatible with the GPL.

      The Common Public License is incompatible with the GPL because it has various specific requirements that are not in the GPL.

      For example, it requires certain patent licenses be given that the GPL does not require. (We don't think those patent license requirements are inherently a bad idea, but nonetheless they are incompatible with the GNU GPL.)

      So I really wouldn't worry about the "shared source" write-up. It's an unusual choice of license, but it is considered Free Software and Open Source, the patent license requirements are actually fairly positive from the point of view of protections from Microsoft itself. Microsoft have chosen the same license in the past when releasing other code they want to be seen as completely open.

      [ Parent ]
      • Re:Finally! by drakaan (Score:3) Wednesday September 06 2006, @07:41PM
        • Re:Finally! by kingdon (Score:2) Wednesday September 06 2006, @10:10PM
      • Re:Finally! by JimDaGeek (Score:2) Wednesday September 06 2006, @09:08PM
        • Re:Finally! by squiggleslash (Score:2) Wednesday September 06 2006, @09:15PM
          • Re:Finally! by Master of Transhuman (Score:2) Thursday September 07 2006, @02:50AM
            • Re:Finally! by cbhacking (Score:1) Thursday September 07 2006, @09:15PM
              • Re:Finally! by Master of Transhuman (Score:2) Friday September 08 2006, @05:34PM
        • Re:Finally! by Dr_Barnowl (Score:2) Thursday September 07 2006, @06:43AM
        • Re:Finally! by shutdown -p now (Score:3) Thursday September 07 2006, @07:01AM
          • Re:Finally! by JimDaGeek (Score:1) Thursday September 07 2006, @03:17PM
            • Re:Finally! by shutdown -p now (Score:2) Friday September 08 2006, @12:13PM
    • Re:Finally! by Javaman59 (Score:1) Thursday September 07 2006, @01:49AM
  • I think I played too much Diablo (Score:1, Offtopic)

    by Hinhule (811436) on Wednesday September 06 2006, @05:46PM (#16055955)
    Suddenly got this mental image of coding Iron Python like playing Diablo Iron Man, one bug and your project is gone forever!
  • Snakes... (Score:4, Funny)

    by Cameron McCormack (690882) on Wednesday September 06 2006, @05:57PM (#16056032)
    (http://mcc.id.au/)
    on a VM!
  • Round peg... (Score:1)

    by Anonymous Coward on Wednesday September 06 2006, @06:05PM (#16056067)
    ...meet square hole.

  • Dealing with UI (Score:4, Interesting)

    by Carcass666 (539381) on Wednesday September 06 2006, @06:12PM (#16056101)

    So, if I'm using Iron Python under .NET, would I use be compelled to use WinForms at that point or would libraries like wxPython still be available?

  • Bad article summary... (Score:3, Informative)

    by ndykman (659315) on Wednesday September 06 2006, @06:13PM (#16056102)
    The snipped out part of the announcement seems to me to leave a bad impression. Given this is /., I can almost hear everybody filling the blanks with "and it's still is slow, because MS sucks" or the like, which is not the opinion or intent of the comment actually quoted.

    If you read the whole comment, you will see that in fact, the CLR implementation does very well, the designer is now at MS working on the CLR, and all in all, IronPython is a decent Python implementation.

    Given this work and the F# compiler work http://research.microsoft.com/fsharp/fsharp.aspx [microsoft.com], I think CLR is done quite well as a language independent platform. Also, given the excellent work of the Mono and Portable .Net groups, I think it is also reasonably portable as well.
  • Hrm (Score:5, Interesting)

    by IamTheRealMike (537420) on Wednesday September 06 2006, @06:18PM (#16056126)
    (http://plan99.net/~mike/)

    Well, the links to the FAQ don't seem to work thanks to some kind of site move (I am asked to download the HTML instead of view it and ... well ... am too lazy tonight). But a few thoughts based on what is already there:

    • It says they are maybe 1.7 times faster than CPython, which is not that great, because CPython is incredibly slow and things like Psyco can give pretty big speedups (say 10 to 100 according to their website).
    • It seems fundamentally impossible to make a language like Python or Ruby fast. By their very nature everything has to be done at the last minute, based on string comparisons, and you can't do global optimizations really because at any moment the program might change itself and invalidate them. Consider the way every object can implement a fallback method that is called if somebody invokes "foo.bar" and bar does not exist in foo. It implies that every single method invocation must be identified by string not a number, and matched by string comparison.
    • If IronPython can't make Python fast .... seems like its only purpose is to give people who like Python and .NET some half way point between the two. But it's not quite Python, because you can't use its standard library, and it's not quite .NET so in a way you seem to get the worst of both worlds

    I guess I just don't get it.

    • Re:Hrm by killjoe (Score:3) Wednesday September 06 2006, @06:25PM
      • Re:Hrm by shutdown -p now (Score:2) Thursday September 07 2006, @06:50AM
        • Re:Hrm by cbhacking (Score:1) Friday September 08 2006, @02:34PM
          • Re:Hrm by shutdown -p now (Score:2) Monday September 11 2006, @12:49AM
    • Re:Hrm by squiggleslash (Score:3) Wednesday September 06 2006, @06:42PM
      • Re:Hrm by WilliamSChips (Score:1) Wednesday September 06 2006, @07:02PM
      • Re:Hrm by CoughDropAddict (Score:2) Thursday September 07 2006, @01:14AM
        • Re:Hrm by masklinn (Score:2) Thursday September 07 2006, @02:33AM
        • Re:Hrm by squiggleslash (Score:2) Thursday September 07 2006, @08:15AM
    • Re:Hrm by kpharmer (Score:3) Wednesday September 06 2006, @07:08PM
      • Re:Hrm by IamTheRealMike (Score:2) Wednesday September 06 2006, @07:21PM
      • Re:Hrm by Vexorian (Score:1) Wednesday September 06 2006, @11:06PM
        • Re:Hrm by kpharmer (Score:2) Thursday September 07 2006, @08:36AM
    • Re:Hrm (Score:4, Informative)

      by amix (226257) on Wednesday September 06 2006, @07:27PM (#16056451)
      (http://soon-to.come/ | Last Journal: Wednesday December 24 2003, @05:47AM)
      But it's not quite Python, because you can't use its standard library

      Yes, you can, though not all builtins are available. All you need is this line in IronPython\Lib\site.py:

      import sys
      sys.path.append(r"E:\python24\lib")


      As for the rest of your comment: You do realize, that there are Python programmers on Windows ? I enjoy happily the ActivePython distribution, with which I can even automate my deskopt/applications. Now, in addition, I have full access to the .NET2 framework and can use IronPython to write cmdlets for PowerShell (aka: Monad).

      I consider this to be one of the best software-relases within the last few months.

      [ Parent ]
      • Re:Hrm by masklinn (Score:2) Thursday September 07 2006, @02:51AM
    • Re:Hrm (Score:5, Informative)

      Consider the way every object can implement a fallback method that is called if somebody invokes "foo.bar" and bar does not exist in foo. It implies that every single method invocation must be identified by string not a number, and matched by string comparison.

      It doesn't imply that at all. Smalltalk implementations figured out how to make that fast decades ago. The initial, most obvious, step is to hash method selectors so the lookups are done with numbers and to create a hashtable (either per-class, or global, with a sparse structure) for looking up method addresses given method selectors. There are a few optimizations that can be applied to make that pretty fast -- on the order of two or three times slower than C++-style vtable lookups. Next, many dynamic language implementations take advantage of the fact that nearly all method invocations are static -- the same line of code always calls the same method on objects of the same class, so there's no real reason to do any lookup at all. Such systems statically or dynamically rewrite the code, turning it into a simple test that the target object is of the "right" type, and then jumping directly to the method. Further, most method invocations can be proven at compile time (or at run-time, whichever is more convenient) to always go to the same target class, so even the object type test can be optimized away. Oh, and if it makes sense they can inline the method as well.

      That's just the little that I've read about, too. This stuff has been heavily researched by very smart people for a very long time now. The net effect is that lots of dynamic language implementations approach C code in performance, on average, and there are situations in which they can produce code that is even faster than a C compiler could, because they can make use of run-time information which is unavailable to any compiler that translates to "static" machine code.

      Python implementations may need work to make them faster, but there's nothing that says the language has to be slow.

      [ Parent ]
      • Re:Hrm by wizzat (Score:1) Thursday September 07 2006, @09:01AM
      • 2 replies beneath your current threshold.
    • Re:Hrm by Vexorian (Score:1) Wednesday September 06 2006, @11:04PM
    • Re:Hrm by jerald_hams (Score:1) Wednesday September 06 2006, @11:57PM
      • Re:Hrm by IamTheRealMike (Score:2) Thursday September 07 2006, @09:18AM
        • 1 reply beneath your current threshold.
    • Re:Hrm (Score:4, Informative)

      by costas (38724) on Thursday September 07 2006, @02:18AM (#16057802)
      (http://malamas.com/)
      The point of Python is not to be blazingly fast. There are other languages (C, C++, pick your poison) if you want speed. The point of Python (and Ruby and even Perl) is to write code faster, especially for code pieces that are supposed to change often or have multiple versions (e.g. customized code for clients). And because Python is so readable/hackable, it's an excellent tool for that particular job.

      And if you want speed, I have two words: Boost.Python [boost.org]. It makes wrapping C++ code into Python near-trivial; I just wish they had some sort of quick-start documentation. I was intimidated by Boost.Python until I sat down to work with it. Sample (cleaned up) fragment from production code:
      class_<Loader, boost::noncopyable>("Loader", no_init)
      .def("name", &Loader::name)
      .def("addTable", &Loader::addTable)
      .def("load", &Loader::load)
      ;
      That little snippet exposes the Loader class to Python. Boost will take care of wrapping the code up into a Python shared library (.pyd), exposing the interface, converting between standard Python types and STL types, even converting C++ exceptions to Python exceptions.

      And if you don't want to go there, you could also use ctypes (part of the std Python distribution) and drive any win32 DLL using Python, unchanged.
      [ Parent ]
    • Fast is not impossible by p3d0 (Score:2) Thursday September 07 2006, @06:23AM
    • Re:Hrm by iznogud (Score:1) Thursday September 07 2006, @06:47AM
    • Re:Hrm by Jimithing DMB (Score:3) Thursday September 07 2006, @07:58AM
    • Re:Hrm by RAMMS+EIN (Score:2) Thursday September 07 2006, @12:32PM
    • Re:Hrm by Estanislao Martínez (Score:1) Thursday September 07 2006, @06:29PM
    • 1 reply beneath your current threshold.
  • This is huge.... (Score:3, Interesting)

    by SumeyDevil (906408) on Wednesday September 06 2006, @06:21PM (#16056142)
    This is huge, as now people have access to ALL the .NET libraries. Ironically, maybe Microsoft could be the company to take Python mainstream. First Google, now Microsoft...who's next? Additionally, anyone ever think how powerful Visual Studio could be if they implemented something like Parrot runtime into .Net?
  • Just call it... (Score:2)

    by SensitiveMale (155605) on Wednesday September 06 2006, @06:22PM (#16056144)
    the "John Holmes" build.
  • Parrot (Score:2, Interesting)

    by Watson Ladd (955755) on Wednesday September 06 2006, @06:24PM (#16056158)
    Yeah, they did screw up. Parrot will beat CLI for speed in dynamic languages by huge magnitudes of speed because it is designed for them. CLI is optimized for static languages. It's a very different idea. Calling conventions, instruction sets, internal types, even stack vs. register. They are very diffent animals.
    • Re:Parrot by Anonymous Coward (Score:1) Wednesday September 06 2006, @06:42PM
      • Re:Parrot by WilliamSChips (Score:1) Wednesday September 06 2006, @07:04PM
        • 1 reply beneath your current threshold.
      • Re:Parrot by Ian Bicking (Score:2) Wednesday September 06 2006, @07:06PM
    • Re:Parrot (Score:4, Informative)

      by gregorio (520049) on Wednesday September 06 2006, @07:10PM (#16056373)
      Yeah, they did screw up. Parrot will beat CLI for speed in dynamic languages by huge magnitudes of speed because it is designed for them. CLI is optimized for static languages.
      1. RTFA. It talks about naive and uninformed (generated by hate) opinions like yours, and says that they are wrong.

      2. The CLR is optimized for static languages, but not innefficient for dynamic ones. In fact, that's all the article is about.

      3. RTFA!
      [ Parent ]
      • 1 reply beneath your current threshold.
    • Re:Parrot by Anonymous Coward (Score:1) Thursday September 07 2006, @12:40AM
      • Re:Parrot by Ian Bicking (Score:2) Thursday September 07 2006, @10:42AM
    • Re:Parrot by imbaczek (Score:1) Thursday September 07 2006, @01:17AM
    • Re:Parrot by shutdown -p now (Score:2) Thursday September 07 2006, @06:53AM
      • Re:Parrot by Watson Ladd (Score:2) Sunday September 10 2006, @06:36AM
    • Re:Parrot by masklinn (Score:2) Thursday September 07 2006, @02:39AM
    • 2 replies beneath your current threshold.
  • Mimsy were the borogoves (Score:5, Insightful)

    by davmoo (63521) on Wednesday September 06 2006, @06:24PM (#16056162)
    Instead of trying to impress us with innuendo and Microsoft bashing, the summary would have been a lot more helpful if it were written a different way. Oh, I don't know...like maybe for instance...TELL US WHAT THE FUCK "IRONPYTHON" IS! But then I guess, after all, that is the Slashdot Way. Why waste time on informative content when you can print Microsoft jabs instead.
  • IronPython screencast (Score:4, Informative)

    by eastbayted (982797) on Wednesday September 06 2006, @06:37PM (#16056221)
    Jon Udell did a screencast of it [infoworld.com] last week, joined by Jim Hugunin (creator of Jython, the Java-based Python).
  • Visual Studio? (Score:3, Interesting)

    by nurb432 (527695) on Wednesday September 06 2006, @06:41PM (#16056241)
    (http://slashdot.org/~nurb432/ | Last Journal: Friday August 27 2004, @03:24PM)
    Does this work within visual studio, like a 'regular' microsoft language?
  • by sweetnjguy29 (880256) on Wednesday September 06 2006, @07:04PM (#16056344)
    (Last Journal: Friday March 24 2006, @12:46PM)
    ...and fast.
  • Typical Slashdot... (Score:4, Informative)

    by His name cannot be s (16831) on Wednesday September 06 2006, @07:06PM (#16056359)
    (Last Journal: Saturday April 16 2005, @12:17PM)
    Nice Inflamitory Summary tho'... Sheesh.

    The whole (and far less baiting) summary:

    I started work on IronPython almost 3 years ago. My initial motivation for the project was to understand all of the reports that I read on the web claiming that the Common Language Runtime (CLR) was a terrible platform for Python and other dynamic languages. I was surprised to read these reports because I knew that the JVM was an acceptable platform for these languages. About 9 years ago I'd built an implementation of Python that ran on the JVM originally called JPython and later shortened to Jython. This implementation ran a little slower than the native C-based implementation of Python (CPython), but it was easily fast enough and stable enough for production use - testified to by the large number of Java projects that incorporate Jython today.

    I wanted to understand how Microsoft could have screwed up so badly that the CLR was a worse platform for dynamic languages than the JVM. My plan was to take a couple of weeks to build a prototype implementation of Python on the CLR and then to use that work to write a short pithy article called, "Why the CLR is a terrible platform for dynamic languages". My plans quickly changed as I worked on the prototype, because I found that Python could run extremely well on the CLR - in many cases noticeably faster than the C-based implementation. For the standard pystone benchmark, IronPython on the CLR was about 1.7x faster than the C-based implementation.

    The more time I spent working on IronPython and with the CLR, the more excited I became about its potential to finally deliver on the vision of a single common platform for a broad range of languages. At that same time, I was invited to come out to Microsoft to present IronPython and to talk with members of the CLR team about technical issues that I was running into. I had a great time that day working through these issues with a group of really smart people who all had a deep understanding of virtual machines and language implementation. After much reflection, I decided to join the CLR team at Microsoft where I could work with the platform to make it an even better target for dynamic languages and be able to have interesting technical discussions like that every day.

    The first few months at Microsoft were a challenge as I learned what was involved in working at a large company. However, once the initial hurdle was over I started experiencing the things that motivated me to come here in the first place. The team working on dynamic languages in general and IronPython in particular began to grow and I got to have those great technical discussions again about both how to make IronPython as good as it could be and how to make the CLR an even better platform. We began to take advantage of the great new features for dynamic languages already shipping in .NET 2.0 such as DynamicMethods, blindingly fast delegates and a new generics system that was seamlessly integrated with the existing reflection infrastructure.

    We were also able to release IronPython publicly from Microsoft with a BSD-style license. In the agile spirit of the project, we put out a new release of IronPython once every three weeks (on average) over the course of the project. This helped us connect well with our daring early adopters and receive and incorporate their feedback to make IronPython better. We've had countless excellent discussions on the mailing list on everything from supporting value types to calling overloaded methods. Without the drive and input of our users, IronPython would be a much weaker project.

    IronPython is about bringing together two worlds. The key value in IronPython is that it is both a true implementation of Python and is seamlessly integrated with the .NET platform. Most features were easy and natural choices where the language and the platform fit together with almost no work. However, there were challenges from the obvious cases like exception type hierarchi
  • cheers to the IP team (Score:4, Informative)

    by quick_dry_3 (112334) <steven AT quickdry DOT net> on Wednesday September 06 2006, @07:07PM (#16056361)
    (http://www.quickdry.net/)
    just wanted to give a "cheers" to the MS dev team working on this.
    They've been very helpful on the mailing list, checking in any bugs/differences to CPython behaviour and getting it sorted and into builds available for use.
  • Obligatory (Score:2, Funny)

    by lord_sarpedon (917201) on Wednesday September 06 2006, @08:21PM (#16056677)
    Enough is enough! I have had it with these !@$&* IronPythons on this !%$~# CLR!
  • I ran it on one of my Python apps and it actually slowed it down by a factor of 1.77. Lots of caveats here, but this is the opposite of what I expected to see.
  • Global interpreter Lock? (Score:2, Insightful)

    by Draco_es (628422) on Thursday September 07 2006, @12:05AM (#16057456)
    IronPython threads can take different CPU's in SMP systems? Does anybody knows?
  • I just submitted an article, Boxing in the LLRing [telebody.net] I wrote about the Lightweight Languages Ring, a gathering of 300 developers at a boxing ring a week ago in Tokyo. For one thing Ruby's inventor is working on Yet Another Ruby VM and also the Python Language Update mentions IronPython.
  • by neonux (1000992) on Thursday September 07 2006, @02:14AM (#16057794)
    IronPython has big shortcomings such as it is unable to blend well with .NET assemblies built with another language.
    Also it doesn't use much of the niceties available through the .NET Framework...

    If you like Python syntax and want to try .NET (on win32 or on linux with Mono), check out the Boo language, the wrist-friendly language for the CLI.
    It is amazing!! => "while using a Python-inspired syntax and a special focus on language and compiler extensibility. Some features of note include type inference, generators, multimethods, optional duck typing, macros, true closures, currying, and first class functions."

    And last but not least, Boo's licence is BSD, not a crappy Shared Source something!!

    Full description: http://en.wikipedia.org/wiki/Boo_programming_langu age [wikipedia.org]

    Official website: http://boo.codehaus.org/ [codehaus.org]

    • 1 reply beneath your current threshold.
  • License a problem (Score:1)

    by k8to (9046) on Thursday September 07 2006, @05:12AM (#16058152)
    (file:///etc/passwd)
    Let us know when the license becomes unencumbered of requirements or legal risk, like normal Python.

    Iron Python is a dangerous beast. Consult your lawyers.
  • I can't really take it seriously until it integrates with Visual Studio.

    Anything .Net is far to much of a pain to program unless its being done in VS.
  • a worse platform (Score:1)

    by FunkyMonkey (79263) on Thursday September 07 2006, @09:55AM (#16059296)
    I wanted to understand how Microsoft could have screwed up so badly that the CLR was a worse platform for dynamic languages than the JVM...

    So... when you decided to implement this language, you used CLR which, by your own accounts, is a worse platform... I dont' get it. You wanted to understand Microsoft's stupidity by building on it? Brilliant.
  • by ovapositor (79434) on Thursday September 07 2006, @11:21AM (#16060011)
    (http://www.melkmugs.com/ | Last Journal: Monday September 04 2006, @08:20AM)
    I spent a considerable amount of time trying to do a real world IVR engine in python with C extensions to the driver library. It was to be multithreaded... not multi process. I COULD NOT get it to work correctly... and yes I know about the "Allow threads" directive for the C calls. I even asked the amazing brain trust at the Pycon in 2003 what could be done. My conclusion was that no one else was trying to do what I was :(

    The Global Interpreter Lock seems to me to be part of the problem. I think the Jython implementation worked with "native" Java threads.... I wonder if IronPython uses native .NET threads?

    I like the promise of rapid application development in python but it needs to be able to take advantage of multiprocessor/threaded CPU architectures to be useful to me. I know you can use the multi process approach but frankly, this is a wart that rubs me the wrong way.

    Thanks for listening :)
    • 1 reply beneath your current threshold.
  • Does the world need more children (Score:4, Insightful)

    by Colin Smith (2679) on Wednesday September 06 2006, @06:00PM (#16056050)
    There are plenty of them round already. Basically you're getting old, the world is moving on and leaving you behind. Welcome to middle age.

     
    [ Parent ]
  • XTremez (Score:1)

    by Ana10g (966013) on Wednesday September 06 2006, @06:02PM (#16056056)
    Well, Yea! Please tell me that the current state of the art is not our crowning achievement in Computer Science. If it is, I quit.
    [ Parent ]
  • Re:Faster than C? (Score:5, Informative)

    by cduffy (652) <charles+slashdotNO@SPAMdyfis.net> on Wednesday September 06 2006, @06:02PM (#16056059)
    Faster than CPython (ya know, the original upstream Python implementation), not faster than C.
    [ Parent ]
  • Re:Sometimes I feel like a Luddite... (Score:4, Informative)

    by Jerf (17166) on Wednesday September 06 2006, @06:05PM (#16056071)
    (Last Journal: Saturday August 18 2001, @11:04AM)
    "Another" programming language? It's just another implementation of Python, which has been around for about as long as Perl.

    Besides, if it gets to the point where Microsoft is officially supporting it, it would be a major addition to the .Net platform. If I could both develop in Python and in .Net I might actually be willing to develop in .Net. What stops me from wanting to develop in .Net or on the Java platform is the god-awful primary languages they are built around. Java makes me want to scream, and C# is only slightly better, all in all.
    [ Parent ]
  • by vinsci (537958) on Wednesday September 06 2006, @06:57PM (#16056322)
    Please mod parent up, insightful. It's not the first time we see Microsoft do this. In fact, it's the only thing they do, all the time. Feeding the monopoly.

    Apparently a troll moderator modded the parent post down to 0, currently.

    [ Parent ]
  • by maop (309499) on Wednesday September 06 2006, @09:03PM (#16056838)
    This is not a new language. It's a new implementation of a language.
    [ Parent ]
  • by SanityInAnarchy (655584) <ninja@slaphack.com> on Wednesday September 06 2006, @09:04PM (#16056841)
    (Last Journal: Tuesday October 30, @10:59AM)
    Of course it was the design. Question is whether it's an evil design. If the MS .NET starts really acting badly, we can always run Mono on Windows -- we do that already anyway.
    [ Parent ]
  • by SanityInAnarchy (655584) <ninja@slaphack.com> on Wednesday September 06 2006, @10:12PM (#16057076)
    (Last Journal: Tuesday October 30, @10:59AM)
    And by the way, Python has been around for awhile, this is just a different, potentially better implementation.
    [ Parent ]
  • by DrVomact (726065) on Thursday September 07 2006, @10:36AM (#16059619)
    (Last Journal: Saturday September 01, @05:03PM)

    Offtopic? I'm wounded. Deeply wounded. Or do people not know what a "Luddite" is? And you never have a Luddite sort of mood? And how can being a Luddite on /. ever be off-topic? Ah well. I guess I'll change my sig to all smiley faces, then people will stop taking me seriously.

    . I guess I should have asked if Iron Python is still indent-sensitive.

    [ Parent ]
  • Re:Faster than C? (Score:3, Funny)

    by KDR_11k (778916) on Thursday September 07 2006, @02:20PM (#16061406)
    Doesn't "faster than c" violate a basic law of physics?
    [ Parent ]
    • 1 reply beneath your current threshold.
  • 10 replies beneath your current threshold.