Tuesday, January 17, 2006

Client-Side Server Scripting

While many people think it is impossible to shift Server-Side Duties to the Client, it isn't! Apparently the group of people hired to write a web application for my employer (my full-time job that supports my pursuit of Woven Thorns Productions, not WTP itself) decided to do just that.

By using Java applets to write server-side applications, we are able to require that everyone use the Java Runtime Environment. No biggie, that is made for linux, windows, mac OS, and of course solaris. So I install it on my windows machine and on my Linux machine. The application works great in Internet explorer 6+ on Windows XP Pro, but does not work in Firefox 1.5 on Windows, nor does it work in Firefox 1.0.7 on Linux.

If the developers had used something such as PHP, ASP, Perl, or any CGI language, then this would be a non-issue, because the work would be done on the server side of things. Heck, they could even throw in some Javascript to make it look and perform the exact same way. But here's the problem, Javascript can be purified down to a simple, cross browser, cross platform language (minus a few Microsoft changes, which are easily tip-toed around) that will work on all versions of Firefox on all Operating Systems, as well as IE, Safari, Opera, etc. etc. All without having to add Java Runtime Plugins for each browser.

Why didn't we do this?

My only guess is money. Java developers connecting to Oracle Servers get paid better than PHP developers connecting to MySQL/PostgreSQL Servers. (Side Note: PHP can connect to Oracle Servers just fine, and can even be compiled to encrypt the database usernames and passwords)

So for all the Java developers out there, please continue making great, compiled, desktop applications for specific operating systems, but leave the internet alone unless you can garuntee cross-browser, cross-platform portability. I'm tired of being told to "view this page in IE". That's like saying you can't watch a black and white TV show because I have a color TV. If a standard signal was sent, I could watch whatever I want to.

Please, if you work on the web, don't do what is easy, or what is lazy, do what is portable. If your website requires something other than what is packaged by default with Firefox, Internet Explorer, or Opera, then please recreate your site.

Some examples of methods that defeat the purpose of web applications:
  • Java Applets
  • Flash-Only websites
  • AJAX-Only websites
  • Complex Table layouts
  • Any web content, CSS, Graphic, etc. geared for a single web browser.
Please, follow standards, and keep in mind that while most visitors are using IE on Windows, doesn't mean all of your visitors are. If I lived in a predominantly white town, I wouldn't let that influence me to refuse service to someone just because they are a minority. The same attitude should be taken to web applications.

If you want to target an operating system, create stand-alone applications. If you want to target anyone with the internet and a web browser, write standards-compliant, ADA friendly, server-side applications.

No comments: