Print

Print


On Mon, 17 Mar 2008, Jonathan Rochkind wrote:

> Of course, all these things _can_ be done with only client-side
> javascript API. To my perspective, it is quite a bit more complex to do
> it that way. And complexity is the enemy of maintainability, especially
> in my limited staff resources library environment.
>
> But perhaps my perspective is not sufficiently "2.0" (or "3.0"); I've
> been a software developer for a long time, but doing client side
> javascript stuff for less. Maybe I'm wrong. I dunno. To me, it looks
> quite a bit more complex to try and provide these services with the same
> level of control and customization in a "don't repeat yourself" modular
> way accross all my various display systems that need this functionality,
> using client side javascript services.  Other developers, do you think
> I'm wrong?

I agree, but mostly because I'm concerned with the differing ECMAScript
implementations out there (JavaScript, JScript, different versions, etc.),
and the lack of the ability to test for the existance of a function ...
you can test for what version the client thinks it can run, but that
doesn't given you fine control.  (and as try/catch wasn't included 'til
1.3, I had to go through elaborate hoops to try to verify that the code
would run cleanly)

... then there's the issue that I need to support Section 508
requirements, and our normal procedure is to make sure that whatever
features we have don't require client-side support -- they can be
_enhanced_ by client-side scripting, but even without scripting turned on,
the applications are at least usable.

I'm also not a fan of how '<NOSCRIPT>' is handled in web browsers.  Say
for instance, that I actually know which spec I'm coding to, and I have
some functionality that requires 1.0, and some that requires 1.3.  I'd
want the <NOSCRIPT> to be directly tied to the <!cript> tag, so I can give
appropriate messages when they have scripting completely turned off and
both don't load, vs. when they're running a 1.2 spec, and can't load the
1.3 code.

        http://www.w3.org/TR/html401/interact/scripts.html#h-18.3.1

Now, in the HTML spec, they describe that the original intent was for
people to embed other languages ... but they don't ever say how you'd
handle the case where the browser loaded javascript, but not tcl.  Of
course, they've also deprecated the 'language' attribute, so it's more
difficult to handle the code based on the version of the language that's
supported.

...

It may be that I was stung by trying to move over to client-side scripting
too early (10 years ago?), and I've used it in small amounts through the
years, but I'm currently working on my first 'real' JavaScript
application, where it's going to require significant amounts of processing
to render output ... but I have no idea how much memory is safe to use, or
if my text machines are representative of our user base ... and I've
already found that the render time is more than doubled in FireFox
compared to Safari or IE.

... okay, this is slowly getting into a rant -- but yes, I agree -- I have
less control, more worries about security implications, issues with
debugging, etc.  I think the only reason I've gone along with the change
is because it's giving me a chance to clean up some of the UI code and I
can get a better separation between it and the back-end logic.

...

oh -- and the inability to inherit code from within JavaScript is a major
step backwards -- I have to have whatever HTML file (or whatever generates
the HTML) know what the full chain of dependancies are for each script I
load.  JSAN looked promising when it was announced, but it doesn't seem to
have taken root:

        http://openjsan.org/doc/c/cw/cwest/JSAN/0.10/lib/JSAN.html


-Joe