Where is all the Prototype Documentation?
In the recent blowup between Prototype and JQuery, one of the self criticisms coming from the Prototype community was that there isn't enough good documentation of the framework. I don't think that's true. It's simply that the resources are just so spread out that it's hard to find them. Here are some of the resources I used for learning how to use Prototype. Maybe you'll find them useful too.
- Quick Guide to Prototype - based off of v 1.3.1, but still the best place to start.
- Developer Notes for Prototype - great and exhaustive resource with code examples covering the width and breadth of the framework.
- Overview of Prototype - another handy overview of Prototype along with some notes about platform support, etc.
- Prototype.js Documentation Blog - a new blog with frequent links to articles about Prototype.
- Painless Javascript Using Prototype - a Sitepoint step-by-step tutorial.
- Prototype Meets Ruby: A Look at Enumerable, Array and Hash - code heavy look at several Prototype constructs that were inspired by Ruby.
- Working with Events in Prototype - by the same author as above. Based on 1.5.0_pre0
- Creating an Accordian Widget Class with Prototype - really meaty tutorial that relies on 1.5.0_rc0.
- Max Kiesler's 42 Recent Ajax Tutorials - check out the Ajax and Prototype Tutorials section.
- Prototype: Easing AJAX's Pain - From xml.com, another good intro to Prototype
- Low Pro Javascript with Prototype - Blog article on using Dan Webb's extensions to Prototype.
Of course you'll need some information on why not to use Prototype and what it's limitations are. That last is one issue I have with Prototype: there is no standard answer to the question "on the low end, which browser versions does prototype support?" More on that later.
Topics: Ajax Frameworks, Javascript
Comments: 5 so far
Leave a comment
About Pathfinder
Follow the Blog
-
Get a monthly update on best practices for delivering successful software.
Subscribe via email
Subscribe via RSS
Categories
Topics
.NET
.NET Browser Control
2d physics
3d
3D GPS
3D physics
37signals
Acceptance Tests
Accessibility
ActionMailer
actionscript
activerecord
acts_as_ferret
Add new tag
Adium
ADO.NET Entity Framework
Adobe
Adobe AIR
adobe flex
Adobe Illustrator
Advertising
aggregation
agile
Agile Development
agile thinking
AIR
Ajax
Ajax Applications
Ajax Bookmarking
Ajax Components
Ajax Development
Ajax Examples
Ajax Experience
Ajax Frameworks
Ajax history management
Ajax Intervention
Ajax libraries
Ajax library
AJAX Obfuscation
Ajax Performance
Ajax Products
Ajax toolkit
Ajax Tools
Ajax Widgets
A list apart
Amazon
Amazon CDN
Amazon Web Services
amf
Analysis
Android
animation
Announcement
Announcements
antennae
Antipatterns
Apache
Apollo
apple
Application Architecture
Application Development
architecture
AS3
ask a UI guy
ASP.NET
ASP.NET
asterisk
Asynchronous Processing
authorization
awards
axiis
Azure
Back Button
backups
bandwidth
bandwidth profiling
Beans
beer
Benchmarking
Best Practices
BitmapData.draw
BJAX
blackberry
Blaze Advisor
blender
blog
blogging
book review
Books
braindump
browser
Browsers
Bugs
Business
Business Reasons for Ajax
Business Rules
C#
caching
campfire
Canvas
capistrano
Case Studies
CFO
Charles
checklist
chess
Chesspresso
Chicago
chicagoruby
chirb windycityrails
CIO
Cloud Computing
CloudFront
CMS
COBOL
Cocoa
code
code art
Code Generation
code generator
Color
COMET
Conference
Confluence
Consistency
Content Management
continuous integration
converget appliances
core animation
CRM
cruise
CruiseControl
CSS
cucumber
Custom Application Development
Custom Flex Component
Data Mapper
data visualization
Degrafa
deployment
deprec
Design
Design Patterns
design thinking
Desktop
Desktop RIA
Developer's Notebook
development
DHTML
Diagnose
Dojo
Domain Knowledge
don norman
Drools
drupal
dynamic languages
ease of use
EC2
Echo2
Echo3
Editorial
Entrepreneur
erb
ERP
Estimating
estimation
Ethnographic Research
events
everyblock
Excel
externalinterface
Ext JS
Extreme Programming
eye tracking
Facebook
factory
Feedback Loop
ferret
FileReference
Firebug
Firefox
Firefox Extensions
fixturereplacement
fixture replacement
fixtures
Flare
Flash
flash awards
Flash Platform
flash player
flash player 10
Flash Player optimization
Flash Remoting
Flex
Flex3
flex code generator
flex css
flexmock
Flex optimization
flex skins
flexunit
Flickr
Flock
Flow
Fluent
forms
Frameworks
FriendFeed
front end
front end development
fulltext search
functional
Games
Gauge Component
gem
getting things done
Git
github
gitignore
Golf
Google
Google Analytics
Google Analytics for Flash
Google Analytics for Flex
google android
Google calendar
google docs
Google Gadgets
Google Gears
google maps
GORM
government
g phone
Grails
Graphics
Greasemonkey
Groovy
GStreamer
GTD
Gwittir
GWT
h.264
haml
hardware
Healthcare
heuristic evaluation
Hibernate
hosting
HTML
Hudson
IBM
IDE
Ideation
IE
IE6
IE7
IE8
iGoogle
illustrator cs3
ILog
ILOG JRules
imacros
importing graphics to flex
Information Architecture
infrastructure
Innovation
Instructional Design
Interaction Design
interaction patterns design
Internship
Interview
iPhone
iPhone SDK
iPod
irb
iteration
IT Mill Toolkit
iTunes
jakob nielson
Java
javafx
Javascript
JavaScript frameworks
Javascript Libraries
JBoss Rules
Jess
Jetty
JIT
jmeter
Jobs
jQuery
JSF
JSON
JSP
JSR-94
JsUnit
laptop
Lazlo
Legacy Systems
lightweight
LinkedIn
LINQ
logging
Logical Model and Conceptual Model
Low Pro
Mac
Malware
mapping
Mash Note
Mashups
math
Meebo
metal
metaprogramming
MetaWidget
Methodology
Microformats
microsite
Microsoft
migrations
minimalism
Mobile
mobile platform
mocking
mock objects
modeling
mod_rails
monitoring
Mootools
mouse
mouse scroll
mouse wheel
Mozilla
Music
MVC
MySql
natural key
neal ford
NetNewsWire
networking
news
newspapers
nfjs
NHibernate
nokia
notebook
NSURLProtocol
obj-c
Object-Oriented
Objective-C
Object Relation Mapping (ORM)
ocmock
Office
OmniGraffle
online spreadsheets
OOAD
OOP
opengl
Open Screen
OpenSocial
Open Source
opensource
Opera
Oracle
ORM
osx
OS X
pagination
Pair Programming
palm
papervision3d
Pathfinder Development
Patterns
Peer Creation
Performance
Personas
PGN
PHP
Phusion Passenger
physics
physics engines
planning
plugin
plugins
portableapps
pragmatic
Predictions
preloader
primary key
process Web/Tech
Product Definition
Production Support
productive programer
productivity
product launch
Progressive Enhancement
project concept
project management
Project Website
Prototype
Prototyping
PureMVC
PV3D
pyro
QA
qooxdoo
Radiant CMS
rails
railscasts
Rails Environment Tests
railsrx
Really Simple History
Refactor
refactoring
References
regex
regular expressions
Requirements
Requirements
Alice Toth
Requirements Visualization
resesign
Restlet
RETE
Review
rfp
ria
Rich Interactions
rich internet applicaiton
rich internet applications
ROI
rspec
ruby
rubyamf
Ruby on Rails
Ruby on Rails testing role
S3
SaaS
Safari
San Francisco
Scalability
Scenarios
Scriptaculous
Scrum
SDLC
Search
Secretariat
Security
Selenium
SeleniumIDE
Semantic web
SEO
Server Side
shoulda
Silverlight
simplicity
skins
SOA
soapUI
Social Networking
software develoment
Software Development
Software Engineering
Software Processes
Songbird
SpiderMonkey
Sprajax
Spreadsheets
StageScaleMode
Standards
standish
starting projects
Startups
static typing
Stencils
STI
Story Telling
Structured Design
Struts
sun
surrogate key
Swing
tabs
tag
taglib
Tamarin
Tank Engine
Task Flows
tdd
teams
telephony
Tellurium
test::unit
Test Driven Development
Testing
tether
textmate
The Ajax Experience
throttling
Tilt Component
Tools
touch screen kiosk
TraceMonkey
Training
Trends
Tumblr
Tutorial
Tutorials
Twitter
ubuntu
UI
UIViewController
uml
unit testing
Unit Tests
unity3d
Usability
Usability Testing
user driven agile
User Experience
user experience design
user groups
user interface
User Interface Standards
User Research
UXD
value
Venture Capital
Video
Vision
visual analytics
visual design
visual documentation
Visualization
VLC
VML
Volta
waterfall
watij
watir
web
Web/Tech
Web 2.0
web app
Web Design
Web Development
web forms
web hosting
web infrastructure
Webkit
Weblogs
Web Services
WebSockets
Web Standards
WebTest
Widgets
will_paginate
Windows
windows mobile
WinForms
Wireframes
WordPress
workflow
work life balance
xcode
XML
XML Metadata
xp
XUL
Yahoo Map AS3 API
YUI
Zeigarnik
Zeigarnik Effect
ZendAMF
ZK
Archives
- July 2009
- June 2009
- May 2009
- April 2009
- March 2009
- February 2009
- January 2009
- December 2008
- November 2008
- October 2008
- September 2008
- August 2008
- July 2008
- June 2008
- May 2008
- April 2008
- March 2008
- February 2008
- January 2008
- December 2007
- November 2007
- October 2007
- September 2007
- August 2007
- July 2007
- June 2007
- May 2007
- April 2007
- March 2007
- February 2007
- January 2007
- December 2006
- November 2006
- October 2006
- September 2006
- August 2006
- July 2006
- June 2006
- May 2006
- April 2006
- March 2006
Blogroll
Recent
- Elements of Testing Style
- Aesthetics and Web Design
- Asterisk-Java Testing with Groovy
- 3 Misuses of Code Comments
- Fluently NHibernate
- Digging a Hole and Covering it with Leaves — The Software Development Version
- The Importance of User Experience - Do You Understand It in Your Bones?
- Writing Your Own Protocol With NSURLProtocol
- What’s In Your Dock: iPhone edition
- Feature Fatigue

Thanks for posting this. One reason I started using JQuery was the lack of good documentation for Prototype and what looked like a completely fragmented effort to maintain the library. When I looked at JQuery, not only did it give me the same functionality as Prototype but everything seemed substantially more organized. That included the everything from documentation and plugins to the project leaders and community mailing list. There just seems to be more synergy in the JQuery camp.
The last thing I’ve heard about the Prototype group getting organized came in this post by, I believe, Justin Palmer:
http://encytemedia.com/blog/articles/2006/9/5/the-flurry-continues-more-prototype-updates
No new updates since then (at least none that are obvious). Sam Stephenson, the creator of Prototype, last posted an update on 5/23/2006 which didn’t give much direction either. He wrote:
“I don’t have a roadmap for Prototype, but version 2.0—the next major release after 1.5—will focus on polishing what we have now, not on adding new functionality.”
So its hard for developers to get a sense for where the project is going if there’s no indication of a future path.
I hope this isn’t interpreted as a dig at Prototype because its not meant to be. I’m simply expressing some of the troubles I’ve encountered (and others I’m sure) and why I chose to move on to another library.
Comment by Rey Bango, Wednesday, October 25, 2006 @ 10:11 pm
Useful post. But I’m missing one link:
http://wiki.script.aculo.us/scriptaculous/show/Prototype
I use this one the most as it has some easy understandable examples.
Comment by maYO, Thursday, October 26, 2006 @ 2:45 am
Useful post. But I’m missing one link:
http://wiki.script.aculo.us/scriptaculous/show/Prototype
Comment by 化工展览网, Thursday, October 26, 2006 @ 2:58 am
Um, there is no official and constantly up-to-date documentation, and that is a huge deal. I know I can go to api.rubyonrails.com for _now_ documentation, regardless of what old tutorials I’ve read. Same with most frameworks and languages. This is just a huge glaring fault in prototype, and a list of blogs and admittedly old tutorials doesn’t solve it.
Sorry man, close but no cigar. That said, I’m still using it, and I’m bookmarking your page as another spot to hunt down those elusive docs
-mix
Comment by mixonic, Thursday, October 26, 2006 @ 4:50 pm
Here is another source for Prototype documentation with many examples:
http://www.formar.se/prototype/
Comment by Alex, Wednesday, January 17, 2007 @ 8:49 am