Velocity Reviews - Computer Hardware Reviews

Velocity Reviews > Newsgroups > Programming > Javascript > relation between prototype and Prototype.js

Reply
Thread Tools

relation between prototype and Prototype.js

 
 
shypen42@yahoo.fr
Guest
Posts: n/a
 
      05-23-2006
Hi all,

I'm very confused by the relation between "prototype" and
that "Prototype.js" library that seems to be used quite a lot
(not by knowledgeable people from this group if I understood
correctly).

For example, when I do this, I use the keyword (?) "prototype":

function Example() {
...
}

Example.prototype.val = undefined;


What is the relation between that and the "Prototype.js" library?

Is that name just plain confusing or am I just plain confused?
(both ?



P.S : I'm just beginning with Javascript...

 
Reply With Quote
 
 
 
 
Ian Collins
Guest
Posts: n/a
 
      05-23-2006
http://www.velocityreviews.com/forums/(E-Mail Removed) wrote:
> Hi all,
>
> I'm very confused by the relation between "prototype" and
> that "Prototype.js" library that seems to be used quite a lot
> (not by knowledgeable people from this group if I understood
> correctly).
>
> For example, when I do this, I use the keyword (?) "prototype":
>
> function Example() {
> ...
> }
>
> Example.prototype.val = undefined;
>
>
> What is the relation between that and the "Prototype.js" library?
>
> Is that name just plain confusing or am I just plain confused?
> (both ?
>

Just plain confused!

Forget about Prototype.js and learn how to work with core JavaScript.
Once you are up to speed with the language, you will be in a better
position to evaluate toolkits.

--
Ian Collins.
 
Reply With Quote
 
 
 
 
Richard Cornford
Guest
Posts: n/a
 
      05-23-2006
(E-Mail Removed) wrote:
> I'm very confused by the relation between "prototype"
> and that "Prototype.js" library that seems to be used
> quite a lot (not by knowledgeable people from this
> group if I understood correctly).
>

The people who wrote Prototype.js were not very familiar with javascript
(and apparently did not like what they did now about it, so tried to
make it 'like' another language more to their liking). Most of the
people writing here like javascript (and many understand it, more or
less, as well) so they (we) don't have much use for that library.

> For example, when I do this, I use the keyword (?)
> "prototype":


It is not a keyword. Javascript's keywords are defined in ECMA 262 3rd
Ed. Section 7.5. "prototype" is a property name that is emplyed as the
name of a proeprty of function objects that is used when a fucntion is
used as a constructor as the source of the vlaue for the internal
[[Prototype]] property of the constructed object. The internal
[[Prototye]] property of objects is how javascript objects inherit
proerties from other objects.

> function Example() {
> ...
> }
>
> Example.prototype.val = undefined;


So, if an object is constructed with:-

var obj = new Example();

- the resulting object does not have a - val - property itself, but it
does inherit one through its internal [[Prototype]] property, which is
assigned its value from the - Example - function's (public) prototype
property.

> What is the relation between that and the "Prototype.js"
> library?


The name of the "Prototype.js" library is arbitrary and has no clear
relationship with the prototype inheritance used in javascript (except
by coincidence).

> Is that name just plain confusing


The name certainly is confusing.

> or am I just plain confused?
> (both ?


You may be confused as well

Richard.


 
Reply With Quote
 
Richard Cornford
Guest
Posts: n/a
 
      05-23-2006
Andy Baxter wrote:
> shypen42 said:
>> I'm very confused by the relation between "prototype"
>> and that "Prototype.js" library that seems to be used
>> quite a lot (not by knowledgeable people from this
>> group if I understood correctly).

<snip>
> 'Prototype.js' is a library of prewritten javascript code
> that you can use to make it easier to design cross-platform
> js applications.


More likely to avoid addressing the issues of designing cross-platform
js applications.

> Among other things, the designers of the toolkit will have
> worked out all the tricky bugs that stop code running the
> same on all browsers,


That is rather optimistic, and patently not true. It is not a couple of
weeks since someone posted a question here asking how to detect
environments where the prototype.js library did not work (which includes
all IE versions prior to 6, for example, and I have seen it behaving
inconsistently in recent Opera browsers when attempting AJAX). Which
means that not only have its authors failed to work out those issues but
they have also failed to provide some clear indication in the library of
when it is trying to operate in an environment that does not support it.

> and encapsulated this in a simple api that just works the
> way you want.


Where it 'works', the rest of the time it just errors out and denies any
possibility of clean degradation.

> I.e. you write code to do what you want regardless of the
> browser, and their code sorts out the nitty gritty details
> of how to implement this on Internet Explorer compared to
> Firefox, etc.


Where "Internet Explorer" means 'a sub-set of possible configurations of
IE 6' and "etc" is not a very long list at all.

> This might be worth learning about, but probably not until
> you've got some practice writing simple stuff first.


Once some experience has been gained addressing the issues of
cross-browser design Prototype.js probably won't look like a good idea
at all.

Richard.


 
Reply With Quote
 
Richard Cornford
Guest
Posts: n/a
 
      05-23-2006
Andy Baxter wrote:
> Richard Cornford said:
>> Once some experience has been gained addressing the issues of
>> cross-browser design Prototype.js probably won't look like a
>> good idea at all.

>
> OK, sorry. Do you know of any toolkits that are worth using in
> this respect? I'm using dojo (dojotoolkit.org) at the moment.
> Do you think it's better to use a toolkit or just work through
> all the problems yourself??


It is crazy not to re-use code in some form or another. The precise
level at which you pitch code re-use is (certainly has been) the subject
of quite heated debate, and I don't have time to do the subject justice
tonight. You might be well advised to do an archive search for the
threads where the subject has been debated (the threads where more than
just a couple of the regulars contributing would probably be most
useful). I think the keyword 'library' would make a reasonable starting
point for an archive search.

To date I have not seen a single publicly available general
library/toolkit/framework that I would consider appropriate for general
Internet use.

Richard.


 
Reply With Quote
 
petermichaux@gmail.com
Guest
Posts: n/a
 
      05-23-2006

Andy Baxter wrote:
> Richard Cornford said:
>
> OK, sorry. Do you know of any toolkits that are worth using in this
> respect? I'm using dojo (dojotoolkit.org) at the moment. Do you think it's
> better to use a toolkit or just work through all the problems yourself??


Andy Baxter wrote:
> Richard Cornford said:
>
> > Once some experience has been gained addressing the issues of
> > cross-browser design Prototype.js probably won't look like a good idea
> > at all.

>
> OK, sorry. Do you know of any toolkits that are worth using in this
> respect? I'm using dojo (dojotoolkit.org) at the moment. Do you think it's
> better to use a toolkit or just work through all the problems yourself??


I'm no expert but these are my impressions so far...

I like Ruby a lot but don't want JavaScript to look like Ruby. It's an
extra layer. I was avoiding Prototype.js for a while; however, now with
the very cool .rjs templates in Rails, Prototype.js is becoming more
tightly integrated into Rails. I think this dependence is unfortunate
but the .rjs templates are very cool and big timesavers. As Rails
becomes more popular, it is inevitable that Prototype.js will also
become more popular. Hopefully Prototype.js will continue to improve.

I tried a bit of Dojo. It is a big library and seems like it might be
hard to understand it. Also the demo sites all seemed very slow. The
dynamic loading of libraries (or some such fanciness) could have been a
problem for speed? All this could be wrong but I only found things I
didn't like and never went "Wow this is cool!". Also the markup for
Dojo widgets seems like a nightmare. They are able to claim
non-intrusive JavaScript but the HTML tags have many attributes to get
info to the JavaScript. Seems like a complicated way to avoid a tiny
bit of easily understandable JavaScript.

The ajax toolbox looks good http://www.ajaxtoolbox.com but the license
may cause you trouble.

I've been enjoying the connection.js and event.js libraries from Yahoo!
UI

http://developer.yahoo.com/yui/

The Yahoo! dragdrop.js library seems reasonably good too. However I
don't like how it is necessary for every draggable element to have an
id. I'll live with making up dummy id's for elements for now. I hope
they eliminate this requirement soon. Also I don't know if you can set
the scope for the interesting moment functions. I haven't found any
docs indicating yes.

Wading thorough all these libraries is a lot of work. You'll have to
experiment. Certainly the Yahoo! UI core libraries are worth a look.

- Peter

 
Reply With Quote
 
Jim Ley
Guest
Posts: n/a
 
      05-23-2006
On Tue, 23 May 2006 23:48:53 +0100, Andy Baxter
<(E-Mail Removed)-online.co.uk> wrote:

>Richard Cornford said:
>
>> Once some experience has been gained addressing the issues of
>> cross-browser design Prototype.js probably won't look like a good idea
>> at all.

>
>OK, sorry. Do you know of any toolkits that are worth using in this
>respect? I'm using dojo (dojotoolkit.org) at the moment.


I use a very recently installed IE6, it's basically standard, very few
changes (a few tweaks to settings nothing particularly strange) but
when I click on the demo mail application on their sample
applications, most of the time it completely locks up the browser - I
think that is cache related - if I enable aggressive caching, then I
get to see the application, complete with javascript errors as it
builds - of course it's quite difficult to test as F5 completely
resets state.

Now, for me, that level of quality in a flagship application is
suggestive of poor quality. Of course it's a complicated
functionality, and certainly impressive what you can do with it, but
it's a question of how much work you have to do to get it to release
quality.

Libraries are great for prototypes, but I've never seen a release
quality product come from a library, the compromises of being general
and not quite targetted at exactly what you want create too many bugs
in what is very disperate execution environment.

Jim.
 
Reply With Quote
 
Matt Kruse
Guest
Posts: n/a
 
      05-24-2006
(E-Mail Removed) wrote:
> The ajax toolbox looks good http://www.ajaxtoolbox.com but the license
> may cause you trouble.


Why so?

The only thing my "license" tries to prohibit is someone taking my code and
publishing it on their site for everyone to download. And this is mainly
because it's a huge pain for me when people submit bug reports, change
requests, and other comments based on outdated code that was obtained from
some other source than my site.

--
Matt Kruse
http://www.JavascriptToolbox.com
http://www.AjaxToolbox.com


 
Reply With Quote
 
petermichaux@gmail.com
Guest
Posts: n/a
 
      05-24-2006
Matt Kruse wrote:
> (E-Mail Removed) wrote:
> > The ajax toolbox looks good http://www.ajaxtoolbox.com but the license
> > may cause you trouble.

>
> Why so?
>
> The only thing my "license" tries to prohibit is someone taking my code and
> publishing it on their site for everyone to download. And this is mainly
> because it's a huge pain for me when people submit bug reports, change
> requests, and other comments based on outdated code that was obtained from
> some other source than my site.


I understand the reasoning and it is good. Since your library is a
utility-type library, the license makes it difficult for people to
encorporate your library in an open source project with a more liberal
distribution license like MIT or BSD or even GNU. It is true that you
gave me permission to do this for one project; however, what if someone
want's to redistribute my project on their site? It is fine with me but
do they need to ask your permission? It either gets a little
restrictive or at least a little confusing.

For someone who wants to use your library in a contract job there would
be no problem.

Peter

 
Reply With Quote
 
Thomas 'PointedEars' Lahn
Guest
Posts: n/a
 
      05-26-2006
Andy Baxter wrote:

> 'prototype' is to do with the object-based side of javascript - you don't
> need to know about this unless you want to build your own custom objects.
> You're probably best off just learning the basics of the language first.


Non sequitur. That JavaScript, or ECMAScript implementations for that
matter, are object-based, if not object-oriented, programming languages,
even if it is not obvious due to implicit scope chain resolution of
identifiers, is one important part of the "basics of the language".


PointedEars
--
A man who works with his hands is a laborer; a man who works with his
hands and his brain is a craftsman; but a man who works with his hands
and his brain and his heart is an artist.
-- Louis Nizer, lawyer (1902-1994)
 
Reply With Quote
 
 
 
Reply

Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
Prototype WTP 0.2 released,this release for Prototype 1.6.0 javascript fish Javascript 0 10-11-2008 07:35 AM
What is the difference and relation between an interface and itsmethod? tenxian Java 4 04-27-2008 06:26 PM
Class prototype vs C function prototype June Lee C++ 2 04-13-2008 08:17 PM
Prototype Object.extend(new Base() | Hash | Hash.prototype) usage: jacobstr@gmail.com Javascript 3 03-27-2007 07:56 AM
Relation between Interface and Area for OSPF winds Cisco 1 02-10-2006 08:41 AM



Advertisments