[Cuis-dev] These strange days (and our community)

Casey Ransberger bahweep at icloud.com
Fri Mar 27 23:32:42 PDT 2020


Hello Leam,

I came to Smalltalk from Ruby and Objective-C, which both took strong influences from Smalltalk-80. Making the shift to Smalltalk was hard at first. I remember thinking “okay, this is cool, but where do I put my code?”

The learning curve for Smalltalk starts out rather high, which is unfortunate. It’s radically different from most other programming languages. The good news is, in a very short period of time, you should see the difficulty fall off *stunningly* fast.

Spend some time just exploring the tools. For each tool you learn to use, ever more of the system will begin to bend to your will. In my case I eventually found myself thinking “you know it’d be nice to have a task bar” and a few days later, with help from the community, I wrote a task bar. Same thing with UI themes.

The point I want to stress is that it starts out hard, because it’s rather alien, but with every new thing you learn, you amplify the system’s power to explain itself to you.

Another thing that you can do is click the world menu, say “save as” to save a backup copy of your working environment, and start intentionally breaking things to see what happens. Like doing marine science by throwing dynamite in the water and seeing what floats to the top. You can always restore your working environment later to get back up and running.

Ruby inherits collection methods from Smalltalk, so #collect: #reject: #inject: #select: all do what you’d expect. Closures are even syntactically similar.

#Ruby
x = foo.collect() { | i |
	i.as_string()
}

#Smalltalk
x := foo collect: [ :i |
	i asString
]

If you are (as I am) particularly entertained by irresponsible metaprogramming via #method_missing() in Ruby, you’ll find its analogue in Smalltalk’s #doesNotUnderstand:.

As far as where to put your code, you can evaluate small expressions in a Workspace window to experiment. To make something permanent, you can either add it to an existing class as an extension method, or create a new class. This is usually done via the System Browser, but it’s possible to do this in a workspace too, or from code in a method. Smalltalk is built to be maximally flexible and extensible; you’ll find that nothing is impossible.

I’ve found that the Smalltalk community in general will be willing to help you as long as you put in the necessary effort with regard to learning enough to ask smart questions.

Hope this is helpful, sorry if I’ve gotten details wrong in the code above. Working from memory.

This is a short read that I think should sum up the ideas underlying the system, and should reinforce concepts you’ve picked up from Ruby:

https://www.cs.virginia.edu/~evans/cs655/readings/smalltalk.html

—Casey

> On Mar 25, 2020, at 8:19 AM, Leam Hall via Cuis-dev <cuis-dev at lists.cuis.st> wrote:
> 
> Juan, et al.
> 
> I am an Apprentice Ruby coder, and a lot of Ruby documents praise Smalltalk. They are not very subtle about suggesting an awareness of Smalltalk would help one's Ruby skills. Thus I found Cuis. I bought two Smalltalk books, "Smalltalk-80" (Goldberg) and "Smalltak Objects, and Design" (Liu). 
> 
> Unfortunately, I am not able to mentally bridge the gap between the old books and the current Cuis. I have done a lot of text based coding, even my Ruby is written in Vim and run in a shell window. Part of the difficulty is personal, I'm trying to adjust to the GUI. Sadly, I'm still trying, the learning is slow for me.   :)
> 
> I appreciate what you and the others are doing. As I have time and understanding, I will learn more. If there is a movement to unify the Cuis and Smalltalk documentation, it might help those of us who come to this without a Computer Science background.
> 
> Thank you for Cuis.
> 
> Leam
> 
> On Wed, Mar 25, 2020 at 10:55 AM Juan Vuletich via Cuis-dev <cuis-dev at lists.cuis.st <mailto:cuis-dev at lists.cuis.st>> wrote:
> Hi Folks,
> 
> Coronavirus is hitting hard in many places. And places not hit hard yet 
> are getting ready for it. This has been affecting daily life for 
> everyone. Let's keep in mind that the top priorities are to take care of 
> ourselves and others, following orders and advice from local authorities 
> and the WHO. Many people are facing extreme hardships, including health 
> care and emergency workers, people who got ill and their loved ones. 
> Let's hope it turns out to the best for them, and let's help them when 
> possible.
> 
> For the rest of us, for the majority of the world, we just need to be 
> very careful.
> 
> Many people are not able to work at their job or attend to school. Some 
> of us are lucky enough to be able to keep working from our homes, almost 
> as usual. In any case, for a lot of us (I know, we are the most lucky 
> ones), the biggest challenge is to fight our own fear, anguish and 
> boredom. Let's spend good time with family and friends, talking, playing 
> games, whatever we can do without leaving our homes. Let's try to get 
> some exercise. This is great not only for the body, but also for the 
> mind. My wife Lucía and my daughters Sofía and Diana have been dancing 
> to some youtube videos. I must join them next time! Some TV is OK, but 
> too much of it is not. Get enough rest. Take some time to be calm and 
> quiet. Meditate. Spend time learning and practicing stuff you love. 
> Maybe we can make the most of this time by focusing on programming projects.
> 
> So, use Cuis. Play with Cuis. Learn with Cuis. Learn about Cuis. Feel 
> free to share your thoughts and feelings here. We are a community. Many 
> of us have never meet in person, but we still share a lot. We are a 
> bunch of friends, even if it might be a little different kind of friendship.
> 
> Let me tell how all this is going for me.
> 
> In Argentina, we are in a preventive quarantine. We still don't have 
> many cases, but we (Argentina) want to flatten the exponential growth 
> from the start. My kids are at home, as schools are closed. The school 
> gave them a lot of stuff to "research", so this is becoming a kind of 
> home schooling! Lucía and I are spending time helping them with that. 
> Fortunately, we and our larger families are all healthy. We keep in 
> touch. We are both also doing home office for work. So we are quite 
> busy! Our home has a nice backyard and the weather is nice, so we are 
> able to spend time outside.
> 
> I spend some time doing Cuis. I know I'm being quite slow in answering 
> email and several of you are waiting an answer on some particular topic. 
> I apologize for this, and I promise I'll eventually get to each one of 
> them. I have also been working a few hours over several weeks on 
> VectorGraphics and TrueType. I have some updates to push, hopefully 
> today, and will tell in another email.
> 
> Thank you all for being around, helping Cuis grow, recoding videos and 
> spreading the word, or simply sharing this space. Everybody, please feel 
> free to share your feelings and thoughts.
> 
> Cheers,
> 
> -- 
> Juan Vuletich
> www.cuis-smalltalk.org <http://www.cuis-smalltalk.org/>
> https://github.com/Cuis-Smalltalk/Cuis-Smalltalk-Dev <https://github.com/Cuis-Smalltalk/Cuis-Smalltalk-Dev>
> https://github.com/jvuletich <https://github.com/jvuletich>
> https://www.linkedin.com/in/juan-vuletich-75611b3 <https://www.linkedin.com/in/juan-vuletich-75611b3>
> @JuanVuletich
> 
> -- 
> Cuis-dev mailing list
> Cuis-dev at lists.cuis.st <mailto:Cuis-dev at lists.cuis.st>
> https://lists.cuis.st/mailman/listinfo/cuis-dev <https://lists.cuis.st/mailman/listinfo/cuis-dev>
> -- 
> Cuis-dev mailing list
> Cuis-dev at lists.cuis.st
> https://lists.cuis.st/mailman/listinfo/cuis-dev

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.cuis.st/mailman/archives/cuis-dev/attachments/20200327/d7917f79/attachment.htm>


More information about the Cuis-dev mailing list