Respectfully, I disagree on all your points. First of all, as I indicated in my opening chapter, people have been learning to program with computer kits since forever. It’s a time-honoured approach. Moreover, with the increasing interest in the Internet of Things, starting with a small hardware device is both fun and rewarding.
Second, programming is a lot more than just coding algorithms with a programming language. Programming involves solving all kinds of problems that one encounters in the course of writing an application. My tutorial guides a beginner into these areas.
Third, there’s nothing wrong with using Smalltalk and C together. People commonly use Python and C, or Java and C, or Ruby and C together, because most languages don’t give you direct access to the hardware. Also, C can give you better performance for critical sections of your code.
The advantage of using a higher-level language is that you can write most of your application more easily. I included a C library that I wrote, but it is more common to use third-party libraries that you don’t have to write. (In my day, programmers often had to dip into the assembly language level. At least, that isn’t required here!)
That “corrupted image thing” was something I encountered personally which provided an opportunity for a teachable moment. The beginner won’t experience it here. But, yes, it is possible that a Smalltalk programmer may experience corrupted images in the future. No programming language is perfect and a developer will always encounter issues of one kind or another. That’s just the nature of programming.
Pharo is not “a waste of resources.” It provides a powerful development environment with all kinds of benefits in exchange for more resources. All of programming is about making engineering trade-offs, and this is one trade-off that I’ll happily accept. Especially if it can give me dramatic improvements in productivity.
Regarding syntax, Smalltalk has all of 6 keywords! Most languages have many more than that. All programming languages have punctuations. Smalltalk is not unusual at all in this respect.
Smalltalk syntax can be nicely summarized on the back of a postcard!
I appreciate your viewpoint, but the proof is in the pudding. Let’s see how many people actually do learn Smalltalk programming successfully with my tutorial.