On Sun, Nov 22, 2009 at 5:19 PM, Lawson English <span dir="ltr">&lt;<a href="mailto:lenglish5@cox.net">lenglish5@cox.net</a>&gt;</span> wrote:<br><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
<div class="im">Steve Wessels wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
That&#39;s right.  Smalltalk hasn&#39;t died.  I am fortunate enough to be part of a team developing financial software for many years using Smalltalk.<br>
<br>
People have predicted Smalltalk&#39;s death about as often as Apple&#39;s death.<br>
<br>
I think comparisons between Smalltalk and Java have to take marketing into account.<br>
<br>
Paying Smalltalk work is harder to find.  Here&#39;s an interesting twist.  Companies looking for skilled Object Oriented developers, if they understand what they need, will seek programmers with Smalltalk experience.<br>

<br>
  <br>
</blockquote>
<br></div>
Speaking as a long-term script kiddie who likes to collect languages, I can tell you that the main reason(s) why *I* find Smalltalk difficult to use involve(s): lack of documentation, lack of well-documented example code, lack of compsci teaching materials written with Smalltalk for the example code, etc. Notice a trend?<br>

<br></blockquote><div><br></div><div>When I first encountered Smalltalk, it was through the course material for CS 497 and Ralph Johnson was the instructor.  It was an intermediate undergraduate and graduate course on object oriented programming (OOP).  Thus, it wasn&#39;t a course for the entry level computer science student but it should have been because I learned more in this course than any of my other computer science courses.  The course used the following textbooks:</div>
<div><br></div><div>Design Patterns by Ralph Johnson et al</div><div>Smalltalk Best Practice Patterns by Kent Beck</div><div>Design Patterns:  The Smalltalk Companion by Alpert et al (optional but well worth it)</div><div>
<br></div><div>At this time, Ralph Johnson makes the course notes available online as well as videos of some of the lectures.  One of the most important things that learned from this course was about be resourceful.  Next, I prefer using VisualWorks Smalltalk and they have</div>
<div>some of the best documentation that you&#39;ll find and this includes many screencasts created by James Robertson.</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">

Smalltalk may have been designed to be easy to learn and use, but it has never been adopted by the pedagogical community  of teachers and how-to book-writers, so naturally new programmers (from whom experienced programmers grow) are never attracted to it.<br>

<br></blockquote><div><br></div><div>I agree with you 100% that they are not enough how-to books out there.  It would be nice to see the following O&#39;Reilly titles on the books shelves:</div><div><br></div><div>Learning Smalltalk</div>
<div>Smalltalk Cookbook</div><div>The Smalltalk Programming Language</div><div><br></div><div>I feel that these three titles would set the tone for other books to following.</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">

The main issue is lack of ways for new programmers (experienced in other languages or otherwise) to learn not just the syntax of the language, but how to DO stuff with it.<br>
<br>
E.G.: I can&#39;t grab the Unix Programming or Unix Network Programming books by Stevens and work through Smalltalk equivalents of the example code. There&#39;s no Data Structures in Smalltalk books, nor Algorithm Analysis in Smalltalk books, nor build your own virtual world from scratch using Smalltalk and OpenGL, or Game AI in Smalltalk, or... There IS a Numerical Methods book in Smalltalk, but that&#39;s hardly beginner/intermediate level, IMHO.<br>

<br></blockquote><div><br></div><div>I would have to disagree with the above statement because Smalltalk has excellent support for data structures by using their various collection classes.  For example,</div><div><br></div>
<div>Set</div><div>Bag</div><div>Array</div><div>Interval</div><div>OrderedCollection</div><div>SortedCollection</div><div>LinkedList</div><div>Dictionary</div><div><br></div><div>If the above doesn&#39;t fit your needs, then you can get yourself a copy of &quot;Introduction to Computer Algorithms&quot;  by Cormen at al, one of the best books that you&#39;ll find on the subject, and implement the data structures you need by converting the psuedo code to Smalltalk following the collection semantics of the Smalltalk collections.  Next, if you need to do stuff with OpenGL, there&#39;s a reference for it and many Smalltalk environment support a Smalltalk binding for it.  OpenGL is OpenGL no matter which language you choose to use but it will have a different looking language API for interacting with it.  Thus, you&#39;ll need to familiarize yourself with the environments API.  In school, I also spent much time in the VR lab and most of the libraries were C/C++ based but it should be a straight forward process to create a Smalltalk language binding for it as well.  In short, you can leverage the existing</div>
<div>de facto libraries out there in C based languages and access them from Smalltalk API.</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
You get the idea. All the reference material for Smalltalk is geared for complete beginners, or for people who are exceedingly experienced. No middle ground.<br></blockquote><div><br></div><div>The one quality about being resourceful is being able to ask questions.  Thus, if you have a question about something that pertains to Smalltalk, please feel free to post to the mailing list.</div>
<div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
And some of the most interesting (sounding) aspects of Smalltalk, such as the Teatime architecture, are hardly covered in ways that relative newcomers can understand (speaking as a relative newcomer with a 2 year AAS degree and a couple decades intermittent experience programming).<br>
 </blockquote><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
Smalltalk (e.g. Squeak) may not be fast enough to be used in high-end production implementations, but surely it could be the language-of-choice for learning new aspects of compsci and programming. After all, many of these &quot;new aspects&quot; of compsci and programming were originally developed/matured using Smalltalk. Why should people have to go to a less versatile language in order to actually learn to use the results of Smalltalk-based research?<br>
<font color="#888888">
<br>
<br></font></blockquote><div><br></div><div>Smalltalk is a general purpose object oriented programming language that began its existence in the research lab.  However, it&#39;s fast enough to be used in high-production system deployments.  I&#39;ll let you look up the high profile companies that are using Smalltalk.  The important point here is to not feel that you need to write everything in pure Smalltalk but instead leverage other technologies to reach your architectural goals.  </div>
<div><br></div><div>Just my 2 cents,</div><div><br></div><div>-Conrad</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;"><font color="#888888">
<br>
Lawson</font><div><div></div><div class="h5"><br>
_______________________________________________<br>
Beginners mailing list<br>
<a href="mailto:Beginners@lists.squeakfoundation.org" target="_blank">Beginners@lists.squeakfoundation.org</a><br>
<a href="http://lists.squeakfoundation.org/mailman/listinfo/beginners" target="_blank">http://lists.squeakfoundation.org/mailman/listinfo/beginners</a><br>
</div></div></blockquote></div><br>