BT

Facilitating the Spread of Knowledge and Innovation in Professional Software Development

Write for InfoQ

Topics

Choose your language

InfoQ Homepage News JavaScript: Its Evolution as a Language

JavaScript: Its Evolution as a Language

This item in japanese

Bookmarks
JavaScript (classically, ECMAScript) has been progressing steadily since it received a significant update as ECMAScript edition 3 in 1999. InfoQ.com has been tracking the updates on JavaScript on its web site.

The latest proposal Netscape's ECMAScript Edition 4 for JavaScript 2.0 is available online. John Resig, the creator of jQuery project, has posted some thoughts on his blog:
I think we’ve seen the JavaScript language move through many individual phases:

* The "We need scripting for web pages" phase. (Netscape)
* The "We should standardize this" phase. (ECMAScript)
* The "JavaScript isn’t a toy" phase. (Ajax)
* The "JavaScript as a programming language" phase.

JavaScript was created in 1995 by Brendan Eich (an engineer at Netscape) and first released with Netscape 2 early in 1996. JavaScript as a language has been explored in the past in writings such as The World's Most Misunderstood Programming Language by Douglas Crockford (developer of JSON), and recently such as The Next Big Language by Google's Steve Yegge (who ported Rails to Javascript/Rhino). John Resig continues on his blog saying:

... JavaScript will be treated as a significant programming language - divorced from the concept of web development.
Non-Web-based Use

JavaScript on Rails - Granted, at this point, this project may as well be pure vaporware, but it's caught the attention of the right people. When one of the most popular software bloggers talks about how there's a "next big language" coming up and then announces his massive re-write of the popular Ruby on Rails framework, in JavaScript, running on Rhino - people tend to pay attention. ...

Helma - This web application framework is a long standing stalwart of server-side development with JavaScript (again, using Rhino). ...
All of this leads me up to a point: JavaScript is actively advancing, as a language. While it’s most popular domain will probably always be in web browsers (with new JavaScript engines pointing in that continued direction), the advancement of server-side uses of JavaScript will only make for a much larger area for possible development in the upcoming years.
To quote Steve Yegge from his blog:
...because the Next Big Language (NBL from now on) is going to arrive very soon (timeline: 18-24 months, as far as I can tell, which in language terms means "imminent") ...

Many saw Steve Yeggie as confirming the Next Big Language to be Javascript or ECMAScript. As of this writing, it is understood from Mozilla pages that the intent is to make JavaScript 2.0 and ECMAScript Edition 4 the same language with JavaScript 2.0 offering a few additional features. JavaScript 2.0 draft specification can be found here. Stay tuned to the JavaScript thread at InfoQ for further news.

Rate this Article

Adoption
Style

Hello stranger!

You need to Register an InfoQ account or or login to post comments. But there's so much more behind being registered.

Get the most out of the InfoQ experience.

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

Community comments

  • Been available for over a year now...

    by James Ward,

    Your message is awaiting moderation. Thank you for participating in the discussion.

    I've been using JavaScript 2.0, ECMAScript r4, ActionScript 3 - whatever you want to call it - for over a year now. Flash 9 and Flex 2 standardized on this language and donated a VM for ES4 to Mozilla. I think it's a great language for building UIs. Probably not a language I'd want to use on the back-end since I'm pretty happy with Java for that piece. For me Flex on the front-end and Java on the back-end is the perfect combination. Thus the reason I went to work for Adobe. :)

    -James

  • Re: Been available for over a year now...

    by Jesse Kuhnert,

    Your message is awaiting moderation. Thank you for participating in the discussion.

    Yeah - good job with that stuff James. (I guess it's ok for me to like it here since maybe the ajaxian people won't be here, maybe...)

    I just saw my friend building an ActionScript 3 based app that he launched and showed me this weekend - almost brought tears to my eyes. ...

    We were both tortured with Swing for at least 6 years or so and can appreciate a toolkit that doesn't hate developers from a programming pov..

  • Final resolution on typing in JS 2.0?

    by Michael Klishin,

    Your message is awaiting moderation. Thank you for participating in the discussion.

    Well and so about dynamic vs. static typing in JavaScript 2.0? Hope this will be more clear than ActionScript 3 that in fact lost all of it's dynamics so you can't do many interesting features since version 2.

  • Re: Final resolution on typing in JS 2.0?

    by Jesse Kuhnert,

    Your message is awaiting moderation. Thank you for participating in the discussion.

    I think that's more a question for the ECMA spec guys (or Brendan, and it's extremely doubtful you'll get him to reply in here but who knows...).

    Even with static typing JS is way more fun to program than java. (can anyone say where's my mother f-kin properties or mixins? yes....yes ...thank you)

  • No thread support

    by 乐 田,

    Your message is awaiting moderation. Thank you for participating in the discussion.

    There are no thread or concurrent support in javascript(as I know).So, how can we use it as a generic purpose language? When porting rails onto javascript, how to solve this problem?

  • Re: No thread support

    by Jesse Kuhnert,

    Your message is awaiting moderation. Thank you for participating in the discussion.

    Here: weblogs.mozillazine.org/roadmap/archives/2007/0...

    If you follow all the links that should be more than enough to keep you busy for a while.

  • Re: No thread support

    by Abhay Bakshi,

    Your message is awaiting moderation. Thank you for participating in the discussion.

    I see JavaScript Strands, but haven't used it myself. Does anyone have any experience with JavaScript Strands? Here's what their web page says:


    JavaScript Strands adds coroutine and cooperative threading support to the JavaScript language to enable blocking capabilities for asynchronous event callbacks.


    In JavaScript your code can't simply wait until an event has fired -- the event must always be handled by a separate, asynchronous event handler.


    The Strands project is based on Narrative JavaScript which uses the parser written by Brendan Eich narcissus, a JavaScript parser written in JavaScript for the Mozilla project.

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

BT