- Check out the crowd for a the Washington Capitals developmental camp scrimmage last week (My parents are in their somewhere). Standing room only in the practice facility to watch a bunch of kids, most of whom won’t ever make it to the NHL, in July. If you think Washington can’t be a hockey town, you are sorely mistaken.
- Speaking of the Caps, they are establishing a “spirit squad“? Is that really necessary? (short answer: no). Peerless’ take is hilarious.
- Seshadri Vijayaraghavan is a tester on the DLR team and he’s been writing quite a bit about the DLR hosting API. He’s got a series of posts about hosting, invoking and redirecting output from IronPython in a C# application.
- I haven’t seen an official announcement, but mobile access to Live Mesh is available by pointing your phone browser to http://m.mesh.com. It’s mostly a web view of the Live Desktop, though there is a feature to upload photos from your phone. However, for some reason that feature doesn’t work for me right now. I don’t get the “browse” button.
- ASP.NET MVC Preview 4 is available for download. Phil Haack has a few details that ScottGu didn’t cover. Scott Hanselman shows off some AJAX stuff.
- Speaking of Scott Hanselman, he highlights the return of Terrarium from Bil Simser. Scott mentions that most Terrarium animal implementations were big collections of nested if statements. I wonder if F# pattern matching would be a cleaner approach?
- Ted Neward obviously never “even tangentially” touched politics, as I think they have far worse flame wars far more often than we have in the software industry. However, certainly the Scala flame war he’s commenting on seems fairly counterproductive.
- Brad Wilson runs into a wall trying to convert a string to an arbitrary Nullable<T>.He doesn’t find an answer, but I found reading thru the steps he took to try and find an answer strangely compelling.
- Jeff Atwood argues that Maybe Normalization isn’t Normal. It’s mostly a collection of information from other places, including a compilation of high-scale database case studies. But it’s a useful collection of info and links, with a little common-sense thrown in for good measure.
- I have a hard time imagining Pat Helland camping.
Morning Coffee 169
IronPython Post 2.0 Roadmap
Michael Foord (aka voidspace) twittered that “None of the IronPython team can get it together to blog regularly, except @jschementi of course.” While I’m not sure Jimmy is all that prolific either, Michael’s certainly right about me. I started this job at the beginning of April, and I’ve only blogged twenty one times in the three and a half months since. Worse, I’ve only blogged six times in the past month and a half – and half of those have been since Michael called out my lack o’ posting. My wife has blogged like twenty five times in that same time period. I can only plead pressures of a new job plus a two week vacation. I have been twittering a lot.
Michael was twittering in response to Todd Ogasawara’s post wondering about our Python 3.0 plans. Since we haven’t been particularly transparent (my fault) I thought I’d lay out our near and middle term plans.
First off, we’re on the verge of releasing 1.1.2 (the release candidate is available now), a service release in our 1.x branch which contains a bunch of bug fixes we’ve back ported from our 2.0 work. This is our last planned release in the 1.x branch. For those who don’t know, our 1.x branch tracks CPython’s 2.4 branch.
Most of our team’s focus has been on 2.0 which we’re on track to shipping later this year. Our 2.0 corresponds to CPython’s 2.5 branch. It’s a major release for us because of the addition of the Dynamic Language Runtime. Currently, you can get 2.0 Beta 3, with Beta 4 scheduled for early August (we go about 6 weeks between beta releases). If you want even fresher code than our latest release, you can pull and build the source yourself. We went about two months without pushing source due to some broken scripts, but they’re fixed now so we’re going to try and push out code much more often than we have in the past.
For the non-Python geeks in the audience, Python is undergoing a major change. Python 3.0 is going to break backwards compatibility with Python 2.x in number of ways. Breaking backwards compatibility always has to be handled carefully, so the Python community is investing quite a bit of effort to make the transition as smooth as possible.The Python Software Foundation is currently working on both 2.6 and 3.0 simultaneously. The idea is to have as much feature parity between the two releases (except for the stuff being removed from 3.0) and to provide an automatic tool to translating to the new version.
Let me be very clear (since as Todd discovered, we haven’t been to date) that once we get IronPython 2.0 out the door, we will start working towards IronPython 3.0, which will be our version of Python 3.0. We want to take the same stepping-stone approach that CPython is taking. So that means at a minimum we’ll do an IPy 2.1 with CPython 2.6′s new language and library features, (along with the usual bug fixing and other quality improvements we do every cycle) before then proceeding to work on IPy 3.0.
Until we get IPy 2.0 out the door, I’m not willing to talk about specific timelines. We’re an agile project and we’re going to be feature and quality driven, full stop. There were about seven months between the release of IPy 1.0 and 1.1, however that didn’t include much new Python feature work so it’s not a good comparison IMO. My gut tells me the IPy 2.1 release will take longer than a typical minor release while the IPy 3.0 release won’t take as long as a typical major release. Note, those are guesses, not commitments.
Besides IPy 2.1 and 3.0, the other major thing we’re working on is Visual Studio integration for IronPython. Yes, there is IronPythonStudio, but that’s a VS SDK sample not a production-quality VS integration the IPy team maintains or supports. The IntelliSense implementation is pretty flaky, the compile-oriented project system feels pretty un-pythonic and of course we need to upgrade it to support IPy 2.0 and the DLR (it would be nice if IronRuby could leverage our efforts down the road). Like everything else we do in this group, we’ll be publishing the VS Integration source code up on CodePlex as early and often as we can.
So to recap our current thinking:
- IPy 1.1.2 in RC now, shipping in several weeks assuming we don’t find any major regressions
- IPy 2.0 in beta now, shipping later this year
- IPy 2.1 supporting new CPy 2.6 features at some point after IPy 2.1, probably longer than a typical minor release
- First release of IPy integration with VS in the same timeframe as IPy 2.1 but with alpha drops as soon as we can
- IPy 3.0 supporting new CPy 3.0 after IPy 2.1, probably shorter than a typical major release
One last thing, as many of you know the IronRuby project supports community contributions to the standard libraries. I wanted the IPy community to know I’m 100% committed for establishing a similar arrangement for IronPython. I’ve got nothing to announce yet, but rest assured I’ve been spending a lot of time talking to lawyers.
As always, if you’ve got opinions to share please feel free to leave me comments below, shoot me an email, or join the IPy mailing list.
IronPython 1.1.2 RC
It’s a little late, but we just pushed out the RC for IronPython 1.1.2. This is a minor release with a bunch of bug fixes we’ve backported from our 2.0 work.
However, there are two minor breaking changes I wanted to highlight:
- Work Item #16348 – We’ve changed the nt.unlink method so that it raises an exception if the file doesn’t exist. This brings nt.unlink in line with CPython’s behavior, but does change the public behavior of the method.
- Work Item #16735 – We’ve changed the return type of IronPython.Runtime.Operations.Ops.Id() from long to object. We return a boxed 32-bit integer for Ops.Id(), unless you’ve allocated over 2^32 objects in which case we roll over to our arbitrary precision IronMath.BigInteger type. Note, this only would affect statically typed languages compiled against the IronPython assembly. It wouldn’t affect python code in any way.
We think these are fairly minor (hence the reason we green-lit them) and furthermore these changes mirrors the eventual behavior of 2.0. Please let me know if either of the changes is a problem for you or your project.
Morning Coffee 168 – E3 Edition
Yesterday, was Microsoft’s big reveal for Xbox 360 this coming holiday season. If you’re not a gamer, please move along, nothing to see here. Also note, I work @ Microsoft, but not in the games division so this is only my thoughts on yesterday’s announcements.
- While several “hard-core” games were showcased – Fallout 3, Resident Evil 5, Fable 2, Gears of War 2 and the surprise announcement that Final Fantasy XIII – the rest of yesterday’s briefing screamed “we’re not just for hard core gamers!” Call it the Wii effect. Even the title of the main E3 Press Release was Gameplay for Every Passion.
- Honestly, my favorite announcement from yesterday wasn’t game related at all – it was the announcement of Netflix on Xbox 360. I’ve been hoping for a flat rate subscription plan since Video Marketplace first launched. Soon, I’ll have it.
- I’m not sure what I think of the New Xbox Experience yet. On the one hand, the whole cartoon avatar thing isn’t really my bag. Plus, isn’t it quite the Mii clone? However, the ability to share photo and video viewing experiences – even with cartoony avatars – and the flashy + engaging navigation mechanism looks like a real improvement. Here’s hoping they improve the performance of navigating hard drive content (games library, gamer pictures, etc).
- Congrats to my friend Matt who’s been very involved in the development of the new Primetime game show channel. I’m not that interested in “1 vs 100″, but I think the potential of that game model is pretty huge. If they created a Jeopardy game for Primetime, I think my parents would by a 360 right away.
- Music / party games seem to have been the primary focus of the press briefing. I’m definitely getting Rock Band 2 (AC/DC woot!) and I think my wife would like Lips (she usually sings when we play Rock Band). I want to see how the “wireless interactive microphones: Featuring stylish interactive motion sensors and lights” will work. Guitar Hero World Tour looks cool too, but I’m not re-buying all new music hardware.
- You’re in the Movies looks like a hoot, plus it doesn’t really look like a game, so much as a “party activity”. For example, while there are minigame winners or losers, “winning” takes a back seat to the final movie result. I’m guessing this will be big with the kids.
- Speaking of kids, Patrick is really looking forward to Banjo-Kazooie Nuts & Bolts. He loves anything related to building, and building fantastic vehicles is a core part of the gameplay. As for Riley, I think she’s getting old enough to enjoy Viva Pinata – she enjoys watching Patrick and I play – though I’m not sure we need the new Viva Pinata.
- Geometry Wars 2 and Portal: Still Alive, both coming to Xbox Live Arcade. ’nuff said.
- Not really “new” news, but XNA Community Games launches this fall. I’ve got a creators club membership, so I’m able to experiment with this now – it rocks, though the available games are pretty shall I say “unpolished” at this point.
- Halo Wars not coming until 2009. 😦
- No new Bungie news, but their website is counting down to something tomorrow. I guess we’ll find out then.
Morning Coffee 167
- If you’re a gamer, you’re probably already well aware that E3 is this week. The Too Human demo has already been released. I have a friend who’s been working on “something” that will be announced today (I think).
- Live Mesh folks pushed out an update Friday. Among the new features is the ability to sync folders among peers but NOT up to the cloud. This is cool because it means I can sync my many many GB of pictures and music on my home machine backed up with Carbonite. This means I can sync them without blowing thru my 5GB Mesh storage limit.
- It looks like there’s a new F# drop –
1.9.4.19
–
but as usual there is no announcement or details as to what’s new. Release notes guys, look into it.Update: Don Syme blogged the release, and it’s pretty minor. a .NET FX 3.5 SP1 bug fix, a fix for Mono, and they removed WebRequest.GetResponseAsync to make F# work on Silverlight. And the release notes are in the readme. My bad. - Speaking of F#, it was “partially inspired” by OCaml, so when I see papers related to OCaml, I immediately wonder if I an apply the described techniques to F#. “Catch me if you can, Towards type-safe, hierarchical, lightweight, polymorphic and efficient error management in OCaml” is one such paper. (via LtU)
- Speaking of functional programming, Matthew Podwysocki posted a bunch of FP links as well as a Code Gallery Sample on FP in C#. Good stuff.
- As per Scott Guthrie, it looks like there’s a new ASP.NET MVC drop coming this week.
- Based on posts by Ted Neward, Dare Obasanjo and Steve Vinoski, Google Protocol Buffers sounds like it’s going to be a dud. Note, I haven’t looked at it depth personally, I’m just passing on opinions of some folks I read and trust.
- Speaking of Dare, both he and James Hamilton take a look at Cassandra and come away impressed. I wonder how easy it is to code against from Python and/or .NET?
- Bart de Smet has a cool sample of calling out to PowerShell from IronRuby via the backtick command. Pretty cool, but it would even cooler to show how to call out to PS and return .NET objects to Ruby (though that would probably not be spec compliant for the backtick command).
- Here’s a MS code name I had never heard before – Zermatt. It’s “a framework for implementing claims-based identity in your applications.” (via Steve Gilham)