If you are in a hurry, here are some links with excerpts about the section.
- Introduction – What and Why MIX?
- Conference Grounds – Where was MIX and how did it go down
- DoubleClick – Syndication ready Silverlight
- Have we seen this before? – “Dude, Flash did that years ago.”
- Silverlight Adaptive Streaming – Curious about how the buffering works.
- Silverlight on Mobile – Same problems as Flash Lite has.
- Silverlight for Flash Developers – I do Flash; can I do Silverlight?
- AOL’s Silverlight Email App – Enterprise Silverlight
- Bloggers Mingling – A-list bloggers, and who I met
- Conclusions – What I took away from MIX.
- History Repeating – Some of the .NET crew is doing what the Java crew already did.
- Force Fed Silverlight – Silverlight is an alternative, not a choice.
I was invited to attend the Microsoft MIX 2008 conference. After discussing this years conferences as well as the technology involved with my CTO, he decided we should go together. We headed to Las Vegas, where the conference was held, with the sole goal of evaluating Silverlight for use in our self-service video platform, one of our company’s main products I work on.
Although a lot our focus nowadays is on Flash video, we have a significant amount of money and technology invested in Windows Media. We also do way more Windows Media business, especially in the fun Live events arena. We currently create a lot of custom Flash video players that interface with our back-end video CMS system. Some are simple while others are full blown multimedia applications.
Can we do the same with Silverlight 2?
That was the fundamental question to answer, or have answered, at MIX.
I’d been to the Venetian Hotel in Vegas before for Macromedia’s / Adobe’s MAX 2006. The MIX conference had about 1000 less attendees than MAX 2k6 (2000+), but was no less grand. You could spot the geeks everywhere, and they seemed to outnumber the suits. Registration was simple, our hotel accommodations were great, and the facilities and layout were a lot more informal that I originally expected. I had this expectation of Microsoft being stodgy, formal, and just overall “proper like”. This was smashed when I visited the HQ in Janurary and met Bill Gates in person, but apparently that experience wasn’t enough.
The conference, however, felt a lot like MAX. It definitely was a fun multimedia event with code. My CTO and I made a decent attempt to talk to a variety of conference goers, not just Adobe & Microsoft employee’s. My interest was solely to identify what their background was, why they were at MIX, and what they hoped to get out of it. That, and I like meeting new people, especially people outside of the Adobe sphere who do software for a living.
Identifying a technology’s validity are based halfway on the technology’s merits. The other half comes from identifying the community around the technology, and seeing if the 2 have a future together. Do they mesh? If not, is that a big deal? Is there even an identifiable community? How does it compare to other technology communities that I’m familiar with? What are the pain points, and what are the great matches?
All of these questions I was continually asking myself quietly as I listened to speakers, both official and informal.
The were a couple things that I found interesting about the keynote.
The first was Ari Paparo from DoubleClick. Scott Guthrie, Corporate Vice President in the Developer division at Microsoft, was talking about some of the Ad features in Visual Studio. I had Twittered how irrelevant this stuff is in the media industry. If Silverlight had any chance of making a dent in what Flash is doing, it needed to integrate with a real ad platform, like say,DoubleClick.
Not 5 seconds had I twittered that, Scott Guthrie had a witty introduction to Ari who showed a brief overview of the SDK of using DoubleClick with Silverlight. For those who don’t know, DoubleClick is one of the largest ad platform providers. I think last week in fact, the FCC approved Google‘s acquisition of them. One of many, we utilize DoubleClick at work to allow customers to have relevant video & image ads to show in their video players, allowing them to monetize their content.
Getting an ActionScript 3, heck even an mxmlc (Flex‘s compiler) compatible version from them has been like pulling teeth. While frustrating, what was more frustrating was the lack of ANY Silverlight information a few months ago. Our first project utilizing Silverlight, used primarily as a solution for Mac users since Flip4Mac is noble, but flaky. One of the things that eventually forced our Silverlight player to be removed, replaced by Windows Media, and thus flipping the bird to Mac users was the lack of official DoubleClick support. It’s joke really since both Windows Media and Silverlight take the same ASX play list file (text file with a bunch of URL’s to media basically).
Now, it’s official; they can play ball in the online media & syndication world.
The second thing that really jumped out at me was a lot of the Silverlight content shown that could of been done in Flash, or had already been done years ago. It was extremely frustrating to here the “oohs” and “aaaahs” from the crowd. I’m like, “Have you all actually used the Internet in the past 5 years?”.
You couldn’t deny it, though. There was a subtle vibe. I looked around the crowd and saw muted discussion as each Silverlight application was shown. Whatever negative thoughts I had clearly were not shared by the majority. There was muted discussions amongst co-workers. People sitting next to each other were in quiet, yet excited conversation. Clearly they had ideas about how to utilize the technology and wanted to act on them.
As Ryan Stewart said, “This crowd isn’t just familiar with our technology”. Ryan’s typical & positive Care Bear Stare attitude did nothing to sway my feelings. I call bs ; this has nothing to do with technology familiarity and everything with technology approachability. The Microsoft crowd DID and DOES know about Flash & Flex, at least some. The only reason it was apparently invalid in their eyes is that it didn’t integrate with Visual Studio & .NET easily, and wasn’t presented as a valid business case by Microsoft. That has to be it. There is no way the thousands of competent developers and designers there had no clue these abilities couldn’t be done pre-Silverlight Beta 1 in Flash or Flex.
Everyone thought it was really rad. I yawned. While down-graded on-t3h-fly streams has always been a touted feature of Windows Media, especially over Flash Media Server, I’ve never seen it work… at least at my place of employment. Additionally, if you have enough bandwidth to down-grade streams on the fly from 500k to 100k, you’re clearly running on a network that has issues. You’re best bet in this case is not to spend an inordinate amount of time trying to be clever and preload lower bit-rate streams into the buffer. Instead, just feed them a 100k stream, and call it a day. Disagree? Works for YouTube, so…
Even Flash Player’s double-buffering has left me not impressed on uber-slow speed connections. Besides, the graph they showed was VERY well designed, making me question the validity of every image thenceforth I was shown. Bottom line: I’ll need to play with it on a production environment to really believe it has any value. With most broadband customers, decent double-buffering prevents all problems with On Video & 24/7 video.
There is a company out there that has a comparable solution for Flash, but that’s for another blog entry. This does add ammo that Adaptive Streaming is valid, and thus usable.
It doesn’t really matter if it works, nor if they formed a partnership with Nokia. I’m American, and as such, my country is held in the grip of operators who have walled gardens. Meaning, I get tons Flex & Flash work, but only received 2 Flash Lite job offers in 2007. Flash Lite is not popular here for the same reasons Silverlight won’t be.
Windows Mobile and CE have always been good. I had Flash 6 running well back in 2003 on a Windows Mobile device. Logically, one could assume Silverlight would work just as well. At that point, though, I’d much rather utilize WPF, not Silverlight… unless the content was already created, and you’re merely porting, but that’s never how I’ve seen it work.
Not the exact session name, but close enough. I sat in for half of this; I believe one of blokes from Cynergy Systems was presenting. In the 40 minutes that I caught, he went over the API and how you can code Silverlight without using Blend just like you can code Flash without using the Timeline.
So, instead of guiObject.SetValue(“Canvas.Left”, 30), you instead make a base class do that as a getter / setter, so you can instead go guiObject.x = 30. Lame.
I’m not sure if the new GUI components fix this. While boilerplate access can be fun if you’re an uber-geek, high level abstraction into easy to use components allow you to get stuff done. Just ask Simeon and his adventures in not-using the Flex SDK, instead trying various pure AS3 approaches.
What was nice, though, was that clearly XAML & C# are definitely do-able by traditional Flash devs. You’ll do the same thing that you did learning Flex & AS3: Learning the new tool(s) and learning the new API.
Although the Adobe CS3 installation process is horrible (not Flex), I’m pretty sure the Visual Studio + Blend is worse, especially for the beta bits based on mourning Twits I read. You’ve been warned.
The only true Enterprise application I saw during the keynote was AOL‘s email application. A whopping 10-billion alarm bells went off when I saw it for a few reasons.
First, I’ve had the pleasure of working with & meeting one of AOL’s good acquisitions. They are a smart, talented team who’ve already had proven results. That doesn’t mean that all of AOL is, but it certainly gives me the impression those who are doing the acquisitions know what they are doing. Second, the AJAX version of their email client was really fast and seemed to work great.
You have a perfectly well and good AJAX email client… why in the heck did you make a Silverlight version? I made a note to attend this session to find out. I got my answer at the end during questions. Someone asked did you look at Flash as an option (he should of said Flex, but whatever). They responded with “Microsoft Partnership”. That’s all I needed to know. It was nice to know that they had an existing .NET team that already knew C#… whatever. Programming is programming. C#, AS3… if you can code, you can learn another language and platform.
However, this session overall was enlightening as to what Silverlight developers perceive they need. Aka, all the stuff the Flex SDK already has. Keep in mind, they built this while Silverlight 2 was still in early development, so I don’t think they had any access to the controls.
That’s right, they had build their own component framework. $10 bucks says they spent 6 months just building the component infrastructure they needed to actually build an application.
What they DID go over were high level & low level details of each of the facets of their development. This was the really cool part. They built their own component base classes, and controls. They built their own measurement engine. They built their own skinning engine (read run-time skinning, not just Blend). Basically, anything you’d find in the bowls of UIComponent in the Flex SDK and all of his helper classes, they did some of that on some level. In short, a TON of work just to get started. Very impressive from a developer perspective, very crazy from a “how much R&D money did this team actually get from Microsoft, ZOMG!!!1111”.
Hopefully, other teams won’t have to do that much work assuming the components, both Microsoft’s and all the 3rd party ones I’ve seen advertised, do a lot of this already.
It was pretty annoying to debate quietly with my CTO in the audience. “Dude, they have AbstractClass as a keyword.”
“What, AS3 doesn’t have that?”
“No dude… you just add an Abstract prefix and follow the convention.”
“Dude, Silverlight has threads?”
“What, Flash Player doesn’t have threads?”
“OMG, you don’t NEED threads to produce a nice, working Enterprise application.”
“I can’t believe Flash Player doesn’t have threads.” *grumble* *grumble*
In conclusion, I was very impressed with what the AOL team had done. I was also impressed that Silverlight 2 Beta 1 is already creating this level of application
s. “This level” will have be carefully scrutinized; I did not get a chance to play with the real application to see how it felt compared to Gmail, Gooey, etc. The AOL team also didn’t discuss their battle scars. I love Flex & Flash, but even I have tons of battle scars to talk about.
I managed to tag along on 2 business meetings my CTO had with 2 cool companies. Can’t really say who they were, but can say they are relevant to my business: online video. Totally out of my element, so naturally it was fun to learn how those things go down. One was all formal with the pretense of informality, and the other was just an introduction to get to know each other.
It’s more likely for these things to happen since everyone is more likely to be at the same place at a conference like MIX.
Alex is bright. Regardless of the historical reasons of how he got on the Board, if you ever have some spare positive karma, be sure to throw it his way. Encourage him to keep fighting the good fight, to battle cynicism, and to never give in. He’s clearly qualified. He’s got some good ideas that apparently are shared by others.
Like all standards boards, I felt like some of the non-vendors give a flip for the implementers. For example, Object.prototype was a great idea, but I’ve yet to see a tool that helps you identify who’s mixing what on your prototypes. Who’s fault is that? Those who built tools like Adobe Flash or those who built the language and didn’t give an easy way in the language for tool makers to latch onto? It’s pure speculation; we didn’t get to finish our 3 concurrent conversations so maybe they do communicate each other’s concerns and I’m just not seeing it. I’ve read like 1 blog entry on Colin Moock’s blog with a summary of the action. After talking to Alex, I’m glad that’s all I’ve read, and that people like Alex are in there.
Hang in there, buddy!
I had a good time at MIX and definitely plan on speaking next year. Not sure on what yet, but it doesn’t matter. I’m really appreciative of Microsoft for inviting me. I loathe Vegas, yet really dug the event and how everything was put together. I felt their execution was good, and the topics relevant. There were also a lot of cool & intelligent people there, which is the most important part of conferences for me. Also, thanks to Cynergy Systems (I believe it was them) for the Tao party. Had a lot of fun there.
Blend and Visual Studio still look appealing and valid, but I’m not looking forward to my first Silverlight project mainly because I’ll probably spend yet another 3 days getting up and running again. The install requirements as well as required times are just insane. Flex Builder 3 takes 40 minutes to download on DSL, and 5 minutes to install and configure. The Eclipse plug-in + various JRE’s can definitely take up a lot of your day, but not days plural. In all fairness, it IS still a ton of beta bits working together. Maybe it’ll be decent by launch.
…did I mention I’ll have to do Bootcamp or Parallels since Microsoft doesn’t appear to have any plans for supporting Silverlight development on my Mac, just debugging? My PC at home will be fine since I’ve got tons of alpha and beta bits working (somewhat, *ahem*) on it.
I can see why .NET dudes are so excited about Silverlight. The coding style and language look a lot like regular .NET development. I don’t do .NET, nor do I do server-side development, but I’ve debugged .NET code other people wrote in the past and the learning curve will hopefully be just API and runtime features since it’s C#.
…and that’s the confusing part. What is .NET 3.5 now… 48 megs or so? Let’s just pretend it’s near there. Silverlight 2.0 probably won’t cap 4 megs (unofficial cap based on rumor from one WPF project manager I talked to). What of .NET is missing based on those 44 megs NOT being in the Silverlight plug-in? What of XAML isn’t supported? What of C#’s features aren’t supported? VB, JPython, JRuby ? Those are questions I need to answer to see how well their execution of making it easy for existing .NET developers to transition.
The most important thing for me that I took away from MIX was that I’ve seen this before. Flash Developers had an awesome multimedia platform to build upon for years. Java guys came, and then left. A few masochists stuck around really helping the community, and growth of the platform, out a lot.
Years later, Flex came out, and changed everything. Java devs came in droves. Then came PHP guys, Python, you name it. Flex allowed traditional developers to succeed where they apparently could not before using Flash or various other open source alternatives like FAME, Flash Develop, or FDT, etc. After learning to code for years, I physically cannot go back to Flash to do large scale development. Therefore, I totally understand why traditional developers couldn’t fathom how to do large scale scale projects in Flash.
I’m seeing the same signs in the .NET world. It’s been 2 years+ on the new runtime in Flash Player 9. Building applications in Flex, both Enterprise as well as widgets, are now proven to work well. Aka, we have a great runtime and a great set of tools. I worked with a .NET team 5 years ago to do the front-end in Flash & HTML, and the back-end in .NET. The work flow was good enough. I know a lot of .NET guys who use Flex for the front end.
Yet the impression I got from the conference was that this side of .NET is unknown by a lot of people. Either that, or just that client side development in something other than server-side generated HTML/JS/CSS was, and is, possible.
I’m seeing the same signs. These traditional server-side .NET devs ask, “So, how do you handle session data?” …and then the cliche response we’ve read soo many times in the Flash & Flex world, “We’re a stateful client. There are no pages. This is an application.” “How do you store local data?” “So the middle tier no longer handles the rendering of the GUI?” etc., etc., etc. Some get frustrated. Most get excited, see the light, and start asking both themselves and their cohorts a multitude of questions how much better things could be.
2 years later, Flex is the poster child for Java developers. In 2010, will we be seeing signs of Silverlight being the standard for .NETerz?
Every word above this sentence is invalid until they get their plug-in installation correct. A lot of the Silverlight installs that were 1.0, and people upgraded to 1.1, is where the trouble started. Some of the plug-in detection code got confused, asking you to upgrade even though you were. Some of those affected blogged conflicting reports, causing confusion of what the real problem was.
This is exactly the opposite of what you want to happen. This is also one of the main reasons Macromedia Director‘s “Shockwave” Internet plug-in failed. I’d create something, upload it to my website, and my mom couldn’t view it because of plug-in installation issues. That’s a serious problem.
Flash didn’t have this problem. It just worked. For years. Silverlight the plug-in INCLUDING THE DEFAULT DETECTION CODE needs to just work. For years. If not, it’s doomed. “Doomed” not meaning in never being a viable solution, but rather, Microsoft will have to spend major PR money to compensate for the negative perception that plug-in installations gone awry will cause.
What does this mean for Flex & Flash devs? If you’re a Flex dev… not much. We need to wait for someone to intelligently blog their experiences with not just the controls offered by Microsoft, but by the multitude of 3rd party developers.
If you’re a Flash dev in the agency world, you need to pay attention. Yes, please temper this with the fact that, even though it’s a week+ past, I was still at a Microsoft conference bombarded by marketing hoopla. Regardless, media work will come your way where a client will want Silverlight. This can either be because of a partnership, because the company already has a plethora of Windows Media content that cannot be cost-effectively converted to Flash, or because like most clients, they don’t care about the technology choice and therefore the decision was already made long before the requirements hit your PM’s desk.
I would HIGHLY suggest you get training in Blend in a official capacity if you’re job can fund it. If you’re bored, add Visual Studio to the mix as well. This will save a lot of frustration and a lot of time. Blend and Flash aren’t a lot a like when it comes to animation and work flow. Blend is NOT alien, however. You can learn it. I’ve seen a traditional designer use it (caveat, at Microsoft HQ) and was impressed at how fluidly he made things.
If you’re a Flash dev as a contractor, you can wait a few more months. I’ve gotten 1 Silverlight job and one WPF designer job in 2008. This compared to at least 1 Flex or Flash job a day, every day. Once Silverlight 2 gets out of beta, it may behoove you to at least be capable of compiling a simple app… say, drawing a circle to the screen in XAML and then making it clickable . Sounds simple enough, but you’d be surprised how much time that effort really can take. And as you know, time is money in the 1099 world. Hopefully it’ll take less time by launch to get up and running.
If you’re a Flash designer, you’ve actually got it pretty good. Blend and Design are not just for Silverlight development, but also for WPF development, aka rich desktop application development. This means that if you become familiar with the tools, you’ll suddenly have a lot of traditional .NET shops looking for “designers”. Not all, but more than are now. A lot of the .NET shops will be just as fine with 2 shades of gray as some of the small software shops using Flex. All that has to happen is to have upper management see a demo, recognize that their team is already “capable” of using their existing skills, and demand Silverlight. Someone who’s had experience, and has the budget, will request a proper designer / consultant be hired. The work flow between Design and Blend wasn’t that great for me, though. Probably because I’m a n00b. PNG FTW!
4 years ago, I choose to experiment in Flex, and eventually make it my full-time career. This was a choice I made. There were no job offers for Flex. Enterprises were still experimenting in Flex projects. Flashdevs loathed the Enterprise price tag and having the compiler be on the server. I didn’t care… I loved it! 4 years later, Flex is still rocking strong, and has a bright future.
Silverlight? The marketing machine at Microsoft is awesome. You don’t have a choice to learn Silverlight or not. You can choose not too, but companies WILL be utilizing the technology, some requesting it specifically. For the later, you can either cater to that, and take their money. …Or not, and find some effective way to sell them on Flex / Flash. In a sense, we’re being force fed Silverlight. Assuming things go well for Microsoft, I’m not “choosing” to be a Silverlight developer. Rather, I’m merely reacting to market conditions. Flex was easy… it was love at first sight. Silverlight? It looks fun if I actually had people to pay me do it, but Flex is more fun.
Either way, you can relax. Flash Player is still king, and there is still a lot more money to made for a long time.