Efforts to start using Smalltalk
I met Suzanne Fortman from Cincom at XP2019 and had som great conversations about SmallTalk and the community. I decided to download ObjectStudio to play with the product and maybe actually get to write some smalltalk.
The experience was not what I was expecting. The rest of this post is written as I went through trying to use the product. Including some extreme annoyance at what I encountered.
I googled "Cincom Smalltalk download" to get started with the product.
Stumbling blocks started almost immediately.
Going to find the Personal Use License is pretty easy... but... What's this? yeah yeah - License agreement; whatever - Where's the download link?
There's no download link?
Oh - Maybe this other "Try Personal Use License Version" link... Which is where I want to be. Why even view that legalize if I don't need to do anything with it. Whatever.
OK - Cool, Download License here link - Neat... $500? I thought it was free?! I'm done. Three clicks to not find the thing I'm trying to download. I quit. Normally.
This bar to entry is STUPID high and is gonna turn off... most anyone? that's trying to get the software.
If this is what it takes to get your Smalltalk IDE... Yeah, you're not making it easy to find users.
I told Suzanne I'd get it and give it a go. I'm going to figure it out.
Looking through the page more - oh; there's a form. A form? A 24 HOUR WAIT?! What? I can get to the download link for Visual Studio directly from Google. I have to do a few unclear clicks AND FILL OUT A FORM!?!?!?!? AND WAIT 24 HOURS?! No. Just No.
I'm out. No way am I going through those hoops to TRY something.
Sorry to say, but hell no.
This is a TERRIBLE experience.
I WANT TO LEARN SMALLTALK - YOU'RE MAKING IT IMPOSSIBLE!
I DO NOT fill out forms for things I want to try. It's a prohibitive bar to try out new things. This would have stopped me in at least three different ways already. It's a horrible experience. Really.
But I told Suzanne I'd try it. Fine - Fill out the form.
Submit.
Page Reloads.
Crap, what happened?
Did it submit? Do I resubmit?
I resubmit.
Page Reloads... what?
Oh, right, maybe I have an email.
Email for 24 hour wait.
Email for "Don't submit multiple requests". ... Really? If I want to try out ObjectStudio AND VisualWorks I have to wait 48 freaking hours to get both? That's insane. That's not user friendly. I'm out.
OK, told Suzanne I'd try... I'll wait.
24 hours later - If I want to try software, making me wait 24 hours is going to lose me. I'll avoid the entire market if that's the experience I get trying to get in.
I want to compare to the three other smalltalk environments I know of.
Downloaded pharo in under 30 seconds. Direct link from Google.
Downloaded squeek in under 45 seconds. Direct link from Google. (their page is rought, hence 15 extra seconds)
Download dolphin... ummm... Download dolphin smalltalk - under 2 minutes (gotta google better)
Download ObjectStudio - Well... If I hadn't met and talked with Suzanne; I would never download it.
OK - Starting ObjectStudio (still haven't submitted for VisualWorks, the process is... crap)
Much like Squeek when I first tried it... No idea what to do - Really. There's a full interface with no direction.
I'm gonna try Pharo. This is apparently a compare and contrast post.
Pharo starts out much simpler... not clear. But there's only about a 1/2 dozen options. ObjectStudio gives you ALL THE THINGS w/o what said things are. Pharo gives you a few things and ... no idea what they are. I took a chance on clicking "Create Image" (I have no idea what "image" is...). It's doing stuff.
Pharo - I appreciate the small download; but downloading thing after thing is kinda annoying
OK - Starting an "image".
Oh, There's a "Learn Pharo" item.
Not a lot of obviousness.
There's a "Playground" option. I know what that is - I can play! ... If I knew smalltalk syntax... {123} is an array...
There's links to books - Free online books! Awesome!
Oh Boy! The Playground has intellisense!!!
Using a book to ALMOST get to TDD... Except there's some errors from following the book. Nice try, but resources actually working is kinda critical.
Gonna check out Dolphin.
OK - Dolphin is out; need a serial number (BOOO) and their registration server is down. Whoops.
Once again into Squeek
Projects - New. Pretty good start, getting a new project.
Figured out how to do the test runner. Thanks to Pharo I knew how to create a Counter and test class.
Ummm.... Couldn't figure out how to get my test class in the test runner. :(
If SmallTalk wants to have better adoption - Have tutorials (Looking at everyone except Pharo) that WORK (Looking at you Pharo).
Have a "Smalltalk for a [C#/Java/Ruby/Python/...] dev" tutorial. HELP me get into the ecosystem.
As we learn, sometimes the unknown is a little more known... Let's go back into ObjectStudio
Got the object Browser, I can create classes. I understand(ish) that now... How do I test them?
I'm super lost on testing in ObjectStudio. I simply cannot find a testrunner... That's a deal breaker. I assume it's in there... but it's not discoverable.
I learned something from ObjectStudio's class creation (which is pretty slick) that the Pharo doc was VASTLY missing - The correct freaking syntax!!!
OK, back into Pharo
Setting it up correctly, my test passes.
I can TDD fizzbuzz in SmallTalk. Here WE Go!
HEY HEY!
My first test in smalltalk!!! In Pharo, not ObjectStudio, which I was hoping to do it in... but I'm learning!
Object subclass: #FizzBuzz
instanceVariableNames: ''
classVariableNames: ''
package: 'FizzBuzzTdd'
convert: input
^ '1'
TestCase subclass: #FizzBuzzTest
instanceVariableNames: ''
classVariableNames: ''
package: 'FizzBuzzTdd-Tests'
testIntOneIsStringOne
| subject actual|
subject := FizzBuzz new.
actual := subject convert: 1.
self assert: actual equals: '1'
And I've now TDD'd FizzBuzz in smalltalk. Using Pharo. I really hope that I can get the assistance to do TDD in ObjectStudio.
I did full fizzbuzz in pharo. Worked pretty smooth. I expect a lot of other headaches trying more complex stuff. But with a baseline of "TDD FizzBuzz" only Pharo got me there. Took some bouncing around and learning, but that's the only one I could figure out how to TDD.
If I was going to point someone to an environment for smalltalk; I'd currently suggest Pharo; it's got most links to resources directly from the environment.
I'm in touch with Suzanne, and am going to dig into ObjectStudio more. Being the largest commercial solution... it has to have the capabilities I want... Just need help finding it.
In my very little exploration trying to write some Smalltalk, there is a very high bar for entry - One which a dozen other labguage options don't have.
I want to learn smalltalk. Currently because it's so impossible to, and I like a challenge. That's not going to bring in users.