It seems that "Javascript doesn't suck, you do" has evolved from
a
catchy presentation title to
a full-blown movement. It's unfortunate
that this movement hasn't seemed to have hit Microsoft itself yet,
judging from
Kyle Baley's review of John Bristowe of Microsoft's recent presentation
on Microsoft Silverlight. One particular Bristowe quote caught my
attention:
"
Early in the presentation, John asked, "Who *likes* working with HTML, CSS, and Javascript?"
My answer to this is a resounding
I do, which brings us to
Answer #1: Phenomenally good-looking software consultants enjoy working with Javascript.
Now, you might not consider a man who spends his time posting about
dinosaurs carrying grenade launchers and proclaiming
his heterosexual and completely platonic
love for Michael Bay to be the most credible technical resource. But
in addition to myself, here are some *other* people who like working
with Javascript:
Kyle Baley, AJAX master and keeper of
the most extensive "Women In Song" collection in history
37 Signals (in fact,
they wrote a whole post about it)
Hamilton Verissimo of the Castle project (
who also wrote a whole post about it)
Which brings us to
Answer #1A: Technical thought leaders in web development *and* phenomenally good-looking software consultants *and* people who like bolding fonts enjoy working with CSS and
Javascript.
So given statements #1 and #1A, we can likely conclude that:
Answer #2: People who *don't* like working with Javascript are either
a) not technically credible
b) not terribly good-looking
c) an unfortunate mix of both
d) a volcano full of irrational hatred
I believe that John lies in category d). You see, this loaded question of John's has come up in *three* separate presentations about 3 entirely different technologies:
I'm not too sure what John Bristowe has against Javascript to have him deny Javascript three times before the rooster crows. Perhaps Javascript burned down his house. Maybe a former girlfriend left him
for a web designer. Even more likely, it *could* be that Microsoft has a bomb implanted in John's skull that will explode if he ever hints that he really has a soft spot for dynamic languages. Wherever this question comes from, I still dislike it; it implies that Javascript is some ugly language that *no* web
developer should ever get familiar with. While not everything in Javascript is exactly how I would like it (there are definitely places where it looks like it was constructed by two or more entirely different teams), it is still a pretty formidable language.
Now, I'm not anti-AJAX Framework and Silverlight. In fact, I'm all in
favor of abstracting away AJAX and DHTML-driven technologies so that
people don't need to continually roll their own. How many different
Javascript-driven Datepickers does the world require anyway? However,
I do not like the seeming emphasis that web developers shouldn't know
web technologies
. I've got news for web developers out there:
if you want to be considered credible, some knowledge of the primary technologies involved in web development would be an asset.
Now, I know what some readers are thinking and
you're right - knowledge
of Javascript and CSS is not essential to developing a web
application. However, the following two statements are also true:
-
Real object-oriented knowledge (not "I wrote the word 'class' so I'm an
OO developer") is not essential to developing a web application.
-
Proper architectural and design patterns are not essential to developing a web application.
Of course,
try to develop a large-scale web application *without* either of the above, and see where that gets you.
Perhaps Microsoft dislikes these technologies since it spent the last 5
years ignoring any sort of W3C recommendations, fostering massive
display and behavioral incompatibilities for browsers (at least until
IE7 hit), and simply views CSS and Javascript as inconveniences that
should be abstracted away so it doesn't have to listen to all those
whiny standards people.
I guess after typing all of this, I have my *own* questions of Microsoft and its presenters:
1) What exactly
is your problem with the web and the languages in it?
2) Why do you encourage people to be ignorant of the concepts and technologies that currently drive the web? Can't we all just get along?