Take the 2-minute tour ×

Please do not start a war over this question, but I would like to know some constructive opinion.

I have written a website using silverlight. I think SL it is great, I love using c#. However, I have found that many users cannot or do not want to install silverlight. (Its a sport utility program aimed at 25-60 year olds.) I even started keeping stats on the ratio of people entering the SL program page, and getting to the stage where it was fully loaded. Its about 50%. This is usually after spending quite a bit of time on other pages which explain the use of the program. Additionally, if they appear to come from a workplace, the % is even lower. (I guess you cannot ask your admin to install SL for leisure activity programs.)

So what language do I use?

In the past 3 months i have learned javascript/html5. Its a good enough language, not a c#, but still fine. My main gripe with JS/Html5 is it does not produce a compiled app. Also with SL you can get an Out of Browser/Desktop app with just a few extra lines of code.

I guess I want a cross-platform (macs, pcs, phones of all denominations iphone,android windows phone, and all the tablets) with minimal (read no) hassle for the end user with regards to plugins or addons. But because I am gready, I would also prefer if possible to be able to produce an app the user could download and install on their machine, so they would not have to have the internet on afterwards to use it.

Is this SL, Java or JS/HTML5?

I would like to do some games as well as some more sports utility program but would like to be building up a library of code elements I can use across the lot.

share|improve this question

closed as not constructive by AVD, pimvdb, Mat, Joe, Bart Kiers Oct 6 '11 at 14:57


5 Answers 5

up vote 1 down vote accepted

My advice is always cater to your user base. If you attempt to change their behavior or require them to do something they can't or won't do, you're going to fail every time. If your goal is to launch a new product or try to gain traction for your company, the technical implementation of your solution is the least of your worries.

Do the job right, or not at all.

Silverlight is a great framework (I worked at Microsoft for 12 years) and I can definitely see the desire to "take some shortcuts" and have a single codebase for everything. However, outside of Netflix and a few other major websites (that already had a massive userbase to begin with), it simply hasn't caught on for web based applications. It's a bit clunky, requires browser extensions, and is hard to create a seamless experience. Silverlight is quite obviously trying to re-invent itself as a mobile solution, powering the new Windows Phone platform, and I hope it succeeds at that. I would recommend against creating new web applications on the platform, just to save a few extra lines of code.

Java (I assume you mean client-side Java applets) runs into many of the same issues as Silverlight. Not everyone can run it, it's somewhat slow and clunky to load, and it's tough to create a seamless web-like experience. It's also an old and outdated platform, and has pretty much moved to a server-side language (and runtime) now days. I chuckle every time I go to a webpage and it wants me to load a Java applet.

HTML5/Javascript would be my choice. It's cutting edge, has a massive amount of support, and the new Javascript runtimes and JIT'ers are insanely fast. You can create beautiful canvases and rich apps, and there's no components to install or user hassle. Javascript, though no C#, is a fantastic functional language that I think you'll grow to appreciate once you give it a chance and stop comparing it to C#. Check out some of the frameworks created for it, such as jQuery, YUI, Mootools and Prototype. From a technology point of view, there's really nothing stopping you from creating awesome apps on the HTML5/Javascript framework; and it's the one your users are going to accept with the least amount of friction.

Best of luck on whatever choice you make!

share|improve this answer
I am starting to believe JS/HTML5 is the way to go. Not as keen on the language, but it is fine. Some coding quirks are a little friendlier, oddly enough. Its going to be a knightmare to convert the thousands of lines of code for the existing project. Many do that next year. Some Questions. 1. At the moment I am using Visual Studio Express 2010. What other ides will work, including having a test server (with database support)? 2. Could I zip my html pages with a start.html page the end user can download onto their machines, so they can use it offline? 3. Are there any security issues? –  Rewind Oct 6 '11 at 15:26
If you're writing the back-end in .NET, stick with Visual Studio - it has a fantastic script debugging experience too (better than Firebug and what not, IMHO).. I'd look at various technologies for your offline story - that discussion is rather protracted to get into on this thread, however - perhaps come up with specific questions and start a new Stack Overflow question. –  Mike Christensen Oct 6 '11 at 15:44

Those three are all completely different and most of the time have not really much to do with each other (or are embedded into each other).

For one thing js/HTML5 is a client side scripting language
And Java (not the same thing) is a server side language...

share|improve this answer
I thought you could build desktop apps in Java. You can definitely do it with SL, after a download from the web (I have done it). Can a desktop-like app be created with JS/HTML5? As you say js is a client side language, so can you download a zipped directory with a start.html to double click? –  Rewind Oct 6 '11 at 14:56
You can build desktop apps in Java. You can even build in-web browser apps with Java. Those that attempted to do so a decade ago were burnt, and now the historic knowledge is taken to be as fact. It just isn't so these days. I'm not saying Java is perfect for everything, but what the poster may have been confusing is that Java DOMINATES the server side. Can't swing a cat on the server side without hitting multiple java offerings. –  Edwin Buck Oct 6 '11 at 15:06

Each language has different strengths and weaknesses. To know which one would serve you best, on would need to know a bit about what you intend to do.

Java has the biggest footprint in the above listing in being a tool to handle many jobs. The others are a bit more narrow in focus, which can be a huge benefit if that focus aligns with the task you are attempting.

Some languages tie you to a particular operating system (or small set of operating systems). Again, if you cannot use your product outside of the "supported" operating systems for a language, then such a restriction doesn't impact your choice.

share|improve this answer
I have done a sports utility program already in SL. I was about to add the Out of Browser Desktop functionality to it, but then was finding these issues that many (end user) people could not or did not want to install SL. I REALLY want cross-compatibility for macs/pcs/phones/tablets. The latter is ruled out for SL, as the latest build conference says metro wont support ANY plugins. –  Rewind Oct 6 '11 at 14:58
If you want cross platform, you'll have to decide (from the three you posted) between Java and Javascript. Javascript's strength is the browser, but if you want the app out-of-the-browser, then you trim your choices down again. Java's in-browser offerings / integration is improving, but it's never going to be Javascript. –  Edwin Buck Oct 6 '11 at 15:09

Maybe you should have a look at PlayN, I haven't had time to try it out my self yet, but it might be what your looking for if you want to develop for multiple platforms and be able to reuse your code.

share|improve this answer

Well, the true thing is that html5/javascript is an open standard and doesn't need a plugin. Working with it should be the best choice. Silverlight is good, but not that good, when I'm on a website I even hate when there is some flash scripts around, I want html pages, they are optimized for browser. Java no, normally even if I have Java installed, when I find something in Java and I don't need it I normally close the website.

The problem of the source code is a common problem, you can "fix" it a bit by doing some things on server side with a server side language (I don't know how your project works). By the way you should come up with it, some people will see you client source code (you can obfuscate it by the way, I don't know how).

Remember that with html5/Javascript you have the advantage of a global visibility: you can be seen even on phones in nearly future, not so bad!

As last point, windows 8 will support apps written in html5 + javascript, maybe you can find it useful.

I love C# too, but there are some situation where you should drop it, I have dropped it as a server language (at the moment) due to license costs, even if I really love it.

Good luck

share|improve this answer
