Tuesday, November 6th, 2007

Real Men Don’t Do JavaScript Do They?

Category: Editorial, JavaScript

>Dave Thomas (The AOP/Bedarra one, not the Ruby one) has a column titled Programming the World in a Browser: Real Men Don’t Do JavaScript Do They?! where he discusses how JavaScript won:

The mainstream professional developer community has never taken JavaScript seriously but soon they will have no choice. JavaScript is ready to move to center stage as the development and delivery technology for Web 2.x applications. In the past, most enterprise and product developers flocked to Java or C# while web developers moved to PHP, Perl, Python and more recently Ruby, with most ignoring the web based scripting language called JavaScript. At best it has been considered something to spiff up one’s HTML pages. To make matters worse, incompatible implementations of JS and the DOM have tormented developers and made JS very unpopular with many. Until Ajax and Web 2.0 Douglas Crockford seemed to be the only advocate for JavaScript as a reasonable programming language. He pointed out that JS was really a Scheme like language with a prototype-based object model layered on top of it. I’m sure that popular author David Flanagan never dreamed that he would be best known for his book Definitive JavaScript.

While many smaller companies had built quality widgets and applications in JS it is was the entry of Yahoo Widgets, and more importantly the that of Google Mail, Calendar, etc. that laid the commercial foundation for the Ajax revolution with a plethora of frameworks and tools. Rather than bulky and complex web standards, more and more of these toolkits support simpler Restful style services that use JSON rather than SOAP.

JavaScript’s ubiquitous browser availability makes it the frontrunner in that environment and this will no doubt ripple to servers and appliances. JavaScript is headed into the limelight once promised to Java, then later to Flash. It will be a must know language for everyone within 3 years. If JavaScript does cross over from the browser to other platforms it could inflict collateral damage on these languages down the road.

He goes on to discuss:

  • The Push for a Faster, More Robust JS in the Browser
  • Universal lightweight runtimes:
    • Silverlight and the Dynamic Language Runtime
    • Scripting Language Execution on the JVM
    • The Sun Finally Shines on Dynamic Languages
    • Google Reviving Rhino?
    • IBM Project Zero?
  • ECMAScript 4: Just say no
  • JavaScript as a platform

Related Content:

Posted by Dion Almaer at 12:30 am
23 Comments

+++--
3.4 rating from 38 votes

23 Comments »

Comments feed TrackBack URI

It reminds me a certain company, a certain browser and a certain FUD tactics.

Comment by Pedro — November 6, 2007

If JavaScript does cross over from the browser to other platforms it could inflict collateral damage on these languages down the road.

Sorry, forgot the quote.

Comment by Pedro — November 6, 2007

Quietly, while no one was watching or caring, Adobe and Mozilla hijacked ECMAScript and are now driving forward with a monster disguised as ECMAScript 4.

Looking up the word FUD should show a picture of this guy.

Comment by Jeria — November 6, 2007

Anytime I want slower page loads, and invisibility to the SE’s, I always choose a scripting language.

Comment by BillyG — November 6, 2007

@BillyG: what are you doing on this site?

Comment by Michael — November 6, 2007

This man is insane! “Steve Yettes”? “Mozilla hijacked ECMAScript”? “Less is truly more when it comes to languages”? “The joy of building applications”? What? Was building applications ever joyful? Jesus Christ!

Comment by Tim Cooijmans — November 6, 2007

These articles always frustrate me a little bit, because while I can understand appreciation for a language as a tool, I can’t understand a desire to use JS for more than enhancements to a web application. As we have been lucky that JS library writers have hidden all the incompatibilities / incapabilities from us I have to worry that many developers are getting a bit too gung ho at using JS to do everything.

Similarly, I use and love working with ColdFusion for the back-end of applications. Personally, I like that it is built for web applications and nothing else, making easy almost every task I have to do. I have no desire to use it for application development just because it works so well for web development.

I guess its the usual “When you get a hammer, everything’s a nail” syndrome, but I’m also a little surprised at the crazy Mozilla / Adobe politics mentioned. I agree that makes no sense. Honestly, I really see Flex / AIR being great for more complete connected / disconnected apps because it has the two things those really need, a strong UI definition language and a really good event model.

Comment by Mike Kelp — November 6, 2007

I tend to agree with Mr. Thomas on the EcmaScript 4. It does seem like Mozilla and Adobe are hijacking the language. This may be why Microsoft isn’t so enthusiastic about it. EcmaScript 4 benefits Adobe with their Flash and Flex products more than anyone else, include the developer community.

I wonder how long after the language is finalized Adobe drops AS3 and moves to Javascript 2. This is a huge win for Adobe in terms of marketing and developer adoption. Who wants to learn ActionScript3 when they can learn JavaScript 2. Oh wait they are basically the same thing.

Comment by Steve — November 6, 2007

Correct me if I am wrong, but I thought ECMAScript was a standardization of JavaScript, which was called LiveScript when it started on Netscape, which in turn was the company that gave birth to the Mozilla Foundation? How could the original designers hijack their own language?

I haven’t read the ES4 specification yet, but afaik it is fully backwards compatible, while providing optional features for powerful JITting and type safety, for those who prefer or need it. I’m yet to really see how complicated it has gotten, but still sounds very interesting.

Comment by Danie Luz — November 6, 2007

@Mike Kelp: I think there are many reasons to use JS as more than enhancements to a web application. JavaScript is the world’s most ubiquitous computing runtime:
http://www.codinghorror.com/blog/archives/000857.html. So, if you are going to make an application, if you write it in JavaScript, you will have the easiest time providing it to your customers.

It doesn’t require any specific tools to develop for:
http://shaver.off.net/diary/2007/05/10/the-high-cost-of-some-free-tools/.
Of course, firebug helps. But I’m not forced to use it.

It’s a hundred times faster than it was 10 years ago:
http://www.codinghorror.com/blog/archives/000509.html.

It’s also a surprisingly powerful language. It took me some time to get used to having first-class functions, prototypes, and closures, but they are very powerful.

And if you agree with Douglas Crockford, once we get ‘safe’ remote scripting, people will be able to build entire applications that run off services, just by hosting HTML, CSS, and ugly but lovable JavaScript. That’s powerful! I think it will drive the construction and adoption of SOA.

Here’s an example we did with Google’s GData:
http://jupiterit.com/traffik/public/index.html

Of course, I’m as biased as someone could be … I’m working on a web development framework for JS:
http://jupiterit.com/junction.html

Comment by Justin Meyer — November 6, 2007

JavaScript is nice to program with and I enjoyed the JScript/ASP days but at some point there has to be a fork, I think anyways. Can, or more appropriately should, browsers support full fledged OO languages for client scripting? What does this do to performance?

Comment by justin — November 6, 2007

ECMAScript seems like a pointless excersize, a way to make academics feel better about all the time they’re wasting “thinking” instead of “doing”. If they spent even 10 minutes trying to use JS, they’d see it’s already the most powerful language available.

What we need is more standardization between browsers, so the initial learning curve isn’t so high. Can you imagine the mess when IE, Mozzilla, Opera and Webkit all implement their own versions of ECMAScript 4? You people who are pushing ECMAScript 4 are amateurs at JavaScript and computer science in general. There’s nothing that can’t be done with JS in the form that it exists now.

Wake up everyone. Mozilla wants to make the language more complicated so they can have a legitimate front to launder all the money google is giving them (come on! $60 million dollars a year for a browser that’s finished and all you can do is make it more complicated?) and Adobe is going to make a killing with all the products and services they sell you to use their new “more powerful” language.

Comment by Peter Vulgaris — November 6, 2007

Since when is Silverlight a lightweight runtime?

Comment by Anonymous — November 6, 2007

Performance and scalability is the main reason JavaScript will continue to thrive on the client-side, but never make the jump to mainstream server environments. For large (>50K lines) projects serving dynamic web pages, JavaScript or maybe it’s current suite of interpreters, Rhino and SpiderMonkey, just aren’t up to the task.

Comment by Bill — November 6, 2007

“If JavaScript does cross over from the browser to other platforms it could inflict collateral damage on these languages down the road.”

I doubt this. JavaScript has it’s place, it belongs in the browser. Exactly what platforms it could it cross over too? It would be like trying to use excel as your database.

Comment by j4606 — November 6, 2007

I miss the JScript/ASP days. I did some sick stuff with some simple sh*t. This is all getting too complex (KISS). At the same time, I daydream about the performance potential of JIT.

Comment by jake — November 6, 2007

Peter said “[JavaScript is] already the most powerful language available” and “There’s nothing that can’t be done with JS in the form that it exists now.”
You have got to be kidding. Ruby’s missing method resolution comes to mind, but even basic concepts like property accessors are challenging. Sure, you can hack a lot of concepts into JS but even as a dynamic language it’s far from being the most powerful language.

Comment by Bertrand Le Roy — November 6, 2007

The mainstream professional developer community has never taken JavaScript seriously but soon they will have no choice.

Oh no, it’s coming……………….
i don’t know where he got the idea of “soon they will have no choice”, but it has been like this for the past 2 years at least.

while web developers moved to PHP, Perl, Python and more recently Ruby, with most ignoring the web based scripting language called JavaScript.

really? ppl are actually ignoring js even when they decided to move to Ruby? Perl and Python ppl i can understand, but PHP and Ruby?

But I definitely agree that js is really powerful. It does confuse a lot of ppl when they first look at it, but i’m sure none of us that’s reading this post are. If companies like Google utilizes javascript to construct their cutting edge products, would you stand their and say “Javascript is just a script language, it’s not as powerful”.

Comment by Simon Jia — November 6, 2007

“Can, or more appropriately should, browsers support full fledged OO languages for client scripting? What does this do to performance?”

It boosts performance, actually, since static typing helps a whole lot on JITting. (And yes, there will be JITting; this is what Adobe’s donation of AVM2 to Mozilla is all about)

Comment by Daniel Luz — November 6, 2007

ECMAScript 4 is not some evil scheme. It’s an attempt to make javascript more palatable to “normal” programmers by adding traditional OO semantics while at the same time dramatically increasing its performance by introducing static types. Admittedly there is some extra stuff that snuck in there that is not really necessary, but as a web developer I would seriously welcome both of those changes.

The reason adobe and mozilla are pushing ecmascript 4 is because they both want web 2.0 to succeed and make the OS irrelevant for most classes of software and a better faster javascript would make that happen. Those of us who saw the switch from actionscript 2 to 3 know what kinds of new possibilities the same switch for javascript would create.

By the way, ecmascript 4 will have a reference implementation created by mozilla / adobe that everyone can use as a basis for their own implementation. Most likely there will therefore be just one implementation, eliminating the differences between browsers.

Comment by Joeri — November 7, 2007

* The main pusher of ECMAScript 4 is Mozilla’s Brendan Eich. He _invented_ JavaScript. If anyone is hijacking JavaScript, it’s Microsoft, by stifling its progress. And don’t think ScreamingMonkey is going to solve all of our problems: users will have to install it.
* ECMAScript 4 is backwards compatible with ECMAScript 3. You lose nothing, you gain a whole lot. You don’t even lose performance, because that’s about as bad as it can be right now.
* Simple languages make for complex programs. Complex languages make for simple programs. The complexity has to go somewhere, and this insane callback maze that is your average web application is proof.
* ECMAScript 4 gives you more power. You can do more with less, and you’re going to HAVE to do more with less if you’re planning to stay in the running. Much as I hate to admit it, corporate bloat fans are raising the bar for the rest of us everywhere, and we had better keep up the OPEN way. If ECMAScript 4 fails, developers, having seen the light, will flock towards Flash (ActionScript 3 is ECMAScript 4), Silverlight, and other proprietary pieces of shit that are more powerful than ECMAScript 3. This actually seems to be the reason Microsoft is stifling ECMAScript 4.

Let’s get on with this thing.

Comment by Tim Cooijmans — November 7, 2007

@Tim – If ECMAScript 4 fails, developers, having seen the light, will flock towards Flash (ActionScript 3 is ECMAScript 4)

I think the opposite is true. Adobe is going to be able to claim support instantly. This will accelerate adoption of the Flex and flash while the browsers struggle to get the support. Enterprises are still locked into IE and will be for a long time.

This will be the Next Great Adobe Jedi Mind Trick. The first one was convincing everyone that Flash isn’t an ActiveX control.

Comment by Steve — November 7, 2007

@Steve: adobe already donated their engine to mozilla, who are going to use it for the reference implementation of ecmascript 4. So, from day one of the ecmascript 4 spec being finalized there will be an open-source independent implementation of the spec. Also, even though for convenience’s sake it is said that ecmascript 4 = actionscript 3, this is not the case. Actionscript 3 has inspired ecmascript 4, but it is not identical to it.

Comment by Joeri — November 8, 2007

Leave a comment

You must be logged in to post a comment.