Microsoft releases "Silverlight" to compete Flash

*) That reminds me of countless discussions I had with self-acclaimed C++ gurus year ago (well before .NET was born) when I was doing mostly Java. They told me that Java was poised to fail because C++ performance was superior. Go figure.

Java suceeded because it was platform independent and 100% portable between platforms. It is as simple as that. That is also the reason for Flash's success for Internet video compared to Microsoft's video formats. Neither Silverlight nor .NET are platform independent, nor given Microsoft's monopoly strategy will they ever be, and that is their great weakness.
 
Yeah, the magic "Microsoft will win because they will force install it to all Windows machines" didn't help prevent IE marketshare from falling, didn't allow them to win with MSN, MSN Messenger, PassPort, or Live. Amazingly, most people ignore the preconfigured and preloaded Microsoft internet stuff and still go to Google and Yahoo.

Maybe if Google or Yahoo uses Silverlight, Microsoft will have a snowballs chance in hell of overcoming bog standard AJAX and Flash.
I think you missed my point. It's not about who will win and who will lose. It's about choice and competition. I think SL, Flash and even JFX can peacefully co-exist. One maybe more dominating than the others, but that's fine with me. To me, as a developer, Silverlight has some huge advantages over Flash (like better and more productive development environment, good class library, browser-independent execution engine (1.1), choice of programming language, same environment for server, desktop and web,...) Once penetration is high, the disadvantage will be that it is not completely cross-platform. But for some type of projects (intranets, etc.) that's not an issue and for others it's up to the customer to decide. Personally I know that I will be able to do certain things faster and cheaper with Silverlight than with Flash/Ajax/Html, so it's good to have choice.
 
Java suceeded because it was platform independent and 100% portable between platforms. It is as simple as that.
Nonsense. The reason why Java succeded it that development with Java is more productive, easier and less error-prone than using C/C++. When you use GCC achieving platform indendence is not that hard as many open source projects have proven.
That is also the reason for Flash's success for Internet video compared to Microsoft's video formats. .
Jesus, for the 100th time: FLASH IS NOT A VIDEO FORMAT JUST LIKE JAVA IS NOT A VIDEO FORMAT DESPITE BEING ABLE TO DISPLAY VIDEO. Flash is using Sorenson Spark and On2 VP6. :rolleyes: They could just as well have chosen Windows Media, DivX, Quicktime or any other codec/video format. Is it so hard to look up Flash in Wikipedia?
Neither Silverlight nor .NET are platform independent, nor given Microsoft's monopoly strategy will they ever be, and that is their great weakness.
Why? Because you can only reach 99% of the audience? Big deal.

Edit: BTW, Flash is not so cross-plaform anymore. Only Windows, MacOs and Linux players are up-to-date. Solaris player is still at version 7, HP-UX is not officially supported and still at version 7. So Flash must be doomed, too?
 
Last edited by a moderator:
I was not laughing about the Java2d part more capable as well. I have been doing Java for over seven years (1.0.2-1.4), most of the time as my preferred development environment. Now I use .NET/C# for various reasons. So I have a pretty good grasp what Java2d is capable of and what .NET 2d is capable of and Java2d is simply not "much more capable".

I've been doing Java since 1.0alpha1, and .NET's pre-WPF stuff looks to me tobe pretty anemic compared to what you get with J2D+JAI. What's the pre-WPF equivalent of RenderableImage for example?

As for Flash, I'd done plenty of it, in fact, I developed a compiler to translate W3C XForms to Flash in 2002, to the point that forms as complicated as 1040 tax applications could be translated.

Flash is good enough just like HTML and Javascript is "good enough", and frankly, I think Flash is worse than SVG+SMIL+HTML+JS. Web development is a major PAIN, especially all the headaches Microsoft has caused by refusing to implement standards. Flash fails for me because of the same reason Silverlight does. It is a proprietary single-vendor stack which needs pricely devtools. I am no fan of it, I just think it's there, and I target what my visitors have.

Rich Internet Applications violate many Web principles that have served to scale the web for ages. Good luck getting Google to index content in Silverlight apps (no, I don't think indexing XAML files will cut it), or letting users bookmark page state. I'm sure theyll be a hack for it, but search engine optimization is massively important for many public sites.

Silverlight to me seems to be good for a few niche component apps and intranet stuff, I don't see it being wildly deployed, anymore than Applets.

Also, I think the design of XAML is *terrible*, utterly *terrible*. Beyond ignoring everything learned by W3C groups over the last decade about how to design markup languages (anyone writing XAML by hand is a plan masochist. )

I'm not all that interested in JavaFX, but look at the elegance of declaring an animation in JavaFx with duration variables

Code:
x = [1..100] dur 1000

vs the XAML equivalent!
Code:
 <Rectangle.RenderTransform>
      <RotateTransform x:Name="myTransform" Angle="45" CenterX="25" CenterY="25" />
    </Rectangle.RenderTransform>
    <Rectangle.Triggers>
      <EventTrigger RoutedEvent="Rectangle.Loaded">
        <BeginStoryboard>
          <Storyboard>
            <DoubleAnimation
              Storyboard.TargetName="myTransform"
              Storyboard.TargetProperty="CenterX"
              From="0" To="100" Duration="0:0:10" />
          </Storyboard>
        </BeginStoryboard>

JavaFx syntax is so elegant and easy, that you don't really need a WYSIWYG IDE ($$$)

Nice! Let's see how it develops. Personally I would have preferred a self-contained VM (like Silverlight) to a full-blown JRE, but maybe I'm splitting hairs here.

Sun is paring down a version of the JRE for browser integration called the "Java Kernel" and it will be on-par with the side of the Silverlight binary. For example, the base language VM and bootstrap (e.g. "Hello World") have been reduced to 2.6Mb already.

JavaFx BTW is targeted at mobile devices, sort of Sun's version of OS X CoreAnimation for phones.

*) That reminds me of countless discussions I had with self-acclaimed C++ gurus year ago (well before .NET was born) when I was doing mostly Java. They told me that Java was poised to fail because C++ performance was superior. Go figure.

There was a time when .NET performance was terrible. C# 3.0 has many nice things going for it that make it even better than Java. But, I don't like Microsoft owned technology, and I hate the design of Microsoft class libraries. MS being more of a dictator than Sun opts to change .NET much more rapidly than Java (similar to the speed of how DX evolved vs ARB OGL. DX1-6 sucked terribly, eventually, with DX9, and now DX10, the programming interface is on par, but the design still has some issues compared to OGL's abstraction) Look at the debate over adding generics to Java for JDK5, or the huge debate over Closures and Type Inferencing today.


**) About those benchmarks: David Dagastine is using Hotspot for his benchmarks. That's fine when you want to compare server performance. But there are two problems with this.

Hotspot refers to both the client and server VM. Both are called Hotspot. And in Java7, there won't be a distinction, as they will merge into a hybrid compiler that will select between interpreted, client, and server optimizer depending on runtime profiling and heuristics.

So I think we can conclude that Java performance is not really superior for client application scenarios.

I think you'll find that Java6's client hotspot is still faster on raw code, especially since GC ergonomics means it can automatically tune the GC algorithms by detecting your machine's capabilities, rather than ask a user running an app in his browser to select GC algorithms.

Yes, .NET has improved massively (also .NET CF blows donkeyballs compred to CDC Hotspot)

Silverlight to me means expensive MS IDEs for script kiddies to make flashy, but HTTP/REST-incompatible apps, but by and large, you are not going to see Yahoo, Google, and most major sites replace their interface with it, anymore than people used Flash or Java for say, discussion forums.

It might make some inroads on intranets and Flash-oriented sites, but frankly, I'd prefer an open-source, open standards alternative technology, designed to correctly mesh with Web principles.

BTW, Silverlight Beta crashes big time for me often, even with simple examples I've written, especially on OS X. I actually have a framework that generates AJAX, Flash, or pure server-side apps, and I ported some of it to Silverlight today, and it crashes Silverlight badly inside OS X Firefox 2.0.
 
Nonsense. The reason why Java succeded it that development with Java is more productive, easier and less error-prone than using C/C++

You have to divide Java's "success" into 3 categories: Browser (early success, than failure), Server (J2EE, extremely successful), and Mobile.

Java's portability is more than just execution portability. Sure, I can write ANSI C code that cleanly compiles on Linux, OSX, and Windows, but guess what, it can't do much but stdio!

Java provided a cross-platform framework, literally, a completely portable operating system layer, where no such full-stack equivalent existed before (wxWindows/Qt + ...?)

1. Java is portable

2. for early browser apps (prior to good DHTML in browser), it provided a sandbox for portable browser 'plugins'. As the JRE grew, install times went up, startup times went up, and DHTML and Flash looked more attractive, and both provided portability and sandboxes too. (well, DHTML is "kinda" portable, if you like pain. Thanks Microsoft for ignoring the W3C)

3. on the server, it provides a portable cross-platform container for applications

4. on mobile phones, it provides a portable and secure execution environment

Sure, Java provides a big productivity boost compared to C++, but so did many other languages like Eiffel, Delphi, Smalltalk, etc. Frankly, C#, Java, productivity is vastly inferior to languages like Smalltalk.
 
I've been doing Java since 1.0alpha1, and .NET's pre-WPF stuff looks to me tobe pretty anemic compared to what you get with J2D+JAI. What's the pre-WPF equivalent of RenderableImage for example?
There is no equivalent afaik, but that does not mean you cannot do the same with .NET. I think RenderableImage is not such a good example. But one thing is true, things are sometimes a bit more expressive in Java2D and more hidden with .NET.
Rich Internet Applications violate many Web principles that have served to scale the web for ages. Good luck getting Google to index content in Silverlight apps (no, I don't think indexing XAML files will cut it), or letting users bookmark page state. I'm sure theyll be a hack for it, but search engine optimization is massively important for many public sites.

Silverlight to me seems to be good for a few niche component apps and intranet stuff, I don't see it being wildly deployed, anymore than Applets.
On one hand im with you when it comes to rich internet applications, but on the other hand developments like YouTube made me change my mind a bit. I think we are heading towards rich internet applications and web 2.0 is just the prelude to this. Problems like usability and indexing will be solved in time. (Simple solution to indexing: auto-generated sitemap in standardized xml-format) Overall I think you are to negative on this. The web will evolve and is has to. The current mix of technologies is getting more complicated by the minute and as you have written web development is a major pain. I don't think that SL will take over the web, but SL, Flash, AJAX, etc. will finally pave the way for a new web programming model or common web platform, which will surely be backed by open standards. Until then we will see how SL develops.
Also, I think the design of XAML is *terrible*, utterly *terrible*. Beyond ignoring everything learned by W3C groups over the last decade about how to design markup languages (anyone writing XAML by hand is a plan masochist. )
Agreed.
I'm not all that interested in JavaFX, but look at the elegance of declaring an animation in JavaFx with duration variables

[snip]

JavaFx syntax is so elegant and easy, that you don't really need a WYSIWYG IDE ($$$)
Sure thing JavaFx is more elegant, but I disagree on the WYSIWYG IDE thing. I've seen so many people in my life who could not even produce "Hello World" without an IDE. Apart from that a good IDE usually makes you more productive and allows you to concentrate on what you are doing rather than on the environment. Personally I don't mind paying for my IDE because I make good money with the software I write. I never heard a carpenter, mason or mechanic complain about having to pay for his tools.
Sun is paring down a version of the JRE for browser integration called the "Java Kernel" and it will be on-par with the side of the Silverlight binary. For example, the base language VM and bootstrap (e.g. "Hello World") have been reduced to 2.6Mb already.
That's good to hear.
There was a time when .NET performance was terrible. C# 3.0 has many nice things going for it that make it even better than Java. But, I don't like Microsoft owned technology, and I hate the design of Microsoft class libraries. MS being more of a dictator than Sun opts to change .NET much more rapidly than Java (similar to the speed of how DX evolved vs ARB OGL. DX1-6 sucked terribly, eventually, with DX9, and now DX10, the programming interface is on par, but the design still has some issues compared to OGL's abstraction) Look at the debate over adding generics to Java for JDK5, or the huge debate over Closures and Type Inferencing today.
There was a time when Java performance was terrible as well. Back then (JDK 1.1) the microsoft JIT was faster and the microsoft compiler produced correct code unlike SUN's. ;) Regarding the change of the both platforms, I see it the other way round. My impression is that Java is changing so quickly, developers have a hard time chatching up.
Hotspot refers to both the client and server VM. Both are called Hotspot. And in Java7, there won't be a distinction, as they will merge into a hybrid compiler that will select between interpreted, client, and server optimizer depending on runtime profiling and heuristics.
Yes, I forgot that they are both called Hotspot now, but I guess you still understood what I meant. The Java 7 hybrid compiler surely sounds exciting, but it is still a bit off now, so let's dicuss when it's out and see what microsoft has to offer at that time.
I think you'll find that Java6's client hotspot is still faster on raw code, especially since GC ergonomics means it can automatically tune the GC algorithms by detecting your machine's capabilities, rather than ask a user running an app in his browser to select GC algorithms.
Maybe, maybe not. It's not relevant to SL. However I would certainly like to a some unbiased benchmarks done by some competent neutral party.
Silverlight to me means expensive MS IDEs for script kiddies to make flashy, but HTTP/REST-incompatible apps, but by and large, you are not going to see Yahoo, Google, and most major sites replace their interface with it, anymore than people used Flash or Java for say, discussion forums.

It might make some inroads on intranets and Flash-oriented sites, but frankly, I'd prefer an open-source, open standards alternative technology, designed to correctly mesh with Web principles.
As I wrote, I think the web is going to change with web 2.0 only a taste of things to come. People will demand more interactive, richer, desktop-like applications. Where this will lead, nobody knows. But I think it's too early to dismiss SL as failure.
BTW, Silverlight Beta crashes big time for me often, even with simple examples I've written, especially on OS X. I actually have a framework that generates AJAX, Flash, or pure server-side apps, and I ported some of it to Silverlight today, and it crashes Silverlight badly inside OS X Firefox 2.0.
So? It's a beta version. I'm sure you had some other beta stuff crashing on you before. Let's just wait until final release before jumping to conclusions.
 
You have to divide Java's "success" into 3 categories: Browser (early success, than failure), Server (J2EE, extremely successful), and Mobile.
[snip] Sure, Java provides a big productivity boost compared to C++, but so did many other languages like Eiffel, Delphi, Smalltalk, etc. Frankly, C#, Java, productivity is vastly inferior to languages like Smalltalk.
Applets surely got people interested in Java in the first place. But I think the main reason Java has established its position in the market is the server-side applications. People realized that they could write much more robust, modular and maintainable applications with Java. Cross-platform surely was a reason, too, but not a top-reason, it was always a bit like the cherry on top, if you know what I mean. Mobile came much later when Java was already established IMO.

About productivity: Sure there are other languages that are more productive than Java. But Java is very close to C++, which made it easy for many developers to make the switch and then Java has a good class library, wide availability and good visibility.
 
Last edited by a moderator:
I think you'll find that Java6's client hotspot is still faster on raw code, especially since GC ergonomics means it can automatically tune the GC algorithms by detecting your machine's capabilities, rather than ask a user running an app in his browser to select GC algorithms.
Curiosity got the better of me and had to try it out. So I got SciMark for Java and C# and benchmarked a little. On my laptop (Acer 8215/Vista) Java6 score is still about 50% better with -server compared to -client (impressive!). .NET 2.0 is about the same as Java6 -client. Java 1.5 -server score is a bit better than .NET 2.0/Java6-client and -score is much worse.
 
Except for 3D and multimedia, JavaScript is capable enough. (Although the OOP model sucks ass.) You don't even need something like <canvas> or Java2d. And who cares if your GUI is 1000 times slower in a profiler than something native, if it still looks and feels just as snappy? And stuff like data processing should be done on the server anyway.

I agree with Demo, we don't need yet another proprietary MS format that only works in IE on Windows. We mostly want to get rid of IE (or MS getting their act together and fully supporting DOM2 and CSS2), and something simple and cross-platform to play multimedia / display 3D, that can be controlled from Javascript.

And if you really want to go all-out on the client, you have the choice between making your life easy and using Java, excluding every client that isn't using Windows and IE, or doing things the hard way.
 
Nonsense. The reason why Java succeded it that development with Java is more productive, easier and less error-prone than using C/C++. When you use GCC

Let me get this straight - your idea of platform independence is to have the end user get hold of the source code, port it to the platform he/she is using and recompile it in order to access content. Are you seriously suggesting that end users do this? Well that might actually be possible for Silverlight if Microsoft was to release the source code under GPL and supply a free patent grant to go with it. Are you suggesting Microsoft is going to do this?

Achieving platform indendence is not that hard as many open source projects have proven.

It is slow to achieve platform independence if the format is secret and has to be reveres engineered (Silverlight and Flash), and impossible to do so legally if it is patented at least in countries that allow software patents (Silverlight). While it is possible to reverse engineer formats, usually what happens is that as soon as this is done, the proprietary - incumbent be it Microsoft, Apple, Realmedia, or Adobe creates a new incompatible version to maintain the lock-in. Until we have a true open standard by someone like IETF or MPEG which is fully documented, and unencumbered by patents, it is impossible to prevent this. All we can do in this case is to avoid using vendors that have a platform pushing agenda. That is why Adobe and Realmedia are better than Apple or Microsoft in my mind.

Incidentally Flash is being reverse engineered, and for example OpenOffice can be used to import MSOffice Powerpoint presentations, and export them to Flash swf files, to allowing viewing presentations with any brower with a Flash plug-in. So reverse engineering is happening. However it is a couple of versions behind the current Adobe version.

Jesus, for the 100th time: FLASH IS NOT A VIDEO FORMAT JUST LIKE JAVA IS NOT A VIDEO FORMAT DESPITE BEING ABLE TO DISPLAY VIDEO. Flash is using Sorenson Spark and On2 VP6. :rolleyes: They could just as well have chosen Windows Media, DivX, Quicktime or any other codec/video format. Is it so hard to look up Flash in Wikipedia?

Geez man for the 101th time, I am fully aware that Flash can do more than just video. However as a format for serving up video content on the Internet, Flash is number one by a long way. Just to quote Wikipedia
<quote>
The Flash files, traditionally called "Flash movies" or "Flash games", have a .swf file extension and may be an object of a web page, strictly "played" in a standalone Flash Player, or incorporated into a Projector, a self-executing Flash movie with the .exe extension in Windows. Flash Video files have a .FLV file extension and are utilized from within .swf files.
<unquote>
So there you are - the swf files are traditionally called "Flash movies" and "Flash video files" (.flv files) may be called up from swf files.

Flash is the dominant format for serving video clips on the Internet. It is therefore by definition a video format (although it does a lot of other things as well).


You are joking right? If you want to reach 99% of the audience, you really should go Flash not Silverlight which has 0%, WMV and MPEG which have about 45%, Real player which has less. In other words content providers should avoid Silverlight until it becomes more ubiquitous as installs on end user's browsers as Flash. Flash is ubiquitious because a lot of website's site navigation and menuing rely on it, and the massive content presence of Google/Youtube and others. It is not going to dissapear overnight simply because Microsoft supplies Silverlight with Windows.

Edit: BTW, [URL="http://www.adobe.com/shockwave/download/alternates/#fp"]Flash
is not so cross-plaform anymore. Only Windows, MacOs and Linux players are up-to-date. Solaris player is still at version 7, HP-UX is not officially supported and still at version 7. So Flash must be doomed, too?

Really?
Linux, Mac, Windows ie. all the main desktop OSes covered by the latest (recently released) version of Flash (Flash 9).

Solaris and HP-UX are high end server Oses, and even they are due to get the latest version of Flash soon.
http://labs.adobe.com/downloads/flashplayer9.html Solaris on SPARC Flash 9 prerelease

HP-UX on Itanium - Adobe Flex Data Services 2 (Includes Flex 2 SDK and Flash Player 9)
http://www.adobe.com/products/flex/productinfo/systemreqs/


Your arguments seem to be contrived to push a preconcieved agenda.
 
Back
Top