What is difference between JavaFX and Silverlight - silverlight

I like to know difference between Silverlight and JavaFX. Anybody help me.

Take a look here:
Some differences among JavaFX, Flex, Silverlight/WPF
Differences between JavaFX, Silverlight and Flash
RIAs comparison - part 2 - simple programs

As much as between Java and .NET. Purpose is more less the same - to replace Adobe Flash and provide better environment than ActionScript. At this stage both technologies are relatively unpopular among consumers (compared to flash).

NON-TECHNICAL
One difference I should add to the discussion is money for adoption. Microsoft is really making a serious bet on RIA apps and Silverlight, very serious and to that extent they are committed financially to the platform beyond development costs but also in willingness to fund initiatives to drive adoption. Things like the Olympics web site, NFL Sunday Night Football and others are showcases for Silverlight and the massive costs of development and operations on those sites are subsidized by Redmond as a means to build the communal acceptance of SL as a viable RIA platform.

Related

JavaFX2 and Oracle's plans about mobile operating systems

I'm writting diploma work about JavaFX 2.0, and I need some information about further growth of this technology. I thought it will be super-multi-platform, but after googling I little disappointed: there are a lot of problems with iOS and android, also in the roadmap of JavaFX there are information only about desktop OSs... So, can developers expect some progress of technology in mobile direction? Will JavaFX be desktop-oriented or wide-universal technology? Or, maybe, it will be some special branch "Mobile JavaFX2"? If JavaFX don't support mobile phones development, Oracle will haven't modern and competitive technology for this huge area of developing?... I really need some answers! Thanks!)
If you asked the same question three years ago i would say that javafx has a bright future. Same thing for Silverlight and Adobe Air or flex.
Today i would say just a single word... HTML5
Java will always try to find a seat on the client side... Adobe sucks because they abandoned their flex developers few months ago and who says that it will not happen again with Air?... Microsoft still tries to convince us that silverlight is a good tech while on the other side they promote ASP.NET with ajax capabilities as their main weapon.
See how fast the browsers are struggling to comply with HTML5 (future!!!) standards and you will agree with me that the above technologies were born obsolete.
there are a lot of problems with iOS and android
There are no problems but one - iOS and Android are not supported in the current (JavaFX 2.1) version.
can developers expect some progress of technology in mobile direction?
Not until it is in the public roadmap (which it is not today).
Answering your other questions would just be speculation on the part of anybody who does not know Oracle's private plans. If you are interested in speculation, you can find some here.
This is probably not a direct answer to your question, but i hope it might point you in an alternative direction
Adobe air is architectually very simalar to java. It also runs on a vm on multiple platforms such as windows, osx, and ... Android and IOS. And it's gui's are sexy ... Real eye candy. For mobile there are some considerations, but currently it is the best cross platform language for gui building in my opinion. Not for server side though. But it integrates like a dream with a java server by means of blazeDS or LCDS.
I know that apple has restrictions as set out by their terms and conditions that you are not allowed to run your app in a virtual machine. So adobe had to compile the entire air app as a native application that basically includes the entire air framework. My guess is that oracle is facing similar issues, and that is probably why it is taking some time to roll out
Having fxml with the power of the java language, definately something worth while waiting for and looking forward to it.
HTML 5 has no future.. this tool has lot of problems of it's own..HTML 5 can't be used to develop enterprise applications, it is very difficult to code,debug and maintain which is very important for any long term projects on other hand JAVAFX 2 is on the rite track of creating GUI with use of object oriented concepts which makes java developers to easily code,debug and maintain without any hustle..

Is there a path of least resistance that a newcomer to graphics-technology-adoption can take at this point in the .NET graphics world?

For the past 5 months or so, I've spent time learning C# using Andrew Troelsen's book and getting familiar with stuff in the .NET 4 stack... bits of ADO.NET, EF4 and a pinch of WCF to taste.
I'm really interested in graphics development (not for games though), which is why I chose to go the .NET route when I decided choose from either Java or .NET to learn... since I heard about WPF and saw some sexy screenshots and all. I'm even almost done with the 4 WPF chapters in Troelsen's book.
Now, all of a sudden I saw some post on a forum about how "WPF was dead" in the face of something called Silverlight. I searched more and saw all the confusion going on at present... even stuff like "Silverlight is dead too!" wrt HTML5.
From what I gather, we are in a delicate period of time that will eventually decide which technology will stabilize, right?
Even so, as someone new moving into UI & graphics development via .NET, I wish I could get some guidance from people more experienced people. Maybe I'm reading too much? Maybe I have missed some pieces of information? Maybe a path exists that minimizes tears of blood?
In any case, here is a sample vomiting of my thoughts on which I'd appreciate some clarification or assurance or spanking:
My present interest lies in desktop development. But on graduating from college, I wish to market myself as a .NET developer. The industry seems to be drooling for web stuff. Can Silverlight do both equally well? (I see on searches that SL works "out of browser").
I have two fair-sized hobby projects planned that will have hawt UIs with lots of drag n drop, sliding animations etc. These are intended to be desktop apps that will use reflection, database stuff using EF4, networking over LAN, reading-writing of files... does this affect which graphics technology can be used?
At some later point, if I become interested in doing a bit of 3D stuff in .NET, will that affect which technologies can be used?
Or what if I look up to the heavens, stick out my middle finger, and do something crazy like go learn HTML5 even though my knowledge of it can be encapsulated in 2 sentences?
Sorry I seem confused so much, I just want to know if there's a path of least resistance that a newcomer to graphics-technology-adoption can take at this point in the graphics world.
I understand your confusion (having been there myself), but first let me start by saying Silverlight and WPF are not dead yet! And you would not be wasting your time in learning either!
There are quite a few (terrifying) posts to the contrary, but if you keep searching you'll also find those that support WPF/Silverlights extended life in development, one for example is http://www.wpfblogger.com/post/Silverlight-is-not-dead-clarifies-Bob-Muglia.aspx (this is a nice summary of what Bob Muglia said - there's a link to his full statement). Another assurance is that Microsoft has invested quite a bit in WPF themselves in designing VS2010 in it, so its not likely that they're about to give it the boot.
As for your hobbies and projects, if you intend on sticking to desktop clients I recommend WPF of which Silverlight is a subset, so you'll find that the transition isn't anything major on the face of it (there's a few more controls and such in WPF that aren't in silverlight and gives more flexibility for desky stuff [here's an article you can read if interested - http://briannoyes.net/2010/06/01/WPFNdashIrsquomNotDeadYet.aspx ]), this should be able to handle most of your stuff including playing with 3D objects (to create them I'd use something like Blender 3D, its free but the learning curve for a first timer is kinda steep).
Lastly, it probably wouldn't be a bad thing to learn HTML5, but booting out Silverlight to do it probably isn't the way you want to go. There's bound to be ways in which Silverlight will enrich the browsing experience even with pages using HTML5 in the future, so don't kick it all out yet :)
My present interest lies in desktop development. But on graduating from college, I wish to market myself as a .NET developer. The industry seems to be drooling for web stuff. Can Silverlight do both equally well? (I see on searches that SL works "out of browser").
The industry likes the web because deployment is easy and you usually don't have to support users running different versions of your application. Still, are reasons to choose WPF over SL (performance, things not yet implemented in SL). I'd say stick with learning XAML + C#. You'll be able to leverage it for WPF, Silverlight, and Windows Phone programming.
I have two fair-sized hobby projects planned that will have hawt UIs with lots of drag n drop, sliding animations etc. These are intended to be desktop apps that will use reflection, database stuff using EF4, networking over LAN, reading-writing of files... does this affect which graphics technology can be used?
Either way, database access should be done through services (not directly from a WPF app). There will be differences, but they should be mostly similar.
At some laaaater point, if I become interested in doing a bit of 3D stuff in .NET, will that affect which technologies can be used?
Silverlight 5 will have 3D support. Beta should be announced by this year's MIX conference and released by the end of the year. In the meantime, you can check out the WPF 3D API.
Or what if I look up to the heavens, stick out my middle finger, and do something crazy like go learn HTML5 even though my knowledge of it can be encapsulated in 2 sentences?
While SL is nothing like web programming, I think there is an expectation in the market that SL programmers should have a little ASP.NET (Web Forms or MVC) experience too. (Because, hey, you should know how to work with the environment its hosted in.) I think HTML5 is still a ways off since HTML5 applications will require users to have the latest browsers which are just coming out. Still, couldn't hurt to know it :-)
Fear not, WPF and Silverlight is going to be strong in Line of Business applications, there are some serious security features added even in SL5 and it ties in nicely with all the existing Microsoft infrastructure most corporations have.
It's a similar thing to all the bloggers crying the end of Flash after seeing some planned HTML5 features (and yet not even the codec for the video tag is settled), but upgradeable runtimes to support any browser (IE6 corporate market share is still sky high...) and the really nice Microsoft developer stack (VS + Blend) makes these technologies more resilient than people only using cutting edge technology would think.
Having used Flash for years before Silverlight I can tell you that developing custom UI with SL is a really pleasant experience, so if you're less into multimedia and games (which are areas where Flash still has edge), this is the place to be for you.
And there's Windows Phone 7, with the Nokia strategic partnership I doubt no one would want to get anything developed.
These being said, if you have the chance don't be afraid to venture off to learn some completely different programming languages, for me personally learning Ruby on Rails changed the way I look at backend development, and some of these eye opener ways of doing things more efficiently transfer nicely between environments.
WPF and Silverlight are definitely alive and well. Also, don't let people fool you into thinking it has a "steep learning curve" (which is a common myth.) WPF isn't a walk in the park, granted, but it is also not the hardest thing to learn.
I recommend the book "WPF 4 Unleashed" by Adam Nathan.
http://www.amazon.com/WPF-4-Unleashed-Adam-Nathan/dp/0672331195
It will teach you everything you need to get started with WPF (and Siverlight, which is WPF-based.)
Yes, silverlight can do desktop and web environment equally well, and is your best bet right now. As for 3D designs, you might want to learn XNA. Its quite easy to use.

Is it worth it to learn Silverlight and develop applications using it?

I'm mainly asking this to professionals who know the playing field of professional developing. Is it worth it to learn and develop skills in Silverlight?
I know that penetration for Silverlight is obviously low in comparison to Flash but Silverlight seems lighter and a more cutting edge technology.
What are some of the benefits Silverlight has over Flash?
Is there a lot of work for Silverlight developers (of course combining them with ASP.net)?
Thank you very much for all the responses. :)
Edit: I program mainly in C# so there will be an obvious plus side to using it.
Also, how reliable are these results: BubbleMark
It's a huge topic and you can read articles all day on Flash-vs-Silverlight-vs-AJAX.
I use Silverlight and was completely over the moon when it was released due to the ability to employ the CLR in browser based applications. Javascript/DHTML development drives me nuts and for me Silverlight was my way to escape its clutches. As far as Flash goes my very brief foray into it found ActionScript to be more painful than Javascript but that was years ago and things have undoubtedly improved since then.
Basically if you're using .Net for your back end then it makes perfect sense to use Silverlight for the front end. It means you only have one development environment and language to deal with and where appropriate you can reuse a lot of your back end code on the client.
In practice it's not quite that easy and my experience has been that there is a lot of resistance in user land towards Silverlight. The main bone of contention is generally that the cross browser and operating system support is not good enough. Users that employ Opera or use Linux or PowerPC Macs can't use Silverlight (Moonlight isn't there yet). Those users are generally vocal ones.
If you know all your users will be on IE/Firefox on Windows/Mac Intels or you have a compelling application that users will change their set ups for then Silverlight is almost certainly your best option. If you have an application that you want to hit a wide range or disparate users you may need to weigh up the options a bit more.
The fact that Microsoft has thrown their weight behind Silverlight as the Web Application Framework of choice gives it a pretty decent chance of becoming widely used (though certainly no guarantee).
To position yourself in the most versatile way, though, you might want to consider first learning about the capabilities and limitations of both systems and then learning how to implement with both.
There will probably be many projects done with Flash, and many done with Silverlight. If you can program to either, you will be in a good position. If you are able to provide skillful assistance in deciding which one is best for a given project, you will be in a great position.
I tried it and did not like it. I didn't like the split development environment, xaml, or the limited install base and platforms it runs on. The IDE and platform itself still has a ways to go before I would consider it for use in a production environment.

Silverlight vs Adobe Air

Now with Silverlight 3 (offline, out of browser stuff), what are the main differences between the two technologies?
There are some significant differences right now in the Beta, no idea if these will still be differences in the release version.
There is no way to hide the window chrome in Silverlight OOB.
No ability to create a notification tray icon.
Air apps can be multi-window, Silverlight OOB cannot.
Air apps have more access to the system, Silverlight apps are sandboxed.
There are differences in the install and update procedures, not sure of al of the details.
AIR gives you access to the file system and a SQLite db. SL3 only lets you write to the file system with user interaction (a Save As dialog) and doesn't have any support for a DB in Isolated storage or on disk.
SLOOB runs in a sandbox still, so you're limited to the same cross-domain issues as a Silverlight app running in the browser.
It's a three way war: Adobe AIR, MS Silverlight and Mozilla Prism.
Read this blog-post and this article. A quote from the second article:
Silverlight is the clear winner in terms of power, but as one of my colleagues pointed out the other day does it matter? His point was that Flash has an incredible penetration rate. According to Adobe it’s in the 99% range. When considering rolling out a new product that requires a plug-in why introduce another barrier to adoption?
and another one from the second:
We then asked of those who answered yes which formats they use. Unsurprisingly, given how long it has been available, Flash leads with 61% of respondents. More surprising was Silverlight’s very small market share of a little over 2%, essentially the same as that of the Real format. Quicktime did surprisingly well, at just under 20%.
As for VOIP support in SL read this.
Read up on Prism here.
In addition to what Dave said, Silverlight seems to be missing device support (microphone and web cam).
One thing I'd like to point out, that nobody else has mentioned is (and I'm not picking favorites when I say this, as we use Air/Flex for a project at my job):
Adobe doesn't have the talent needed to create quality run times and IDEs for developers. Their ideas are fine, it's the execution of those ideas that I doubt. I think we can all agree that Visual Studio is light years ahead of any IDE out there. Quality wise I'd even go as far as to say that VS2005 is better made than anything on the market (it's now 2011) 6yrs later.
If you feel Flex/Air meets your needs better, my all means, go with it. But if feel either platform will give you what you want, I'd say Silverlight wins every time. It's more mature, it's substantially more stable.
Our biggest headache for our commercial app is that Air does not managed garbage collection well, for the past year and a half, our app has suffered from slowdown, the only resolution is to do a nightly reboot on a kiosk because we nest objects inside objects, once you hit the 3rd nesting, it seems Air cannot flush those objects correctly, Adobe is will aware of it, and considering how much time has passed and all the newer versions, Adobe has no resolution. That is the sign of poor run times and Adobe developers who just aren't very good. Despite the fact people love to bash MS, these days their platforms are pretty reliable is reliable overall, especially their .NET runtimes. Adobe feels like Microsoft circa 1997, they're years away from offering reliable solutions.
PS: I'm sure a couple koolaid drinking Adobe devs will be down voting this answer.
Assuming only minor changes are necessary to run a Silverlight app on the desktop, the differences are in implementation details. Silverlight is a .NET-space framework based on WPF. Flash/Flex/AIR are proprietary Adobe products based on ActionScript.
In terms of capability, they seem to be roughly equal with complementary strenghts and weaknesses. Example: SL3 will have GPU and pixel shader support. The latest Flash as Inverse Kinematics. Different strokes, etc.
From the users standpoint I like the Silverlight installation process a lot more... Specially on the Mac - Air app installation is unnatural (to many clicks and processbars) but oneclick Silverlight install is nice :)

Silverlight performance

We are considering switching from Adobe Flex to Silverlight because Flex is just too slow.
I'm interested not in graphical performance, but computational performance and the speed at which it executes code.
Does anyone have any anecdotes to share about their experience of Silverlight performance?
Unlike Flex, Silverlight is multi-threaded. Which if used properly gives you the ability to write highly performant apps. There are many articles and blog posts on this. Here's a sample...
http://www.silverlighthack.com/post/2008/09/07/Silverlight-MultiThreading-with-a-Computational-Process-(Counting-Primes).aspx
tobinharris posted test results of calculating 1,000,000 primes. Silverlight was the clear victor for performance.
I've found that Silverlight handles the computational performance quite well. I've been disapointed by some of the graphical performance. Since that isn't you problem, I'd suggest some test with a few complex processes. I haven't used Flex, so I don't have a my own test for the difference.
Silverlight allows for multi-threading which is great for processing large amounts of data (and as an aside makes the UI seem faster/more responsive to a user)
Silverlight 2 apps written in >Net should run just as fast as .Net apps. There are compiled locally and run "natively" in a managed environment so the performance should be the same as any .Net app which I have found to be pretty darn good or at least programmer-talent-contrained and not toolset-constrained.
My big concern would be that you are running on the client and you will have little ability to know what the speed will be client to client. The min requirements for SL are pretty meager
Also, lots-o-processing typically means lots-o-data so you will want to look into using Isolated Storage (another neat SL feature) and compressing any WCF calls (use IIS7 and turn on dynamic compression)
Not sure about how flex does work on the client side.
What I like frokm Silverlight is that a real OOP language (C#) and all is compiled, about computation power, Scott Guthrie published a link to a chess game (same algorithm / implementation approach but javascript vs. silverlight), interesting how SL behave.
In the app I have developed I haven't had any issue on performance (some samples are managing more than 70 tables and relations) working with LINQ to XML... jejej where I have found some samples is fighting against some buggy controls on SL (combo and datagrid).
HTH
Braulio
To add on to Caryden's answer, Microsoft is working on a multithreading library that makes it very easy to write multithreaded code (Will be part of .Net 4.0). This library will most likely make it into the Silverlight libraries in a future version.
Reading this site and the comments relating to the various posts might help you:
http://www.shinedraw.com/flash-vs-silverlight-gallery/
Reality is Silverlight currently has an inferior rasteriser with some issues (outlined on the site linked above). But, as it has been mentioned here, you do get other benefits that can assist the rendering process such as multi-threading. Recently we ran into a lot of problems with rasterising of input text causing our Flash (for the sake of this conversation Flex is Flash) presentations to hiccup, there is no really good solution for this in Flash at the moment.
I would also suggest you will mostly get web and systems programmers giving their opinions here, rather than computer graphics programmers.

Resources