More about Alcides Fonseca
Go Back

TechEd 2007 Day 2

Written by Alcides Fonseca at 1194425457

IronPython and Dynamic Languages on .NET

After spending more time in getting from the hotel to the event than getting from Lisbon to Barcelona and losing the first session slot, I attended Mahesh Prakriya’s presentation on the Dynamic Languages .NET supports, focusing IronPython (being my language of choice for now!).

He started to introduce Dynamic Languages that have no strict definition, it’s kind of a intuitive thing developers know how to distinguish, but is about types, being interactive, metaprogramming, etc… but is NOT about typed vars as many may think! Well, IronPython is the implementation of the Python language on the .NET framework, but still supporting (almost) all the standard modules. He showed us a bit of its internals and it’s based on “how do I do this?” and learns it, so it has never to research it again. That’s maybe why IronPython is the fastest implementation of Python (even over CPython and Jython)!

The session had a lot of simple demos that showed how the language has a REAL integration with the framework. First he imported MSAgent (That little merlin 3d guy you might know from Microsoft Office) and made him wave, think and move. He also created this form and made it inkable (he was using a tablet) and a minute after it was reading what he had wrote (using Microsoft Speech). All of this in a dozen of lines and on the fly! Makes you rethink about C#, doesn’t it?

What about tools? Well it will be available a SDK for IronPython (no out-of-the-box, sorry…) for both VS2005 and VS2008. It will generate Winforms and WPF (2008 only) code, that is a great advantage! If you want more on this you can check Aaron’s blog. Another thing that is really interesting is debugging that is pretty difficult in standard python (that means you’re only using print statements). VS allows you to use breakpoints, check the stack and variable spaces! It even includes a console for your interactive plays! And guess what I am really missing when working outside VS? Intellisense! Python with everything I love!

Let’s get back to demos! This time guess what? XNA! That’s right, pretty cooler than PyGame in my humble opinion! With some short code, we added asteroids to the default demo in the SDK! Unfortunately, it will only run on Windows and not on Xbox360… Yet! Another demo was using Microsoft Robotics, that with a simples form, controlled the robot via bluetooth and all in IronPython!

In the end, we had the experience of a real developer, Michael Foord, that developed a kind of Excel software with a console and a code area where PowerUsers could develop their own stuff. Was pretty good the example that this kind of language is being really used and not only as some proof of concept or for some kids to play around. Really enjoyed the session in its whole!

Why Software Sucks?

David Platt really knows how to get you focused on his talk. For 45 minutes he talked about what it’s wrong with software development right now! People who build software are pretty different from those who use it and this tend to generate some conflicts. In general, users don’t want this or that feature, don’t want it to use the latest technology, but to just do the job! He showed a kind of examples that software didn’t helped people and may be improved to solve people’s problems.

He gave us some advices: Adding a “virgin” to the design team, based on the idea that “blindness improves your vision”; Breaking the convention, but only when its really needed; Don’t letting edge cases complicate the mainstream; Instrumenting—carefully.

Pretty astonishing presentation and I hope to hear him soon! And maybe read his book with the same title.

Improvements in Visual Studio 2008 and .NET compact Framework 3.5 for Windows Mobile developers.

This presentation was a roadmap over the new stuff Microsoft is launching right now that affects Windows Mobile development! Visual Studio 2008 is coming really soon and .Net compact framework has reached its 3.5 version! 3.5 is about distributed and data aplications! Despite not having real performance improvements, it has far more capabilities! It includes 90% of System.Net and System.Data, LINQ and WCF!

You can have a few LINQ stuff, XML and datasets, but unfortunately no Linq2SQL due to the limitation of RAM in mobile devices! Some stuff that users asked for are included in this version, just like sound APIs, compression and device security and certificate managers. From the tools point of view, it includes unit testing and the 3.0 version of the emulator that can be used together with the Managed CoreCon framework to create different emulator controlled environments! Pretty cool stuff that I liked a lot!

A traditional issue with mobile computing is the wireless connectivity. If you have a GPRS or 3G connection, each time you change your cell to another access point, the connection brokes and a new IP is given. To solve the problem connecting applications with webservices, we now have ActiveSync with a Exchange server over email (using SOAP). In my opinion this is just a work around, not a real solution that I might agree with Vitor Santos that is IPv6. But is that time now?

I found out another cool stuff is that there are already server pages running on mobile that is quite an impressive thing, but not pretty much usable. A cool website to check when I get back home is

Microsoft Student Partner Presentation

As a MSP I had to skip the normal presentations to attend an interesting one with all the MSPs in EMEA that were in the conference. The program managers did their usual talks that I’m not a fan of and then included some testimonials from MVPs and guys who did the internship in Redmond. I really like to learn from them!

In the second half of the session, They invited a panel of (the best) speakers in the events to answer some of our questions. It was pretty cool to listen to them about stuff that matters to us (and also joking aroung!). I got to know that Mahesh thinks that in the near future Dynamic Languages will be more and more used by .NET developers and a language with future may be the one with the best of Python and Ruby together.

After that I’ve talked to David Platt and Rob Miles that I find very inspiring and shared some thoughts with me on the future of technology. I’d like to highlight that Platt believes that Computer Science and Engineering are breaking apart. As engineering not being science, but what technology can do to solve real live problems, it is strongly important to pass that idea to students.

Later we all gone to bowling, a nice way of socializing with other students, program managers and, guess what, some speakers! It was nice to meet students from all around Europe and learn stuff that is going on there. I also had the pleasure to know Jennifer, the responsible for the program all over the world and she is indeed a enthusiastic person that I loved to met! And she listened to my suggestions and thoughts on the presentation! It’s really good to know they care about what you think!