<?xml version="1.0" encoding="UTF-8"?>
<GoodreadsResponse>
	<Request>
		<authentication>false</authentication>
		    <method><![CDATA[]]></method>
	</Request>
	<review>
  <id>33727679</id>
    <user>
    <id>156533</id>
    <name><![CDATA[Rob]]></name>
    <location><![CDATA[Essex Junction, VT]]></location>
    <link><![CDATA[http://www.goodreads.com/user/show/156533-rob]]></link>
    <image_url><![CDATA[http://photo.goodreads.com/users/1201398362p3/156533.jpg]]></image_url>
    <small_image_url><![CDATA[http://photo.goodreads.com/users/1201398362p2/156533.jpg]]></small_image_url>
  </user>
    <book>
  <id type="integer">2998152</id>
  <isbn>0596517742</isbn>
  <isbn13>9780596517748</isbn13>
  <text_reviews_count type="integer">23</text_reviews_count>
  <title>
    <![CDATA[JavaScript: The Good Parts]]>
  </title>
  <image_url>http://www.goodreads.com/images/nocover-111x148.jpg</image_url>
  <small_image_url>http://www.goodreads.com/images/nocover-60x80.jpg</small_image_url>
  <link>http://www.goodreads.com/book/show/2998152.JavaScript_The_Good_Parts</link>
  <average_rating>4.29</average_rating>
  <ratings_count>69</ratings_count>
  <description>
    <![CDATA[&lt;DIV&gt;&lt;DIV&gt;Most programming languages contain good and bad parts, but JavaScript has more than its share of the bad, having been developed and released in a hurry before it could be refined. This authoritative book scrapes away these bad features to reveal a subset of JavaScript that's more reliable, readable, and maintainable than the language as a whole-a subset you can use to create truly extensible and efficient code.<br/> <br/> Considered <em>the</em> JavaScript expert by many people in the development community, author Douglas Crockford identifies the abundance of good ideas that make JavaScript an outstanding object-oriented programming language-ideas such as functions, loose typing, dynamic objects, and an expressive object literal notation. Unfortunately, these good ideas are mixed in with bad and downright awful ideas, like a programming model based on global variables. <br/> <br/> When Java applets failed, JavaScript became the language of the Web by default, making its popularity almost completely independent of its qualities as a programming language. In <em>JavaScript: The Good Parts</em>, Crockford finally digs through the steaming pile of good intentions and blunders to give you a detailed look at all the genuinely elegant parts of JavaScript, including:<br/> <br/> &lt;ul&gt; &lt;li&gt;Syntax&lt;/li&gt; &lt;li&gt;Objects&lt;/li&gt; &lt;li&gt;Functions&lt;/li&gt; &lt;li&gt;Inheritance&lt;/li&gt; &lt;li&gt;Arrays&lt;/li&gt; &lt;li&gt;Regular expressions&lt;/li&gt; &lt;li&gt;Methods&lt;/li&gt; &lt;li&gt;Style&lt;/li&gt; &lt;li&gt;Beautiful features&lt;/li&gt; &lt;/ul&gt;<p>The real beauty? As you move ahead with the subset of JavaScript that this book presents, you'll also sidestep the need to <em>unlearn</em> all the bad parts. Of course, if you want to find out more about the bad parts and how to use them badly, simply consult any other JavaScript book. <br/> <br/> With <em>JavaScript: The Good Parts</em>, you'll discover a beautiful, elegant, lightweight and highly expressive language that lets you create effective code, whether you're managing object libraries or just trying to get Ajax to run fast. If you develop sites or applications for the Web, this book is an absolute must.</p>]]>
  </description>
<authors>
    <author>
    <id>1290380</id>
        <name><![CDATA[Douglas Crockford]]></name>
    <image_url><![CDATA[http://www.goodreads.com/images/nophoto/nophoto-U-200x266.jpg]]></image_url>
    <small_image_url><![CDATA[http://www.goodreads.com/images/nophoto/nophoto-U-50x66.jpg]]></small_image_url>
    <link><![CDATA[http://www.goodreads.com/author/show/1290380.Douglas_Crockford]]></link>
    <average_rating>4.28</average_rating>
    <ratings_count>71</ratings_count>
    <text_reviews_count>24</text_reviews_count>
  </author>
  </authors>  <published>2008</published>
</book>

    <user_statuses>
        <user_status>
  <body>doubling back from read #2&#189;; getting more out of it, but the urgency is also greater</body>
  <chapter type="integer" nil="true"></chapter>
  <comments_count type="integer">0</comments_count>
  <created_at type="datetime">2008-12-20T06:48:11-08:00</created_at>
  <id type="integer">189852</id>
  <last_comment_at type="datetime" nil="true"></last_comment_at>
  <page type="integer">58</page>
  <updated_at type="datetime">2008-12-20T06:48:11-08:00</updated_at>
</user_status>

        <user_status>
  <body>great quote about usability vs. features</body>
  <chapter type="integer" nil="true"></chapter>
  <comments_count type="integer">0</comments_count>
  <created_at type="datetime">2008-10-21T19:54:05-07:00</created_at>
  <id type="integer">41126</id>
  <last_comment_at type="datetime" nil="true"></last_comment_at>
  <page type="integer">115</page>
  <updated_at type="datetime">2008-10-21T19:54:05-07:00</updated_at>
</user_status>

        <user_status>
  <body>next up?  &quot;Beautiful Features&quot;!</body>
  <chapter type="integer" nil="true"></chapter>
  <comments_count type="integer">0</comments_count>
  <created_at type="datetime">2008-10-21T13:57:42-07:00</created_at>
  <id type="integer">40386</id>
  <last_comment_at type="datetime" nil="true"></last_comment_at>
  <page type="integer">98</page>
  <updated_at type="datetime">2008-10-21T13:57:42-07:00</updated_at>
</user_status>

        <user_status>
  <body>definitely hitting the point where I'm going to need to start putting stuff into practice for it to stick</body>
  <chapter type="integer" nil="true"></chapter>
  <comments_count type="integer">0</comments_count>
  <created_at type="datetime">2008-10-17T12:52:54-07:00</created_at>
  <id type="integer">32676</id>
  <last_comment_at type="datetime" nil="true"></last_comment_at>
  <page type="integer">65</page>
  <updated_at type="datetime">2008-10-17T12:52:54-07:00</updated_at>
</user_status>

        <user_status>
  <body>thinking it's going to take a while (and some DOING) for all that to sink in</body>
  <chapter type="integer" nil="true"></chapter>
  <comments_count type="integer">0</comments_count>
  <created_at type="datetime">2008-10-17T09:08:08-07:00</created_at>
  <id type="integer">32213</id>
  <last_comment_at type="datetime" nil="true"></last_comment_at>
  <page type="integer">46</page>
  <updated_at type="datetime">2008-10-17T09:08:08-07:00</updated_at>
</user_status>

        <user_status>
  <body>re-learning everything I know about functions</body>
  <chapter type="integer" nil="true"></chapter>
  <comments_count type="integer">0</comments_count>
  <created_at type="datetime">2008-10-16T13:04:14-07:00</created_at>
  <id type="integer">30514</id>
  <last_comment_at type="datetime" nil="true"></last_comment_at>
  <page type="integer">36</page>
  <updated_at type="datetime">2008-10-16T13:04:14-07:00</updated_at>
</user_status>

        <user_status>
  <body>caught up and passed where I was before doubling back (but still going to rock 3 bookmarks)</body>
  <chapter type="integer" nil="true"></chapter>
  <comments_count type="integer">0</comments_count>
  <created_at type="datetime">2008-10-15T13:52:23-07:00</created_at>
  <id type="integer">28504</id>
  <last_comment_at type="datetime" nil="true"></last_comment_at>
  <page type="integer">30</page>
  <updated_at type="datetime">2008-10-15T13:52:23-07:00</updated_at>
</user_status>

        <user_status>
  <body>doubling back (and using something like 3 bookmarks)</body>
  <chapter type="integer" nil="true"></chapter>
  <comments_count type="integer">0</comments_count>
  <created_at type="datetime">2008-10-14T13:45:52-07:00</created_at>
  <id type="integer">26266</id>
  <last_comment_at type="datetime" nil="true"></last_comment_at>
  <page type="integer">26</page>
  <updated_at type="datetime">2008-10-14T13:45:52-07:00</updated_at>
</user_status>

        <user_status>
  <body>there's like 10:1 compression going on here w/ the text</body>
  <chapter type="integer" nil="true"></chapter>
  <comments_count type="integer">0</comments_count>
  <created_at type="datetime">2008-10-09T08:00:32-07:00</created_at>
  <id type="integer">15678</id>
  <last_comment_at type="datetime" nil="true"></last_comment_at>
  <page type="integer">28</page>
  <updated_at type="datetime">2008-10-09T08:00:32-07:00</updated_at>
</user_status>

        <user_status>
  <body></body>
  <chapter type="integer" nil="true"></chapter>
  <comments_count type="integer">0</comments_count>
  <created_at type="datetime">2008-10-06T04:57:53-07:00</created_at>
  <id type="integer">9277</id>
  <last_comment_at type="datetime" nil="true"></last_comment_at>
  <page type="integer">20</page>
  <updated_at type="datetime">2008-10-06T04:57:53-07:00</updated_at>
</user_status>

        <user_status>
  <body></body>
  <chapter type="integer" nil="true"></chapter>
  <comments_count type="integer">0</comments_count>
  <created_at type="datetime">2008-10-05T11:22:28-07:00</created_at>
  <id type="integer">8153</id>
  <last_comment_at type="datetime" nil="true"></last_comment_at>
  <page type="integer">15</page>
  <updated_at type="datetime">2008-10-05T11:22:28-07:00</updated_at>
</user_status>

      </user_statuses>
    <rating>4</rating>
  <votes>0</votes>
  <spoiler_flag>false</spoiler_flag>
  <shelves>
        <shelf name="read" />
            <shelf name="2008" />
        <shelf name="on-going" />
        <shelf name="own" />
        <shelf name="technical" />
      </shelves>
  <recommended_for><![CDATA[intermediate-level JavaScript nerds looking to learn the &quot;A&quot; game]]></recommended_for>
  <recommended_by><![CDATA[Jonathan Phillips]]></recommended_by>
  <read_at>Wed Oct 22 00:00:00 -0700 2008</read_at>
  <date_added>Wed Sep 24 11:04:48 -0700 2008</date_added>
  <date_updated>Sat Dec 20 13:24:52 -0800 2008</date_updated>
  <read_count>2</read_count>
    <body><![CDATA[<em>&quot;There is danger and misery at the edges.&quot;</em><br/><br/>As the title implies, Douglas Crockford takes a subset of JavaScript, identifies it as &quot;the good parts&quot; and proceeds to explain why these parts are good (and should therefore be used).  Crockford commends JavaScript for being ...<a href="http://www.goodreads.com/review/show/33727679">more...</a>]]></body>
    
  <url><![CDATA[http://www.goodreads.com/review/show/33727679]]></url>
  <link><![CDATA[http://www.goodreads.com/review/show/33727679]]></link>
</review>

</GoodreadsResponse>