Carl Franklin

.NET Wonk

PDC Keynote was an eye-opener

OK, this is what I'm talking about...

WinFS is much more than a “new file system based on Yukon“, which sort-of makes you think of a search tool for finding files on the disk. You need to forget about the treeview metaphor for a minute in order to get how good this is. First of all, all files have metadata associated with them in the form of XML schema. There are standard schemas built-in and you can extend the OS with your own. Documents, People, etc...  OK? Files have built-in relationships!

Here's a statement made by Lenn Pryor that hit home. How long does it take you to search for a file on your machine? Now how long would it take to google that file on the Internet?  Why do we have desktop icon clutter? We organize shortcuts to make them more accessible. We are instincively providing ourselves with a “human indexing service” that far outperforms the built-in indexing service based on 10-year old technology.

There was a demonstration in which a list of over 1000 files of various types (documents, notes, videos, images) were shown in a thumbnail view. By the time the presenter had typed in a filter string of “longhorn” the list had shrunk to 30 or so. You can then show a group of documents in “pile view” based on certain criteria in which each criteria shows a number of documents that match, and the “pile” of documents is higher or lower depending on the number of hits.  In short, take everything you do with SQL and apply that to the base file system, and expose the functionality in a .NET framework extention... I haven't even started talking about Avalon, the new UI API due to ship in a beta version next year.

In Longhorn there is a single schema for a person. Outlook, IM, Quickbooks, whatever app is written for longhorn will know about the people that you have relationships with. One of the coolest demos I saw was one Amazon.com did, in which they showed an app that used the web services layer to access data at amazon.com. They showed a calendar view of new releases (when certain books, movies, and CDs are coming out), and with a single button click, the guy overlaid his personal calendar onto the amazon.com new release calendar.  With the graphics stuff in Avalon, the personal dates just “faded in” to the amazon calendar.

The Avalon API is vector-based, meaning instead of working with pixels you work with angles and points. Not a new idea, but this has incredible ramifications for solving screen/printer resolution problems, and transmitting screens from one PC to another in real-time. Yes, Don Box did a demo of that with wireless lan right onstage.

The new “framework” of managed code specific to LH is called WinFX. So, you won't write a .NET application, you'll write a WinFX application. I for one am glad that Microsoft came up with a better moniker than “A Windows Forms application written against the Microsoft .NET Framework”

The C# compiler comes standard on Longhorn. That's just a tidbit I think is very cool. Don said he could go over to his mother's house, open up a console window, fire up emacs, and write and compile an app right before her eyes. She would then tell him not to use so many angle-brackets and clean up his whitespace.

By the way, there are several new security features you'll hear a lot about soon, including the ability to deem an area of the heap “non-executable“ for data only, and hardware support for key management.

They've also introduced a new declarative CLR language called XAML. XAML is an XML-based markup language that lets you write User Interface code like this (I'm doing this from memory):

<Button ID=“Button1“>Press Me</Button>

It sort of looks like HTML but it's for writing native LH apps. These applications have the same strechy characteristics as web apps. That is, they scale and move around as you resize.

Don and Chris Anderson (sp?) did a demo where they wrote a windows app in emacs that had a movie for a background (which , by the way uses the GPU on the graphics card, removing intensive video processing from the CPU). They wrote the UI in XAML, wrote the code (event handling, etc) in C#, and even wrote a Longhorn service in VB.NET whidbey that made a UI piece for the Longhorn toolbar called a Tile (I believe) that hooked a web service.  In a previous demo this same app posted an entry to Don's blog, which you can see for yourself is still there. They did this live onstage.

The new web-service layer in Longhorn is called Indigo, and won't be feature complete for a long time.  However, as Jim stressed, everything we saw was real. The bits they handed out do NOT have the new UI and some other things, and performance is bad, but they wanted to give everyone an early start learning about what MS is doing.

So, to answer the OSS naysayers who think this is all hype, you just go right on thinking it's hype, and someday you'll be asking me if I want fries with that.

Comments

Sparky said:

Oh man! You discovered the use of grep together with some pipes! Very 78-unix style. Ooh: it has shiny buttons! Well, thats what we get for 25 years of progress!
# October 27, 2003 8:13 PM

Peter da Silva said:

Let's see. Most OSS scripting in whatever language uses a toolkit called "tk", which is inherently stretchy and provides a native interface on any OS. For example, I tossed together an program to provide a window view of a text file. I've been working on it using native X11 and native Aqua, and the same code runs on both. If you look at the page my name links to you'll see the evolution of the app as I added stuff to it. The first Mac OS X view was with the X11 code, untweaked. The second one, at the top, is what I got after adding a handful of tweaks to it.

I haven't tried it on Windows, but it shouldn't have any problem running from a BAT file, maybe as "wish vdb.tk -- args" because Windows doesn't have a built-in script launcher at the exec level.

How long would it take me to search my home directory? Thanks to the harvest search engine, which is also one of these web search engines you're talking about, not long at all. That's old technology.

Give me open systems and get out of my way.
# October 27, 2003 9:43 PM

Peter da Silva said:

PS: Sparky... look, shiny buttons you can put in your pipelines!
# October 27, 2003 9:48 PM

Sparky said:

Yes, shiny buttons in my scripts - it's called pyQT when I program them. Helpfully, they also work on windows / mac / bsd / aix etc.... which is more than we can say for .NET!
# October 28, 2003 8:35 AM

Maxim V. Karpov said:

Carl,
I enjoy reading your post.
Now, If you truly want to understand where some of the Longhorn innovation come from you should read Gordon Bell research papers on idea of archiving information digitally searched for "CyberAll: A Personal Store for Everything" with goolge and you will find the paper. The idea for Longhorn comes from this completely! I can not wait to see from Microsoft did with CyberAll project!
# October 28, 2003 9:17 AM

Carl Franklin said:

Attention all Linux believers: Looks like the CEO of Red Hat is telling people to use Windows!!!

http://zdnet.com.com/2100-1104_2-5101690.html

Oh, and by the way, Red Hat no longer gives away Linux. They sell it.

*ahem* Yes, I'd like fries with that, if you don't mind.
# November 4, 2003 11:32 PM

Mark Kenyon said:

Carl, thanks for the good sum-up on PDC for those of us that couldn't go.

As for Linux vs. Windows... can't we all just get along.

I am developing on a shoe string budget. So why do I develop with MS rather than Linux based solutions? Because that's what we have. And because when I wanted to start writing interactive web pages I had a flood of ASP documentation that I could understand online that I could just read. I had friendly coders who didn't call me stupid cause I didn't already know what a Pipe is. (Which I still don't.)

Now I am writing Windows/Web Services/Apps integrating with Databases and all sorts of stuff. I have not taken one course that I or my company has had to pay for. That's what I call open source.

Let's put it this way. What good is a Mac that is simple for people to use that programmers can't develop for? Microsoft focused on making it easy for developers to create apps that would make people want to use their OS. Yes, maybe now they are making their interface easier, and that could have started earlier. But history shows that if you make apps for it, they will come. What app do I have to have that only runs on Linux?
# November 6, 2003 9:13 AM

Carl Franklin said:

Preach on!
# November 6, 2003 12:03 PM

Mark Miller said:

Hi Carl (and all you happy people :) ). One of the reasons I was impressed with what I could see of the new technological developments at the PDC (didn't go) was I knew that Microsoft would be bringing this technology into the mainstream. The part about including some compilers as "standard equipment" on the OS is totally awesome! I remember when programming languages used to come standard on personal computers. It's one big reason I learned to program at all when I was young. I wonder if we'll see a return of the "type-in" magazines of yore once Longhorn comes out. That would be neat.

As to some of the earlier comments, I've known about tools like Tk and "Wish" (I think it was called), both of which were designed to make GUI apps easy to create (primarily on Unix), since 11 years ago when I was in college. You know what? In the real world not that many places use them. The one place I've heard where such tools like these, and Ruby, are used are in government IT departments. I personally have not worked on a single IT project in my career that used these tools, and it's not because I worked on Microsoft-only projects. Far from it. Some years back I used to work on Unix almost exclusively. I used to beg and plead with my project leader to allow me to add some X11 UIs to the server tools we developed and deployed to customer sites, especially since we were doing data maintenance for most of our clients. The answer was always no, because the customers believed that X11 was too much of a security risk. None of the customers had a problem with us deploying Windows clients though.

Despite similar tools and frameworks being developed earlier, I believe that Microsoft will achieve with these technologies what they have always done in the past: introduce them to the broad public and make them understandable so that millions and millions of people actually use it and obtain its benefits, rather than it being forever the purview of a relatively small group or community.
# November 14, 2003 2:16 AM
Leave a Comment

(required) 

(required) 

(optional)

(required)