I don't think it's the main reason. I rather share these views: http://www.wirfs-brock.com/allen/posts/914. Smalltalk beyond that suffers from the same issues as any dynamically typed language. You quickly lose track when projects get bigger and many problems that a compiler could easily find are discovered much later. I used ST in the nineties and then switched completely to C++ and other languages. Recently, I started using ST again, when I built the two Smalltalk-80 interpreters; from my point of view, it feels quite similar to JS or Lua, but is even more inefficient, since even control structures and loops are dynamic objects.