Kurt Cagle’s soapy post on Javascript

Kurt Cagle posted today with the title of “Is Javascript Dead?”. I considered stopping reading right then, because I think that crosses the line of journalistic good taste (oxymoron ;-) in a headline, but Kurt is often insightful and is a valued colleague of mine. Javascript is also something that I am interestd in. Having read the post, I know he can communicate more effectively than he does there.

If I didn’t know that because he has been overloaded with comment spam, he has not “moderated” posted comments in months, I would have likely posted a short comment — aside, turn off the comments Kurt, it is such a tease :p

Javascript has been a language that I have been very interested in since a few years ago. I had touched some Javascript back in 1998 to do some basic procedure web page programming, but did not think much of it other than it seemed like a basic procedural language that included some browser specific tricks (what a distraction, what was Netscape & Microsoft thinking). Then while working at the IBM Toronto DB2 team, a memo from one of IBM’s think tanks read to the effect that all parts of IBM software should embrace and extend Javascript. IBM’s thinkers are not often wrong, so without understanding the secret that I had learned, I have keep my eyes open, and nodded along as the power of Javascript has been revealed. I am not sure how IBM used that information. The press recently about IBM, Javascript, AJAX, and Firefox is impressive, but does not speak of early adoption — do you think REXX plays any role in this? Regardless of whether IBM got good value from their info, the day has come where Javascript is a language with a signficant role.

Of cource, Javascript is important to me because of the significant role it plays within the Firefox codebase, and therefore, Flock.

So here I am feeling soapy after reading Kurt’s article — I had forgotten that there is often soap still to be used when someone climbs on their soapbox. There is some great info in his post, but he does not follow some rules of good technical writing in this post: introduce your main points, provide supporting information for those points while staying focused, and then summarize your main points and how they were supported. But hey, I guess it is a blog, and not a published article ;-)

My challenge to Kurt is to fix commenting authentication to add to the value of his blogging — LOL, joking. My challenge is for him to be true to his excellent writing abilities and share his wonderful thoughts in a digestible manner — I still have some arguments to win with people about RSS vs ATOM, (and against RDF) and I could use your help Kurt ;-)

Having thrown down my gauntlet, and me sometimes being a better critic than “creative thinker”, I will point out some ways that I think Kurt can improve that post. And good thing being critically is a valuable traits in QA. Be warned programming languages is not a particularly strong topic of mine:

  • 1st, of course, is to focus more. He skims quite a few interesting topics, without making the relationships clear.
  • Kurt may not be presenting clearly the relationships among static vs dynamic typing, and strong vs weak.
  • Kurt has such vision that he sometimes skips steps, or generalizes quickly. Introspection/reflection, or whatever you want to call it is a very challenging topic. Sometimes I find an example that does really explain why it is so powerful, easier to digest. Here is a related concept without they why, posted to a blog (with almost as hideous of a title.

I will leave it at that, as this is just a blog post ;-)

Technorati Tags: , , ,

4 Comments

  1. Posted September 9, 2005 at 8:52 am | Permalink

    Lloyd,

    I feel properly taken to task. The comments are largely out of my control - they had been disabled for a while because the software that I used (hosted by a friend) was getting spambotted six ways to Sunday, and I was having to dig through ten poker advertisements for every one legitimate post. The friend in question is changing software, but hasn’t migrated to that particular section yet.

    Concerning the Javascript article - I was operating with about an hour and a half of sleep from the previous night, and in all honesty was VERY surprised that the article was even written in a recognizable form of English after a full night of sleep thereafter. It’s NOT one of my more exemplary posts, though I’ve written worse (usually after even less sleep).

    To the topic at hand:

    Javascript is one of those topics which engender either great love or great hate, which to me is the sign that a language is sufficiently useful that people are willing to invest the time to become advocates or critics of that language. As with most such languages, its strengths are also its weaknesses, depending upon the viewpoint.

    Javsacript is likely to be the first weakly typed language that programmers encounter. If they have been raised upon a diet of C++ and Java, this “weakness” - specifically the notion that the user should not in fact be more than peripherally aware of type - seems fundamentally wrong and contradictory, the sign of an “immature” language that should only be used by “non-programmers”.

    I actually think its nothing of the sort, but is in fact an anticipation of a new, largely declarative, school of thought that says that type itself is simply one aspect of many of a particular entity, an aspect that can in turn be abstracted. This notion finds its apeothesis in XML, where the underlying structure is generic, and the schema (its “type”, more or less) is another XML structure that provides a set of conformance rules for a given XML “object”, but the idea is still very much present in Javascript.

    Indeed, in that regard I think the question comes back to the question of whether programming itself is an art or a science. The strong language advocates actually fall into the artistic side of the equation (as odd as that may sound), in that the supposition is that the programmer is more qualified to determine type structure and associations at a basic level than a computer is. Ten years ago, that may possibly have been true, though I think even then the balance was tilting in favor of the machine. Today, with multiple levels of abstractions, virtual machines, parallel processing systems, and the like, maybe one programmer in 10,000 could write code that would be more well optimized than what even an interpreter could do. This admittedly has more to do with dynamic typing than it does with weak vs. strong typing, but I believe its pertinent to both.

    And yes, for clarification purposes:

    A strongly typed language is one where all variables are explicitly typed and, save for potentially inherited objects that share that interface, cannot be redefined outside of that typing.

    A weakly typed language, on the other hand, treats variables as generic containers which can hold any potential type of content, usually through a process of indirection under the hood to strongly typed content. As such it is a first order abstraction. Javascript in particular is weakly typed because it treats functional objects as generic entities that can also hold multiple potential structures (among other things).

    A static language is one where the assignments of type are strictly maintained, while with a dynamic language the type can be modified on the fly. Again, looking at Javascript, this on the fly maintenance is manifested in the use of prototypes, which make it possible to change both instance and “class” structures on the fly. This makes it possible for Javascript to actually change the behavior of entities on the fly, a concept that no doubt makes purists shudder but which makes a great deal of sense in bound architectures such as those found in XUL, HTML, SVG, and so forth.

    Finally, the title was not mine - it was from a post to me (and an arresting one at that), and had I been more awake, I would likely have quoted it directly. I appreciate the detailed commentary that you’ve made about the post, and promise one that will be done with just a shade more sleep under my belt shortly .

    – Kurt Cagle

  2. Posted September 9, 2005 at 10:43 am | Permalink

    Now this is the Kurt I know and love! Nothing to add regarding the greater points that you articulate, nor even access to the ideas you present ;-)

    Possibly Python has played a more “community conscience” role in “[anticipating] a new, largely declarative, school of thought that says that type itself is simply one aspect of many of a particular entity, an aspect that can in turn be abstracted.”

    Additional Technorati Tags: ,

  3. Posted September 9, 2005 at 2:51 pm | Permalink

    Try this:

    http://www.understandingxml.com/archives/2005/09/sleep_javascrip_1.html

    – Kurt

  4. Posted September 11, 2005 at 3:42 pm | Permalink

    Wow, that one was a bit long for me ;-)

    I enjoyed “Javascript and Python” more.

    I had not read that after Brendan Eich announced Python support for XUL at ETech 2005 that “Mark Hammond has begun delivering the goods”.

    I find it interesting how a concept, Python in this case, gets to a point where it rapidly gains momentum in the communal consciousness, and from there in “products”.

    Technorati Tags:

Post a Comment

Your email is never shared. Required fields are marked *

*
*