Let me start by saying I'm exhausted. The conference is going great, but a 12 hour stint talking about languages, technology, Seattle, Microsoft, and BBQ (dinner) has wiped me out. Please excuse my post if it isn't always coherent.
Like yesterday's post, most of this probably isn't of a lot of interest to most LabVIEW programmers, but there was one talk today that I think has mass appeal, so I'll cover that first.
The basic idea is that the internet has so fundamentally changed the barriers to entry, the ability to create and distribute content and to conduct research, that the effects on human society are vast, changing and unpredictible - the singularity term refers to the concept made familiar by black holes - the event horizon, beyond which no information can be gained as even light itself cannot escape.
I can't give the presentation justice, especially with the slides available, so please have a look yourself. If you have any questions, I can try to answer them.
Another very exciting bit from Dr. Flake is from his team at the Microsoft Live Labs - Photosynth. Imagine a technology that can take in several photographs - from different people - of the same location, and generate a 3D, zoomable model! You've got to check it out...very exciting stuff.
Anyway, onto the rest of the day...
The day started with a presentation by Gilad Bracha from Sun on what Java is doing with regards to supporting dynamically typed languages. If you remember from my post yesterday, Jim Hugunin gave the presentation on IronPython. Before working on IronPython and joining Microsoft, Jim was the author of the Jython engine - a version of Python that compiled to the Java VM. So, like .NET, the Java VM is actually a platform that can support multiple languages.
Gilad is the head of the JSR 292 committee investigating how to provide more native support to dynamic languages. Having worked on committees before, I wish Gilad all the luck in the world, and extend my sympathy.
Modeling and Simulation
Unfortunately I was unable to attend this presentation due to another meeting I had, but I did manage to catch up with James Lapalme at the end of the day. Frustrated with the limitations to SystemC - one of the open languages for hardware/software simulation - he has created eSys.NET, which leverages the advanced features of .NET and C#.
I was quite impressed with the amount he's been able to do in a short amount of time, and the way he leveraged .NET features such as attribute based programming, events and reflection to make a system which is far more powerful than SystemC. If you are a SystemC user - you should definitely check his stuff out.
Now known as H#, because the sharp character is the new black, this is a language with an interesting property - it can generate C#, Java or C++ versions of itself. Unfortunately there isn't much available on the web, but you can read more about it here from Markus Lorez's own words.
There are still several serious issues in the generator, such as handling the facts that Java has no support for unsigned integers or that C++ has no garbage collector. I'm not sure the value of the pure native implementations he sites as the reason for the project as the H# language is going to almost always be the intersection of the three languages. But I salute him for the difficult effort.
Well, I finally found out where the name came from. LINQ is the integrated language query framework that is coming in C# 3.0 and VB9 later next year, and BLINQ is a tool that uses the LINQ to SQL framework to generate an ASP.NET site with full CRUD (create, read, update, delete) support for the database you target. So, with the whole "web log" -> "blog", BLINQ is "weB LINQ". Ahh....
The above text gives the basic idea, but in the interest of time, I'll direct you to a video of Polita Paulus, the author, giving the overview.
Shriram Krishnamurthi is definitely a man who believes strongly in what he does *laugh*. I do mean that seriously, although his presentation was quite funny. Apparently there's a long running debate between him and several of the other academics on the topic of continuations, and the barbs flying back and forth were a joy to hear.
The point of the presentation is that coding web sites is unnatural because of the stateless nature of the programming model. Each page must somehow reconstruct the execution context from the previous page - making the code unwieldy and error prone. He gave a frightening demonstration of a bug in Orbitz where you can end up reserving the wrong flight if you use multiple windows to browse the choices.
I wasn't able to talk with him, but it seems to me that the Windows Workflow (WWF) and the current ASP.NET postback feature allows for much of this already...but it is definitely an area that can use more work.
In addition to this work, he also presented on another language his team is working on - flapjax. I just gotta love that name. Anyway, this is an interesting evolution of the event model where the event handlers actually return values and can be incorporated as data sources. I found them to be very similar in concept to the shared variable in LabVIEW. Unfortunately I've been unable to find any information about the project on the web, so I'll have to let it end here for now.
The LINQ effort has been documented several times already, so I'll just go as far as to say that they're looking to provide even more query expressions out of the box than C#, and to provide some better reasoning/error messages.
The XML effort was something I'd love to see in C# - just a very handy feature of working with XML literals directly in the code. For example, you could write this
dim foo = doc.<input>.<channel>.<bar>
to get the element value for a document such as
In addition, bringing back ASP style syntax, you can also embed VB code in the literal, such as
dim foo = <input><%=myVariable%></input>
There is a lot you can do with this once the language supports XML literals - I think I've gotta give the point to VB over C# on this one.
Finally, there was discussion over the topic I covered yesterday from Jim's talk on IronPython - getting more dynamic and interactive features into VB.NET.
Let's just say that this was a very popular presentation based on the crowd that formed at the back of the room. Let's also say that Migel de Icaza is an energetic speaker, and very friendly.
For those that don't know, Mono is an open source implementation of .NET on the Linux (and other non-Windows) platforms.
Most of the presentation was on the current status of the Mono project, which you can read more about on the websites linked above. However, some interesting notes
- Mono was started because Migel and his codevelopers wanted a better development solution on Linux than C++ (I can understand), and he didn't like Java. Apparently we can say that enum support resulted in Mono.
- The anti-MS feeling in certain areas runs so strongly that he received two DEATH THREATS just for implementing a standard published by Microsoft.
- The code name for Mono 1.0 is now T-Bone. Apparently he felt that Mono was missing out after hearing about everyone else's cool codenames, so today he created codenames for Mono, including those that have already shipped *laugh*. fyi, Mono 2.0 is Sirloin.