<span class="Apple-style-span" style="font-family: arial, sans-serif; font-size: 13px; background-color: rgb(255, 255, 255); ">Q. I want to learn Smalltalk but without the baggage of an IDE. Just let me use my favorite text editor, that&#39;s much easier.</span><div>
<span class="Apple-style-span" style="font-family: arial, sans-serif; font-size: 13px; background-color: rgb(255, 255, 255); "><br></span></div><div><span class="Apple-style-span" style="font-family: arial, sans-serif; font-size: 13px; background-color: rgb(255, 255, 255); ">You can do it but you have to write your code in &quot;fileIn&quot; format so Smalltalk will accept your external editor&#39;s code, compile, and execute it.  &quot;fileIn&quot; formats can vary between Smalltalks. </span></div>
<div><span class="Apple-style-span" style="font-family: arial, sans-serif; font-size: 13px; background-color: rgb(255, 255, 255); "><br></span></div><div><span class="Apple-style-span" style="font-family: arial, sans-serif; font-size: 13px; background-color: rgb(255, 255, 255); ">The baggage of the IDE is essentially an object database of precompiled library software.  You can compare various Smalltalks to a lean C++ IDE like Bloodshed, a bloated C++ IDE like Qt, and a maximally bloated Visual Studio.net.  As one programmer you don&#39;t have time to fix everything to your taste - you&#39;ll be lucky to learn a library enough to find the tools you want to do your task.</span></div>
<div><span class="Apple-style-span" style="font-family: arial, sans-serif; font-size: 13px; background-color: rgb(255, 255, 255); "><br></span></div><div><span class="Apple-style-span" style="font-family: arial, sans-serif; font-size: 13px; background-color: rgb(255, 255, 255); ">Libraries can sometime include 30 year old bugs that nobody has ever fixed because they are too hard to discover.  </span><span class="Apple-style-span" style="font-family: arial, sans-serif; font-size: 13px; background-color: rgb(255, 255, 255); ">Usenet tells of a major military project written in Smalltalk which was cancelled and replaced with C++ because of phantom ships appearing when they shouldn&#39;t.  They couldn&#39;t figure it out and fix it. </span></div>
<div><span class="Apple-style-span" style="font-family: arial, sans-serif; font-size: 13px; background-color: rgb(255, 255, 255); "><br></span></div><div><span class="Apple-style-span" style="font-family: arial, sans-serif; font-size: 13px; background-color: rgb(255, 255, 255); ">There are several possible reasons for this.  Professional code tends to be written for maximum understanding by users, but free code is often written for the fun of the programmer, so real meaningful object names give way to convoluted names that only have meaning in the worldview of that particular programmer.  If the function they do is important enough, sometimes these become popular, making the function hard to learn for everyone else.  Another reason is executing code is notoriously difficult to debug in some circumstances, especially when other code in the IDE depends on it.  Changing the definition of terms in a particular object&#39;s communication with another object might fix one problem and create ten more.  So essentially one has to learn the entire library to redevelop something that&#39;s been around a while.</span></div>
<div><span class="Apple-style-span" style="font-family: arial, sans-serif; font-size: 13px; background-color: rgb(255, 255, 255); "> </span></div><div><span class="Apple-style-span" style="font-family: arial, sans-serif; font-size: 13px; background-color: rgb(255, 255, 255); ">On a positive note, Cuis provides a leaner library than Squeak and is also licensed so you can deliver it IDE and all with your application code running on top, so you can deliver a lot more value to your users than with an ordinary exe.</span></div>