Apparently Guido's not particularly worried about Parrot. (And Miguel thinks Parrot's based on religion, though that's a second-hand quote) Works for me. Proof'll be in the pudding, or in this case the pie.
Posted by Dan at July 17, 2003 11:27 AM | TrackBack (1)If you're referring to, from the link above:
Miguel doesn't think I have to worry about Dan Sugalski's pie;
it looks to me like you're misattributing the belief to Guido instead of Miguel.
I suspect that Guido doesn't think much about it either way. After all, we've seen several people claim to have better implementations for Python "a year away" several years ago, so it's hard to get too excited. I for one will be happy to use whatever implementation works best.
Guido "complained" that the MS folks weren't implementers. I think that along with some of the more evangelist types there were very strong developers, but none of them seemed to have implemented dynamic languages (as expected). What are your thoughts on .NET as a target for the dynamic/scripting languages?
Nah, I was referring to:
Dan believes that at OSCON 2004, Parrot will be able to execute Python bytecode faster than CPython can. I don't give him a chance.
Guido's complaint about the MS folks was well founded. While the technically inclined folks I talked to were definitely quite competent, they weren't dynamic language people, and it was pretty obvious that they didn't have a handle on the problems that perl, python, and ruby present on a platform like .NET. I'm reasonably sure that at least a few of the people there didn't believe there were problems to be encountered, but that wasn't a universal issue.
Given some of the behaviours that have to be provided, I can only see one of three possible outcomes:
Some of the stuff I know of that's a problem are Ruby's use of continuations, all three language's potential to change or remove functions and methods at runtime, Ruby and Python's dynamic attribute additions, and Ruby and Perl's use of closures. (I think you guys do them too, but from what I've seen they'll be less problematic) Dynamically typed variables would be something of a speed problem as well, and I've some reservations about the speed of a fully .NET-implemented compiler.
I've no doubt I could do a functionally good port of Perl to .NET, as I've no doubt you could do a functionally good port of Python, but supporting some of the base functionality would cripple their speed unless Microsoft really improves their JIT. (This would be a good place to go off on the limitations of a stack-based IL, but I think I'll forbear :) There's just too much bytecode that'll need to be executed at critical times, too much runtime name-binding, and too little compile-time certainty for a system designed to take advantage of compile-time certaintly to run fast.
I could be wildly wrong, of course, and I'm sure if someone wanted to throw wads of money at either of us we could give it a good go, but I don't have high expectations for the result.
Posted by: Dan at July 18, 2003 04:48 PMMore info from Miguel at
http://primates.ximian.com/~miguel/activity-log.php
Highlights (lowlights?)
- Parrot "design decisions are driven by punch lines"
- "Mono and the .NET VM are ideal virtual machines for scripting languages."
I saw that link this morning. I think part of the problem is one of interpretation (and not of bytecode :). Miguel is a very earnest, mostly serious guy. I, on the other hand, am not. That may well be responsible for some of the misinterpretations of what I've said. On the other hand, I'm altogether too flip at times so it may as much be a matter of being misled as anything. I'll admit that, while I find it amusing, I don't much care, really. A more appropriate quote would be "what Dan says in public is often driven by punchlines, because he's a wiseass" and I certainly wouldn't dispute that one.
I am pretty much convinced that Miguel is ignorant of a number of the issues and the ramifications of those issues that the scripting languages present to a system like .NET. VB.NET isn't that good an example of "ooh, look, a dynamic language on .NET!" Basic isn't inherently a dynamic language--I've written a lot of Basic over the years and it's as static as C--and while VB may have had some dynamic features, by all reports they were removed or neutered for VB.NET, which looks much more like the old compiled DEC BASIC I used to use than the VB I've seen.
This would be the point where someone would pipe up with "If you'd try!" or "That can be worked around!" or some such, but... I really don't care that much. I've gone over the reasons before, they haven't changed, and .NET is still inappropriate for reasons that have nothing to do with performance, even if we ignore performance issues and requirement problems.
.NET could probably be thumped to make the performance dynamic languages suck less, by removing some of the (quite reasonable, given their requirements) limitations of .NET, but even if I cared that much, Miguel's not the guy to chat with about it. He's just implementing someone else's design, and isn't in a position to alter that design anyway.
Posted by: Dan at July 28, 2003 11:55 AMBeen meaning to post this for a while but take a look at.
http://weblogs.asp.net/astopford/posts/10476.aspx#FeedBack
Here the comment is that Parrot may run dynamnic languages quicker than the CLR but it will run languages such as C# 10-30 times slower. I think its way too early to be making statements like this but I would be interesting in hearing your thoughts Dan.
Posted by: Andrew Stopford at August 8, 2003 06:35 AMAs I dig into back comments...
I read that bit, Andrew. The more of this I come across, the more convinced I am that it's all smoke and bluster on Miguel's part. While he may or may not be ultimately correct in his comments about Parrot's design, since he's never done anything extensive with any dynamic language that I know of, nor has he ever designed a VM, he's pulling it all out of the air. (So if he turns out to be right, it's luck and happenstance, not prescience)
It may be that Parrot runs C# 10-30 times slower than .NET. I don't think so, but if it does I can live with that, since C# isn't in our target language family, the same way that I'm sure the .NET folks can live with perl running 10-30 times slower on .NET, since we aren't their target.
Posted by: Dan at September 29, 2003 10:16 AM