JavaScript Misunderstood?
After reading Why Is JavaScript So Misunderstood?, all I can say is "big deal."
JavaScript (aka ECMAscript, JScript, etc.) is a cool 'programming language' for sure. The author leaves out a few key limitations of JavaScript like:
1. JavaScript is only really supported in browsers. Not all browsers (and versions) support JavaScrpt well or to the same extent. Many implementations are quite buggy.
2. This means you can't just simply 'run' your 'programs' easily, reliably or in stand-alone mode.
3. It also means that your user interfaces must be created with the limited UI capabilities available to web browsers and HTML.
4. Your 'programs' are restricted by the browser's Document Object Model (DOM). This greatly limits what you can use and access for input and output.
5. JavaScript development tools are very immature compared to other 'languages' like Java or Visual Basic.
6. You can't 'install' JavaScript 'applications' on a user's desktop. You typically access JS apps via a web page - this makes it more difficult for users to access and run. For example, you can't just click an icon on the desktop or Start menu (on Windows) -- you have to locate a URL or bookmark first.
7. JavaScript is really just client side. Sure, I know Netscape had some scheme for running JavaScript on a server, but no one in their right mind ever really used it. PERL, Java, and Microsoft technologies are much more respectable on the server side.
8. Need to read or write to an external database or file? How about create or delete files? From the client side you can't.
9. You can't manipulate or access other programs.
10. You can't modify a web page. Sure you can update values in form fields, but you can't change links, text or anything else that the DOM says is off limits.
So, while JavaScript is a great 'programming language', it really only fits a small niche of applications - those web sites and apps that need a lightweight scripting language.
Apologies to regularly 'usability topic' readers - we will now resume our irregular programming (or lack thereof).