Do you feel pressured to dream big? Do you feel like you ought to be able to come with some amazing new inventions, but when you try, you can’t think of anything? Dream big dreams they tell you, like that is how it happens. Like it is that simple. And then you feel inadequate as nothing comes to your mind. No earth shattering  ideas. You just can’t come up with anything that will turn world upside down.

I’ve been struggling with this since I’ve been 10 years old. It is complete and utter nonsense I tell you. Problem is that we ready historic accounts of great inventors and they are written as if those great ideas just popped into their heads. Newton got hit by apple and he came up with theory of gravity. How do you compete with that? Or Archimedes taking a bath and then idea pops in his head on how to calculate density based on volume of water displaced. That’s pure genius! No wonder we feel inadequate.

Except it did not happen that way except in history books. It is is subject of debate whether Newton even observed an apple fall. He was not struck by one either. And even if he was, the stories like this discount 20 years of work that took him to explain gravity.

And Archimedes story completely discounts significant time he spent trying to find ways to calculate density of an object. He might have figured it out when stepped into the bath tub when he tried to relieve stress of not being able to find the solution, but only thanks to all the work he has done up to that point.

Its like when you are putting puzzle together. Is there anything special about last piece you put into the 1000 piece puzzle? The only significance is that it finishes the puzzle, but that is only because you put 999 pieces in correct order before it. Any piece of the  puzzle could have been last, but last one is not supremely significant.

So it is with ideas and inventions. They just don’t pop into your head from nowhere. They are result of hard work and curiosity. You see some problem while you are trying to do something and you get curious. You start exploring, learning whether anyone else solved it before, how they did it etc. Then all your knowledge gets digested and it is in this phase, that you may come up with your idea to attack the problem. Sometimes this insight takes very long time. Most of the time it takes lot of work. But, there is no great insight without hard work!

The best way to get new ideas is to immerse yourself completely into the subject matter, learn, explore, understand. Then step back and do unrelated activity so your subconscious can process what you learned. It is usually during these quiet times that ideas pop into your head. But they will not pop unless you put in the hard work required.

 

It all started with statement Bob Muglia, Microsoft president in charge of server and tools business. This was part of the statement:

Silverlight is our development platform for Windows Phone. Silverlight also has some “sweet spots” in media and line-of-business applications.

But when it comes to touting Silverlight as Microsoft’s vehicle for delivering a cross-platform runtime, “our strategy has shifted.”

Silverlight will continue to be a cross-platform solution, working on a variety of operating system/browser platforms, going forward, but HTML is the only true cross platform solution for everything, including (Apple’s) iOS platform.

Lot of people took this as declaration of death for Silverlight. Well, at least for being used to build web applications.

Also, on PDC 2010 the WPF received paltry 35 minutes presentation which spent only 10 minutes on new WPF functionality.

Then earlier this week Evernote which has huge user base switched whole app from WPF to C++. Here is what they said:

…there were some problems we simply couldn’t fix: the blurry fonts, slow startup times, large memory footprint, and poor support for certain graphics cards were all issues that the technology behind 3.5 (Windows .net and WPF) was incapable of resolving. As a result, we ended up chasing down platform bugs rather than adding the great features our users wanted. So we decided to start over from scratch, with fast, native C++ that we knew we could rely on. As you’ll see, the results are amazing. This new version will set a foundation for rapid improvement.

It is for sure, radical departure. I think they could have used WinForms at least and have best of all worlds, but I suspect they experienced lot of pain…

So is Silverlight dead?

If you step back and look at the Microsoft latest message shift, now saying that Silverlight’s primary focus is as a platform for Windows Phone 7 what does that actually mean? Would they say this if Silverlight was widely adopted or at least adopted in line with their expectations and used in web applications? (Keep in mind that they know the best how much Silverlight is actually used.) I don’t think they would change Silverlight message at all if that were the case. Which means that while Silverlight is very nice it simply did not get adopted  for web applications in large numbers that were expected. But that does not mean it is dead, it is probably more important than ever. But important for something other than it was envisioned for. Important for Windows Phone 7, the latest battleground.

However, if you have ever developed web app with JavaScript and HTML you know how painful that is. Silverlight does make things much easier, much more productive so why the heck it is not used more? Its platform that it could be easier to develop for and I’ll cover that later. Read on.

Is WPF dead?

Short answer is, it is not, unless they are cooking new technology we don’t know about. And my money is on that they have nothing so it will be here for couple of years at least which is as much as you can say about any technology…

But WPF is used in VS.NET 2010, I hear you say, that’s good, right? They give it and they can take it away… Things change.

I can tell you that WinForms will be around as long as Windows OS itself works with HWND which it will be for pretty much very long time…

There are and were some badly needed improvements to WPF that took 5 years to implement. For example when 4 years ago I complained about blurry fonts in WPF I’ve been told that they don’t see it. Fonts are fine… I guess they were not fine when they started actually using them so they finally fixed them in WPF 4 and now they started to look acceptable.

It also did not help that they were busy developing ton of new controls for Silverlight and WPF thinking that will spur adoption, but alas it did not help and in my opinion it took focus away from the actual platform. But why not?

Good house is built on good foundation

Developer division in MS is about providing killer platforms so ecosystem can grow around them. They just can’t do it all themselves and they don’t need to.

Instead of making WPF, as platform, super usable with best font rendering, best debugging capabilities XAML and code, best XAML visual editors, best startup speeds, they spend years on other things that are built on top of the platform.

In essence they were trying to build second floor for the house with unfinished foundation… It does not work that way.

When WinForms came out it was clearly better technology than Visual Basic 6. You could do more and you had all tooling support in VS.NET you needed. Debugging worked, visual designer worked. You had all what you liked in VB 6 and more. No wonder we all jumped on it like crazy. It was clearly better.

When WPF came out it was not really better than WinForms. Yes, it had more powerful graphics stack, you can do neat animations, but font rendering was horrendous, it was slow to start-up, it required yet another steep learning curve and VS.NET tooling was crude. So moving to it from WinForms unless you really needed those powerful graphics, and most business apps do not, was step backwards. So most people kept on using WinForms. And they still do! We sell 5 times more WinForms controls than WPF and Silverlight combined. Market voted!

Way forward

I beleive this can be turned around by getting back to basics. And that is the platform! Make platform the best platform for developing client apps and let your ecosystem do its work. Here is what to do:

  • Speed up start-up times. If WPF or Sivlerlight out-of-browser app does not start at least with same speed, if not faster, than WinForms then your platform work is not done!
  • Even better font rendering. You look at text rendered by WPF and text in Windows 7. See any difference? Your platform work is not done!
  • XAML and code debugging. If there is a bug in XAML and debugger does not break on exact line in XAML which is a problem and it tells you what the problem is, your platform work is not done! If I need voodoo to debug Binding is Silverlight and WPF your platform work is not done!
  • XAML User Interface Editor. If you have dedicated XAML code editor window in VS.NET visible by default your platform work is not done! If I need XAML code editor at all, your platform work is not done!

If this platform strategy was in place 4 years ago every single item on this list could have been covered. Do you think we would be talking about death of WPF or Silverlight today?

It is still not too late to get to platform basics. But it has to happen fast!

For DevComponents I can say that while most of our competitors stopped developing new stuff for WinForms we increased our investment there. WinForms will be around as long as HWND is around and that is for mighty long time. We hedge on Silverlight and WPF too with continued investment to make best controls we can make. There is nobody that provides better controls and more value for both Silverlight and WPF than us. I just wish we all could be more certain about both.

What do you think? What tech are you going to choose?

 

I am happy to announce that we have new version of DotNetBar for Silverlight 2.0 RC released today and it includes all new Office 2010 style Ribbon Control. 100% native Silverlight. We have also created completely new Live-Demo which shows off all controls. Make sure to try it out. DotNetBar for Silverlight now includes Ribbon, Schedule/Calendar, Navigation Pane and Clock controls.

Here is screen-shot of Ribbon built-in styles and one style with generated color theme:

There is lot of functionality in this release:

  • Popup menus with menu-items and horizontal menu commands
  • Office style Galleries with popup gallery support
  • Automatic Ribbon sizing
  • Collapsed, minimized Ribbon
  • Super-Tooltips that you can re-use anywhere in your app
  • MVVM fully supported with samples provided
  • Much, much more…

Fully functional trial version is also available. Click-here to download.

We are working hard on adding following features to Ribbon to drive that control to completion so you can expect these in coming weeks:

  • Quick Access Toolbar support
  • Application menu with Backstage support

Here is mini web-site. Please let me know what you need and how you like these new controls.

Tagged with:
 

Looking for something?

Use the form below to search the site:

Still not finding what you're looking for? Drop a comment on a post or contact us so we can take care of it!

Visit our friends!

A few highly recommended friends...

© 2009 Denis Basaric: DevComponents Blog