JavaScript (tm) hoax

J

John G Harris

Most certainly it doesn't. Your logic is flawed.


JavaScript is an implementation of ECMAScript. It implements this Language
Specification, and extends it as the Specification allows. That does not
mean that ECMAScript is a part of JavaScript, that is just nonsense.

So that's where the problem lies. I'm afraid Netscape's idea of what
JavaScript is differs from your idea. Here are three quotes from NN4's
online manuals. The first two come from the online JavaScript Reference,
the third from the online JavaScript Guide.


"Client-Side JavaScript Reference

This book is a reference manual for the JavaScript language, including
both core and client-side JavaScript for version 1.3. JavaScript is
Netscape's cross-platform, object-based scripting language for client
and server applications."


"About this Book

JavaScript is Netscape's cross-platform, object-based scripting language
for client and server applications. This book is a reference manual for
the JavaScript language, including both core and client-side
JavaScript."


"JavaScript and ECMA Terminology

The ECMA specification uses terminology and syntax that may be
unfamiliar to a JavaScript programmer. Although the description of the
language may differ in ECMA, the language itself remains the same.
JavaScript supports all functionality outlined in the ECMA
specification."


Points to note :

1 Netscape defined JavaScript to be a language, not an implementation of
some (unnamed) language.

2 Netscape declared that ECMA 262 specifies part of JavaScript. Thus the
set of all ECMAScript's legal productions (code strings) is a subset of
JavaScript's, and their behaviour is the same. Also, any objects
required in an ECMAScript execution environment are also required in a
JavaScript execution environment.

You could say that ECMAScript is a subset of JavaScript but that would
be a mild abuse of language. You can certainly say that ECMAScript is
the core language of JavaScript.

<snip>

John
 
T

Thomas 'PointedEars' Lahn

John said:
So that's where the problem lies. I'm afraid Netscape's idea of what
JavaScript is differs from your idea.

I am not afraid, I am certain now that you still don't know what you are
talking about.
Here are three quotes from NN4's online manuals.

You do realize that this documentation is seriously flawed, that NN4 is
obsolete, that JavaScript 1.5 as of Mozilla 1.0 is a conforming ECMAScript
implementation, and that JavaScript since 1.4 no longer includes NN's host
objects, don't you?

You do realize that the "core scripting language" being specified is the
language without regard to the host environment, don't you?

You do realize that the host environment provides the implementation, don't
you?


PointedEars
 
J

John G Harris

You do realize
<snip>

I do realise that this next quote is going to upset you. It appears in
the Mozilla Development Centre, at
<https://developer.mozilla.org/en/About_JavaScript>

"What is JavaScript?

JavaScript is the Netscape-developed object scripting language used in
millions of web pages and server applications worldwide. Netscape's
JavaScript is a superset of the ECMA-262 Edition 3 (ECMAScript) standard
scripting language, with only mild differences from the published
standard."

John
 
J

John G Harris

I realize that you have still no clue what you are talking about.

I predicted that the quote would annoy you. I was right.

You have failed to make a convincing case. You deny that ECMAScript is
the core language. The several owners of the technologies say it is.

ETX

John
 
T

Thomas 'PointedEars' Lahn

John said:
I predicted that the quote would annoy you. I was right.

On the contrary, I find your ongoing naiveté quite refreshing.


PointedEars
 
J

John G Harris

JavaScript is an implementation of ECMAScript. It implements this Language
Specification, and extends it as the Specification allows. That does not
mean that ECMAScript is a part of JavaScript, that is just nonsense.
<snip>

To put it more generally, you are saying that if A is a programming
language and B extends A then B is an implementation of A, and that
there is no way in which A can be said to be a part of B.

You say this even though all the syntax rules of A are also syntax rules
of B; and all the semantic specifications of A are semantic
specifications of B; and all the predefined functions, variables, and
objects required when an A-program is executing are also required when a
B-program is executing, etc.

One consequence of your definition is that you say that ES3 is an
implementation of ES2, implying that it's not really a language, or not
a first class language.

I could have understood you saying that 'part' is not the best word to
use, but to say that it is nonsense betrays a woeful ignorance of
English.

HTH

John
 
T

Thomas 'PointedEars' Lahn

John said:
To put it more generally, you are saying that if A is a programming
language and B extends A then B is an implementation of A, and that
there is no way in which A can be said to be a part of B.

If A is a programming language specification that describes implementations
of itself.
You say this even though all the syntax rules of A are also syntax rules
of B;

That is a fallacy since A is ECMAScript.
and all the semantic specifications of A are semantic
specifications of B;

That is a fallacy, too, since A is ECMAScript.
One consequence of your definition is that you say that ES3 is an
implementation of ES2,

No, that is a consequence of your fallacy.


PointedEars
 
J

John G Harris

If A is a programming language specification that describes implementations
of itself.

If A is a specification that describes implementations of A ?

That's what specifications do. However, I said A is the *language*
specified, given A has a specification.

That is a fallacy since A is ECMAScript.

Technically it's not a fallacy as generalisation on constants is a valid
transformation. (See a book on logic).

Are you trying to say that it's false, so that
while ( Expression ) Statement
is not a syntax rule of JavaScript (from at least NN4) ?

That is a fallacy, too, since A is ECMAScript.
Ditto



No, that is a consequence of your fallacy.

Are you trying to say that ES3 is not an extension of ES2 ?

John
 
V

VK

Are you trying to say that ES3 is not an extension of ES2 ?

One needs to distinguish between the name issue as spelled in my
original post and the name issue as for Thomas.

The latter is simple: it is for him just an endless source of
attacking newcomers with silly screams "there is no JavaScript, idiot
(moron, ...)!"

Behind the first issue is the big politics, and Thomas just happened
to be a child seemingly doing the same what adults do. And the
politics is big. Correct me if I'm wrong, but I do not recall a single
occurrence in the programming history, when the language would be
renamed after over a decade of intensive use. Completely *new*
languages with new names, based on some previous language - yes, it
happens left and right, C and C++ for a quick sample.

Again: the programming language of the Web is called JavaScript, no
space, J and S are capitalized. It is also the language of distributed
Web applications, of the upcoming Microsoft Office package and - in
the close future - the language of small-footprint OS where the whole
OS is basically a web-page open in a no-interface (kiosk mode)
browser.

JavaScript, 10 characters, no space, J and S are capitalized. Rather
easy to remember IMO.

The international newsgroup specifically dealing with JavaScript
related questions is called comp.lang.javascript, sometimes
unofficially abbreviated to c.l.j. or clj

clj doesn't give a freak about other programming languages unless the
question is related to a "language X - JavaScript" interaction.

Note: the clj FAQ page at http://www.jibbering.com/faq/ is currently
vandalized by some regulars and with the support of the current FAQ
maintainer. It will be eventually brought back in accordance with the
clj group description and charter. The moral aspect of renaming core
things which are not yours and reflecting it in a document that is not
your original creation and not of your property - this aspect to be
discussed some day later.

Microsoft uses JavaScript under its own brand name JScript. Again:
JavaScript and JScript are not two separate languages. It is the same
language JavaScript used under the separate brand name "JScript".

JavaScript core language standard described (rather lousy, but
however) in ECMA-262 3rd edition. The document is misleadingly titled
"ECMAScript Language Specification" which is false: there is not and
never was such language and ECMA International never standardized it.
The proper title is given at the top right corner of the first page:
"Standard ECMA-262 3rd Edition - December 1999".

To avoid repeatedly typing "JavaScript in all prominent (or being of
interest for the current question, or ever existed etc.) engine
implementations", once some clj regulars used to type Javascript, with
letter "s" without capitalization. It is not a standard spelling of
any kind, it is just a shortcut for the above given sentence(s), used
by a narrow set of people knowing the interpretation context.
 
J

John G Harris

On Sun, 6 Jun 2010 at 01:21:30, in comp.lang.javascript, VK wrote:

The document is misleadingly titled
"ECMAScript Language Specification" which is false: there is not and
never was such language and ECMA International never standardized it.
<snip>

Bwa ha ha ha ha ha ...

John
 
V

VK

  said:
  <snip>

Bwa ha ha ha ha ha ...

It may sound funny but true. ECMA International was never asked to
develop a language and/or to give it a name. All they had been asked
is to make a formal description of JavaScript as a programming
language and a formal description of the code interpretor. Even less,
they had been asked to describe JavaScript without any host object
parts. That makes JavaScript standard specification (but not the
language itself, of course) to be the only one of the kind. It is the
only language specification, that doesn't provide *any* tools to get
any results from executing programs. It was clearly understood by
authors and by customers, so ECMA-262 2nd ed. (August 1998) was
saying:
"ECMAScript as defined here is not intended to be computationally self-
sufficient;
indeed, there are no provisions in this specification for input of
external data
or output of computed results."
http://www.ecma-international.org/publications/standards/Ecma-262-arch.htm

In the 3rd ed. this part was removed, obviously not because something
changed: simply the words like "is not intended to be computationally
self-sufficient" didn't "look right" for a language specification, so
it was left out as a self-evident fact.

Note: ECMA-262 1st ed. (1996) is now an electronic rarity, removed
from ECMA official archives. I once had it but I lost it together with
my old notebook. It is so lousy that looks like a junior-high
unfinished homework rather than an "international standardization
organization" product.
If anyone has a copy of ECMA-262 1st ed., it would be great to get a
link.

Same time "ECMAScript" slang term popped up. In the introductory part
the described part of JavaScript is called "the ECMA Standard" or "the
Standard". Yet repeatedly calling a language "the Standard" was
strange, and repeatedly typing "non computationally self-sufficient
JavaScript specification without host objects" would be long and
silly. So "ECMAScript" in ECMA docs has the similar convenience
shortcut origin as "Javascript" in my previous post.
 
L

Lasse Reichstein Nielsen

VK said:
Again: the programming language of the Web is called JavaScript, no
space, J and S are capitalized.

That capitalization tradition has been lost along the way. Many users
of the word don't know that the original language name was capitalized
like that.
The reason for that is probably that the capitalization wasn't used in
the places where most of the users actually wrote the name:
type="text/javascript" and language="javascript1.2".

It is also a problem that JavaScript, as currently specified by the
Mozilla organization, has multiple versions with extra features that
are not shared by the other scripting engines. I.e., there are features
of JavaScript versions that only exist in Mozilla engines (Spidermonkey,
Tracemonkey, Rhino).

To misuse a phrase: There is no JavaScript.
There is JavaScript 1.0, JavaScript 1.1, JavaScript 1.2, etc. up to
JavaScript 1.8.1. These are different languages. Most extend earlier
versions. Some (like 1.2) introduced changes that were dropped again.

There is also a number of JScript variants that introduce new features
not shared with any JavaScript version.

And then there are all the other languages that are extensions of the
ECMAScript language. Most of these are unnamed, only specified by
their implementation's name (Carakan, Futhark, Nitro, Squirrelfish,
V8) and have feature sets that change with the implementation's
versions, without a separate specification.

I.e.: ECMAScript, JavaScript and JScript are language families
specified by their separate specifications (each having several
versions). Other languages have no separate specifications, only
implementations. These are generally extensions of ECMAScript,
but not of JavaScript.
JavaScript core language standard described (rather lousy, but
however) in ECMA-262 3rd edition.

No, that's the ECMAScript language.
The JavaScript core language is specified in (e.g.)
https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference
This Core JavaScript language includes, e.g., LiveConnect. It also
includes an Array.prototype.toSource function. These are not part
of ECMAScript, and there are other ECMAScript based languages in
browsers that don't have, at least, the latter.
The document is misleadingly titled
"ECMAScript Language Specification" which is false: there is not and
never was such language and ECMA International never standardized it.

You have this backwards. The standard is a language specification.
The language specified is called ECMAScript, both
1) because the people writing the specification says so, and
2) because it isn't the same language as the one specified by any of the
JavaScript versions.
The proper title is given at the top right corner of the first page:
"Standard ECMA-262 3rd Edition - December 1999".

Have you read any other ECMA standards?

Take from the ECMA-357 standard front page:

Standard ECMA-357 2nd Edition / December 2005

ECMAScript for XML (E4X) Specification

The former identifies the document, but the latter is the title.

The title of ECMA 262 is "ECMAScript Language Specification". And that
is also what the document does. It specifies a language. You can call
it whatevery you want, but they call it ECMAScript.

/L
 
V

VK

That capitalization tradition has been lost along the way. Many users
of the word don't know that the original language name was capitalized
like that.

Many Usenet users write "i" instead of "I" and "u" instead of "you".
Many quick typers do not use capital letters at all: "i see what u'r
saying. i don't agree on that." Does it change anyhow the English
spelling rules as they are? If some/many users do not know the proper
spelling of the language they are using, clj task is to correct them
and to show the right sample, not to adapt FAQ page to the broken
orthography.
The reason for that is probably that the capitalization wasn't used in
the places where most of the users actually wrote the name:
type="text/javascript" and language="javascript1.2".

Whatever the reason is: this, or just for the speedy typing. I don't
care why someone types "u" instead of "you". In public document I will
use "you".
To misuse a phrase: There is no JavaScript.
There is JavaScript 1.0, JavaScript 1.1, JavaScript 1.2, etc. up to
JavaScript 1.8.1. These are different languages. Most extend earlier
versions. Some (like 1.2) introduced changes that were dropped again.

Sure... And there is not C++ for the same reason:
http://en.wikipedia.org/wiki/C++#Language_standard
 
J

John G Harris

It may sound funny but true.
<snip>

A considerable majority of governments voted to call it ECMAScript. You
are outvoted. And out-ranked.

See ISO/IEC 16262:2002, where it says
"1 Scope
This International Standard defines the ECMAScript scripting language."


John
 
V

VK

   <snip>

A considerable majority of governments voted to call it ECMAScript. You
are outvoted. And out-ranked.

See ISO/IEC 16262:2002, where it says
"1 Scope
  This International Standard defines the ECMAScript scripting language.."

They just repeated the wording from the first page of submitted paper.
Fast track procedure, you know... Who cares? Yet you are welcome to
use ECMAScript in ECMA International sense - but only as defined by
ECMA. I see windows.alert(val) or the like - I calling police if it's
called anyhow else but JavaScript ;-) :-|
 
J

John G Harris

They just repeated the wording from the first page of submitted paper.
Fast track procedure, you know...

Fast track doesn't mean automatic. It could have been altered if
national standards committees thought it was very wrong.

Who cares? Yet you are welcome to
use ECMAScript in ECMA International sense - but only as defined by
ECMA. I see windows.alert(val) or the like - I calling police if it's
called anyhow else

We've been saying that for years. I'm glad you understand it.

but JavaScript ;-) :-|

Have you given Microsoft a free licence to use the name in their product
advertisements ?

No ? Thought not.

John
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,773
Messages
2,569,594
Members
45,123
Latest member
Layne6498
Top